bionic (3) addlosig.3.gz

Provided by: alliance_5.1.1-1.1build1_amd64 bug

NAME

       addlosig - create a logical signal

SYNOPSYS

       #include "mlo.h"
       losig_list ∗addlosig(ptfig, index, namechain, type)
       lofig_list ∗ptfig;
       long index;
       chain_list ∗namechain;
       char type;

PARAMETERS

       ptfig               Pointer to the figure in which the signal should be added

       index               Signal index

       namechain           List of names of the signal

       type                Signal type

DESCRIPTION

       addlosig  creates  a  new  signal, and adds it to the list of signals pointed to by ptfig->LOSIG. The new
       signal is added in front of the list, and becomes itself the list head.
       The type parameter can take two values :

              EXTERNAL            The signal is attached to at least one connector of the figure.

              INTERNAL            The signal is only attached to instance or transistor connector.
       The index and type arguments fill the INDEX and TYPE fields of the losig(3) structure. The index  is  the
       signal identifier, so it should be unique at a given hierarchical level.
       The namechain argument is a list of names, given in a chain_list.  See chain(3) for details.

RETURN VALUE

       addlosig returns a pointer to the newly created signal.

ERRORS

       "∗∗∗ mbk error ∗∗∗ addlosig impossible signal index already exist in figure ptfig->NAME"
              The index is already used in an other signal, and since it's the signal identifier, it can't be.

EXAMPLE

       #include "mlo.h"
       losig_list ∗merge_and_create(pt, s0, s1) /∗ merge two signal in a third ∗/
       lofig_list ∗pt;
       losig_list ∗s0, ∗s1;
       {
       chain_list ∗c;
       losig_list ∗s;
       long max_index;
          /∗ merge names ∗/
          for (c = s0->NAMECHAIN; c; c = c->NEXT)
             s1->NAMECHAIN = addchain(s1->NAMECHAIN, c);
          /∗ find maximum index ∗/
          for (s = pt->LOSIG; s; s = s->NEXT)
             if (max_index < s->INDEX)
                max_index = s->INDEX;
          s = addlosig(pt, ++max_index, s1->NAMECHAIN,
                s0->TYPE == EXTERNAL || s1->TYPE == EXTERNAL ?
                EXTERNAL : INTERNAL);
          dellosig(pt, s0);
          dellosig(pt, s1);
          return s;
       }

SEE ALSO

       mbk(1), lofig(3), losig(3), getlosig(3), dellosig(3).