Provided by: alliance_5.1.1-1.1build1_amd64 bug


       loadlofig - load a new logical cell model from disk


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


       ptfig               Pointer to an allocated but empty lofig

       figname             Name of the figure to be loaded

       mode                Loading mode


       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.


       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.


       #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))
          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;


       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).