addlosig(3) - Linux man page
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).