|
NAMEaddloins - create a logical instance See the file man1/alc_origin.1. SYNOPSIS#include "mlo.h" loins_list ∗addloins(ptfig, insname, ptmodel, sigchain) lofig_list ∗ptfig; char ∗insname; lofig_list ∗ptmodel; chain_list ∗sigchain; PARAMETERSDESCRIPTIONaddloins creates a new instance, and adds it to the list of
instances pointed to by ptfig->LOINS. The new instance is added in
front of the list, and becomes itself the list head.
RETURN VALUEaddloins returns a pointer to the newly created instance. ERRORS"∗∗∗ mbk error ∗∗∗ addloins impossible : instance insname already exist in figure ptfig->NAME" The insname is the instance identifier. So it must
be unique at a given hierarchy level.
"∗∗∗ mbk error ∗∗∗ addloins
impossible : instance model is the figure figname
itself"
The model of the instance has the same name that the
figure where the instantiation takes place. This check is only performed for a
single hierarchy level, in terms of its instances.
"∗∗∗ mbk error ∗∗∗ addloins
impossible : connector number discrepancy between figure
ptmodel->NAME and instance insname in
figure ptfig->NAME"
The number of signals in the sigchain is not equal
to the number of connectors of the model. The matching is not done
correctly.
EXAMPLE
#include "mlo.h"
void add_na2_y(pt, in1, in2, out) /∗ add an instance of na2_y ∗/
lofig_list ∗pt; /∗ pointer to the figure ∗/
long in1, in2, out; /∗ signals indexes ∗/
{
chain_list ∗signal = NULL;
/∗ get the pointer when signal index is known ∗/
signal = addchain(signal, (void ∗)givelosig(pt, in1));
signal = addchain(signal, (void ∗)givelosig(pt, in2));
signal = addchain(signal, (void ∗)givelosig(pt, out));
/∗ get vdd and vss ∗/
signal = addchain(signal, (void ∗)give_vdd(pt));
signal = addchain(signal, (void ∗)give_vss(pt));
/∗ reverse the list ∗/
signal = reverse(signal);
addloins(pt, "nand", getlofig("na2_y"), signal);
}
SEE ALSOmbk(1), lofig(3), loins(3), chain(3), getloins(3), delloins(3). See the file man1/alc_bug_report.1.
|