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 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; }