Provided by: alliance_5.1.1-1.1build1_amd64 bug

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) function in fact performs a call to a parser, choosen 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).