---
name: "loadlofig"
section: "3"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/loadlofig"
---

# loadlofig(3)

load a new logical cell model from disk

## NAME

loadlofig - load a new logical cell model from disk

## SYNOPSYS

```
#include "mlo.h"
void loadlofig(ptfig, figname, mode)
lofig_list ∗ptfig;
char ∗figname;
char mode;
```

## PARAMETERS

- *ptfig*

  Pointer to an allocated but empty *lofig*

- *figname*

  Name of the figure to be loaded

- *mode*

  Loading mode

## DESCRIPTION

**loadlofig** fills the *lofig* pointed to by *ptfig* with the  contents of a disk file called *figname*. The loading mode may be either **'A'**, then the entire content is parsed, or **'P'** then only connectors and extrernal signals are loaded in memory, or **'C'**, that loads the "complement" of an already partially loaded cell in order to keep the same pointer when accessing the same file.\
 The [**loadlofig**(3)](/loadlofig/3.md) function in fact performs a call to a parser, choosen by the [**MBK\_IN\_LO**(1)](/MBK_IN_LO/1.md) environment variable. The directories searched for the file are first the one sets by [**MBK\_WORK\_LIB**(1)](/MBK_WORK_LIB/1.md) and then, in the described order, the ones set by [**MBK\_CATA\_LIB**(1)](/MBK_CATA_LIB/1.md). See [**MBK\_IN\_LO**(1)](/MBK_IN_LO/1.md), [**MBK\_WORK\_LIB**(1)](/MBK_WORK_LIB/1.md), [**MBK\_CATA\_LIB**(1)](/MBK_CATA_LIB/1.md) and [**mbkenv**(3)](/mbkenv/3.md) for details.

## ERRORS

Some errors resulting from a call to **loadlofig** are due to the parsers, and are prefixed by the parser format (pf). \
 **"∗∗∗ mbk error ∗∗∗ not supported logical input format 'xxx'"**

The environment variable **MBK\_IN\_LO** is not set to a legal logical format.

**"∗∗∗ mbk error ∗∗∗ pfloadlofig : could not open file** *figname***"**

No file called *figname.ext*, where *ext* is the file format extension, has been found in the directories set by the environment.

**"∗∗∗ mbk error ∗∗∗ pfloadlofig : syntax error line x parsing** *figname.ext***"**

Either the file has been corrupted and its syntax is not legal, or there is a bug in the given parser.

## EXAMPLE

```
#include "mlo.h"
lofig_list ∗get_the_lofig(figname, mode)
char ∗figname;
char mode;
{
lofig_list ∗pt;
	for (pt = HEAD_LOFIG; pt; pt = pt->NEXT) /∗ scan figure list ∗/
		if (!strcmp(pt->NAME, figname))
			break;
	if (!pt) { /∗ figure doesn't exist ∗/
		pt = addlofig(figname);
		pt->MODE = mode == 'A' ? mode : 'P';
		loadlofig(pt, figname, pt->MODE);
		return pt;
	}
	if (ptfig->MODE != 'A') { /∗ figure exists interface only ∗/
		if (mode == 'A') {
			pt->MODE = 'A';
			loadlofig(pt, figname, 'C');
			return pt;
		} else
			return pt;
	} else /∗ figure exists interface and body ∗/
		return pt;
}
```

## SEE ALSO

**mbk**(1), [**mbkenv**(3)](/mbkenv/3.md), [**lofig**(3)](/lofig/3.md), [**addlofig**(3)](/addlofig/3.md), [**getlofig**(3)](/getlofig/3.md), [**dellofig**(3)](/dellofig/3.md), [**savelofig**(3)](/savelofig/3.md), [**flattenlofig**(3)](/flattenlofig/3.md), [**rflattenlofig**(3)](/rflattenlofig/3.md), [**MBK\_IN\_LO**(1)](/MBK_IN_LO/1.md), [**MBK\_WORK\_LIB**(1)](/MBK_WORK_LIB/1.md), [**MBK\_CATA\_LIB**(1)](/MBK_CATA_LIB/1.md).
