loadlofig.3alc man page

loadlofig — load a new logical cell model from disk

Synopsis

#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) function in fact performs a call to a parser, chosen by the MBK_IN_LO(1) environment variable. The directories searched for the file are first the one sets by MBK_WORK_LIB(1) and then, in the described order, the ones set by MBK_CATA_LIB(1). See MBK_IN_LO(1), MBK_WORK_LIB(1), MBK_CATA_LIB(1) and mbkenv(3) 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), lofig(3), addlofig(3), getlofig(3), dellofig(3), savelofig(3), flattenlofig(3), rflattenlofig(3), MBK_IN_LO(1), MBK_WORK_LIB(1), MBK_CATA_LIB(1).

Referenced By

addlofig.3alc(3), dellofig.3alc(3), flattenlofig.3alc(3), getlofig.3alc(3), loadlofig.3alc(3), lofig.3alc(3), lofigchain.3alc(3), mbkenv.3alc(3), mbkfopen.3alc(3), rflattenlofig.3alc(3), savelofig.3alc(3).

October 1, 1997 ASIM/LIP6 MBK LOGICAL UTILITY FUNCTIONS