diff --git a/log/include/logdef.h b/log/include/logdef.h index a8f88db45170fb8107eab5361d0396bad2130ef7..7d1c27f2262392085345adb0a2bb56163f28b33c 100644 --- a/log/include/logdef.h +++ b/log/include/logdef.h @@ -203,18 +203,7 @@ typedef struct log_pinposrec { short x, y; } log_pinposrec; -typedef struct log_nrec { - struct log_nrec *next; - na_long info; - struct log_tool *simtype; - struct log_nrec *confnext; - short ref; - log_gattrrec *attr; - na_long temp; - unsigned changed : 1, conflict : 1, oconflict : 1, flag : 1, keep : 1, - conflict1 : 1, conflict2 : 1, f8 : 1, f7 : 1, f6 : 1, f5 : 1, - f4 : 1, f3 : 1, f2 : 1, f1 : 1, f0 : 1; -} log_nrec; /* Node */ +typedef struct log_nrec log_nrec; /* Node */ typedef struct log_sigrec { char *name; diff --git a/log/include/node.h b/log/include/node.h index b72143c783cbc4d2b791efb217e514aec1ef3d17..a640390f26d0582ae9377bdfbbc5e799e96357d7 100644 --- a/log/include/node.h +++ b/log/include/node.h @@ -2,6 +2,21 @@ #define NODE_H #include "logdef.h" +#include "logstructs.h" + +typedef struct log_nrec { + struct log_nrec *next; + na_long info; + struct log_tool *simtype; + struct log_nrec *confnext; + short ref; + log_gattrrec *attr; + na_long temp; + unsigned changed : 1, conflict : 1, oconflict : 1, flag : 1, keep : 1, + conflict1 : 1, conflict2 : 1, f8 : 1, f7 : 1, f6 : 1, f5 : 1, + f4 : 1, f3 : 1, f2 : 1, f1 : 1, f0 : 1; +} log_nrec; /* Node */ + void dumpnodes(); diff --git a/log/include/tool.h b/log/include/tool.h index abf019938abf592244e8ecce3bbc869d06cc98c1..d96ac62ed3aebaef1c4ddd983cdfa81e21d26980 100644 --- a/log/include/tool.h +++ b/log/include/tool.h @@ -4,5 +4,6 @@ #include "logdef.h" void calltoolgate(log_grec *g, log_actionkinds act); +log_tool *findtool(char *name_); #endif diff --git a/log/src/ana/capfloat.c b/log/src/ana/capfloat.c index ba57f51d39857bd5ecd2a3ca1d8006eada7edc1c..66586f2585535ee769c799b58b6f5cdbe79d6dfd 100644 --- a/log/src/ana/capfloat.c +++ b/log/src/ana/capfloat.c @@ -25,6 +25,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/capfloat.h" +#include "node.h" #define N_Cap 1 #define Cstart 2 diff --git a/log/src/ana/diode1.c b/log/src/ana/diode1.c index e256ecc0e2540d1de1975eb8851f73f4c83e5a11..1220680d833a7543652b94d1f2f184c710de8c05 100644 --- a/log/src/ana/diode1.c +++ b/log/src/ana/diode1.c @@ -25,7 +25,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/diode1.h" - +#include "node.h" #define N_Is 1 #define N_Ktqn 2 diff --git a/log/src/ana/ganglion.c b/log/src/ana/ganglion.c index ff751dca7d3faad12d16c2843601a3013a115696..04720aaa1dbe93c0a67eaf3fd2a0545a40e72195 100644 --- a/log/src/ana/ganglion.c +++ b/log/src/ana/ganglion.c @@ -29,7 +29,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/ganglion.h" - +#include "node.h" #define N_CapVinGnd 1 #define N_CapVinVout 2 diff --git a/log/src/ana/globals.c b/log/src/ana/globals.c index de9a1c7f59a4f804029e592452d469aab1a2b7ed..fa03ebcb20bf30817c37d2757d9ddf2aab15c4d4 100644 --- a/log/src/ana/globals.c +++ b/log/src/ana/globals.c @@ -35,6 +35,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define GLOBALS_G #include "ana/globals.h" +#include "node.h" #ifndef NEWCRT_H #include <p2c/newcrt.h> diff --git a/log/src/ana/hres.c b/log/src/ana/hres.c index 766795a01de5e5259a9c3521d5d2c95c8e5fe8c9..50478924a0aa5ae322c4146e7b3f59e92ebaad8e 100644 --- a/log/src/ana/hres.c +++ b/log/src/ana/hres.c @@ -29,7 +29,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/hres.h" - +#include "node.h" #define N_Voffset 1 #define N_Ipos 2 diff --git a/log/src/ana/idiff.c b/log/src/ana/idiff.c index 9b5a169a698ef4b2110dd549d374a283c42ef993..22ffe034e3b695bca84214e6eeca423e2a8cd173 100644 --- a/log/src/ana/idiff.c +++ b/log/src/ana/idiff.c @@ -26,9 +26,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> - - - +#include "node.h" #define IDIFF_G diff --git a/log/src/ana/inter.c b/log/src/ana/inter.c index 420003c8e561e50d685f15715a081de12c5a646d..b1b39e6d6c74ed41dc598e42ed22820629103aec 100644 --- a/log/src/ana/inter.c +++ b/log/src/ana/inter.c @@ -31,7 +31,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define INTER_G #include "ana/inter.h" - +#include "node.h" static void log_histinit_32(log_action_t *Globals, int Voltage) diff --git a/log/src/ana/iscope.c b/log/src/ana/iscope.c index 49757e7049c34c41d964a0306c8308f0c1a43810..257b44c2163e1a4464bd3fa28d4dcd0be3f126e7 100644 --- a/log/src/ana/iscope.c +++ b/log/src/ana/iscope.c @@ -27,7 +27,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/iscope.h" - +#include "node.h" #define N_Present 1 #define N_Format 2 diff --git a/log/src/ana/iswitch1.c b/log/src/ana/iswitch1.c index 2e8051acaa062a4b84a00fde0022d2423dc34f4d..6a6377e01461c5b26dc0601b84ec86f793e55fe3 100644 --- a/log/src/ana/iswitch1.c +++ b/log/src/ana/iswitch1.c @@ -27,7 +27,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/iswitch1.h" - +#include "node.h" /*For Attributes*/ diff --git a/log/src/ana/iswitch2.c b/log/src/ana/iswitch2.c index da5c1d9a4f67201d185ca53e413ea56307393ca3..c5d52df24e391557cf4d0dc45535090797ac66d6 100644 --- a/log/src/ana/iswitch2.c +++ b/log/src/ana/iswitch2.c @@ -29,7 +29,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define ISWITCH2_G #include "ana/iswitch2.h" - +#include "node.h" /*For Attributes*/ diff --git a/log/src/ana/main.c b/log/src/ana/main.c index 8ccc9bca073f12192c73bb824ff6d380442a16bc..317dd4bc56b0f2ae31fe713209f4ea128673d94a 100644 --- a/log/src/ana/main.c +++ b/log/src/ana/main.c @@ -30,7 +30,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/nsolver.h" #include "ana/main.h" - +#include "node.h" #define newci_findprocedure findprocedure extern int findprocedure (char *name, void (**start)()); diff --git a/log/src/ana/mmeter.c b/log/src/ana/mmeter.c index 21378124ee67e84869c3adc3379fad57e2da6803..e6e24e0559bb55a1ebc4511a7215be1dd86e6007 100644 --- a/log/src/ana/mmeter.c +++ b/log/src/ana/mmeter.c @@ -27,6 +27,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/mmeter.h" +#include "node.h" #define N_Present 1 #define N_Format 2 diff --git a/log/src/ana/moscap.c b/log/src/ana/moscap.c index 643274ddb0426047f7b823dd510e8200283e0d03..8e236cd62de29e56f22a39e90ba4e412dda8b2bc 100644 --- a/log/src/ana/moscap.c +++ b/log/src/ana/moscap.c @@ -29,7 +29,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/moscap.h" - +#include "node.h" #define N_Model 1 #define N_LinCap 2 diff --git a/log/src/ana/nfet4.c b/log/src/ana/nfet4.c index 44c3e584979847cf13203dc5e890c9396ccb295f..f257389ad531c801200b288c5e5d6d8223ca36bc 100644 --- a/log/src/ana/nfet4.c +++ b/log/src/ana/nfet4.c @@ -28,7 +28,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/nfet4.h" - +#include "node.h" #define Cstart 1 #define N_Cgd 10 diff --git a/log/src/ana/nfet5.c b/log/src/ana/nfet5.c index 6d8f82f317f2761e582cc75ad8f56ee75ced7cf9..560006b05862621d2ec66fde8d66959516d3eb92 100644 --- a/log/src/ana/nfet5.c +++ b/log/src/ana/nfet5.c @@ -27,7 +27,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/nfet5.h" - +#include "node.h" #define Cstart 1 #define N_Cgd 10 diff --git a/log/src/ana/nfet7f.c b/log/src/ana/nfet7f.c index bb5ffc3a10dd501e68789ed800ed449d779fcf49..30bbbfc6d4db9a9133a23135cbc4e2b484dea21d 100644 --- a/log/src/ana/nfet7f.c +++ b/log/src/ana/nfet7f.c @@ -27,7 +27,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/nfet7f.h" - +#include "node.h" #define Cstart 1 #define N_Wdrawn 13 diff --git a/log/src/ana/nfet7t.c b/log/src/ana/nfet7t.c index 958fab193f4b0348e54d7dfd1c001bea2b5b856d..8e44eb8e1550818d98b1bb9b1b9ff7de49148e94 100644 --- a/log/src/ana/nfet7t.c +++ b/log/src/ana/nfet7t.c @@ -27,7 +27,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/nfet7t.h" - +#include "node.h" #define Cstart 1 #define N_Wdrawn 10 diff --git a/log/src/ana/npn1.c b/log/src/ana/npn1.c index f51113602f65d1140be140792eb331dc15fe5acc..859e48171f12082c5ecaeceda1ba3cd840e20c14 100644 --- a/log/src/ana/npn1.c +++ b/log/src/ana/npn1.c @@ -25,7 +25,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/npn1.h" - +#include "node.h" #define Cstart 1 #define N_Cbc 10 diff --git a/log/src/ana/npn2.c b/log/src/ana/npn2.c index 023ba8da688aa816a75635de0da44a7f0589fe3c..adaa5c321bc99442dcbf3ed9df0fe319f86d63ea 100644 --- a/log/src/ana/npn2.c +++ b/log/src/ana/npn2.c @@ -25,7 +25,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/npn2.h" - +#include "node.h" #define Cstart 1 #define N_Cbc 10 diff --git a/log/src/ana/nspc1.c b/log/src/ana/nspc1.c index 58827036940c117139f42283b32fb30d9bb63f32..b6a910f8707a4e9919ebe1d6d0fbb0b3038761ad 100644 --- a/log/src/ana/nspc1.c +++ b/log/src/ana/nspc1.c @@ -43,7 +43,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/nspc1.h" - +#include "node.h" #define Cstart 1 #define N_Cb 12 diff --git a/log/src/ana/pfet4.c b/log/src/ana/pfet4.c index 2429f056e487c088c135067e592fb498bb045135..6bb9cb63ba3a101d8d43c9b82454a344385e9fd2 100644 --- a/log/src/ana/pfet4.c +++ b/log/src/ana/pfet4.c @@ -26,7 +26,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/pfet4.h" - +#include "node.h" #define Cstart 1 #define N_Cgd 10 diff --git a/log/src/ana/pfet5.c b/log/src/ana/pfet5.c index c6a938dc0e68b070eef54ae3a78e0565035face5..5adcd25245401ad0c69518529d21d096004ad6dc 100644 --- a/log/src/ana/pfet5.c +++ b/log/src/ana/pfet5.c @@ -27,7 +27,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/pfet5.h" - +#include "node.h" #define Cstart 1 #define N_Cgd 10 diff --git a/log/src/ana/pfet6.c b/log/src/ana/pfet6.c index 193fdd95382f552014b8ac48ab6df05ece3765d1..5d1ffebe0820a5b4f08bdd9c0a45d4610480d8de 100644 --- a/log/src/ana/pfet6.c +++ b/log/src/ana/pfet6.c @@ -24,10 +24,9 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* From input file "swiss.text" */ - #include <p2c/p2c.h> #include "ana/pfet6.h" - +#include "node.h" #define Cstart 1 #define N_Cgd 13 diff --git a/log/src/ana/pfet7f.c b/log/src/ana/pfet7f.c index dc1d4173b2a988b1026d50e69048de137ea6e440..2771912428224f6d7956c1a2b875b27f7225b66b 100644 --- a/log/src/ana/pfet7f.c +++ b/log/src/ana/pfet7f.c @@ -26,6 +26,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/pfet7f.h" +#include "node.h" #define Cstart 1 #define N_Wdrawn 13 diff --git a/log/src/ana/pfet7t.c b/log/src/ana/pfet7t.c index 3512fb560696bfb051fc167e5b1c466084c33b75..1aaa5a8c7647174daeab1f0aababf7d25e440805 100644 --- a/log/src/ana/pfet7t.c +++ b/log/src/ana/pfet7t.c @@ -24,9 +24,9 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* From input file "swiss.text" */ - #include <p2c/p2c.h> #include "ana/pfet7t.h" +#include "node.h" #define Cstart 1 #define N_Wdrawn 10 diff --git a/log/src/ana/pnp1.c b/log/src/ana/pnp1.c index bbf93acec3a7714cf79df80cf20b202b0edf45d3..639ac24cb623f864d836e28883547c52f66795e8 100644 --- a/log/src/ana/pnp1.c +++ b/log/src/ana/pnp1.c @@ -25,7 +25,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/pnp1.h" - +#include "node.h" #define Cstart 1 #define N_Cbc 10 diff --git a/log/src/ana/pnp2.c b/log/src/ana/pnp2.c index e736b6e71dec15cd8543ac72f7c8816ba5a082bf..9c25dde5b876995d9a1d5241eff4a134fb86c144 100644 --- a/log/src/ana/pnp2.c +++ b/log/src/ana/pnp2.c @@ -25,7 +25,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/pnp2.h" - +#include "node.h" #define Cstart 1 #define N_Cbc 10 diff --git a/log/src/ana/pspc1.c b/log/src/ana/pspc1.c index 001c1ab4e95f8d4c56e94912589292797d2bbd33..cfc8a4542b82690532a1ab8105a26f830f88e534 100644 --- a/log/src/ana/pspc1.c +++ b/log/src/ana/pspc1.c @@ -42,10 +42,9 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* From input file "swiss.text" */ - #include <p2c/p2c.h> #include "ana/pspc1.h" - +#include "node.h" #define Cstart 1 #define N_Cb 12 diff --git a/log/src/ana/pwl.c b/log/src/ana/pwl.c index 0b1511671de5d8342f98792bd1fb19cd81883640..d8b93f61bbd8ef100df4930837f4b68aef4aa131 100644 --- a/log/src/ana/pwl.c +++ b/log/src/ana/pwl.c @@ -83,7 +83,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #define PWL_G #include "ana/pwl.h" - +#include "node.h" /* Defaults */ #define D_NoDataFile "none" diff --git a/log/src/ana/resfloat.c b/log/src/ana/resfloat.c index 6153ad08ad948b3ea50c2b7e099e8f2e56a01820..b13b33f565405c6c15d605aedb1fb10d3a9be67f 100644 --- a/log/src/ana/resfloat.c +++ b/log/src/ana/resfloat.c @@ -28,7 +28,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/resfloat.h" - +#include "node.h" #define N_Res 1 #define Cstart 2 diff --git a/log/src/ana/rtd.c b/log/src/ana/rtd.c index 48c30a89ac7ec9b88222bc1859481d5cda0f134b..05aae14fc054dfbca73c08c4ba20944e7fa50c8f 100644 --- a/log/src/ana/rtd.c +++ b/log/src/ana/rtd.c @@ -57,6 +57,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #include <math.h> #include <p2c/p2c.h> #include "ana/rtd.h" +#include "node.h" /* Defaults */ #define D_Sharpness 100.0 diff --git a/log/src/ana/stairs.c b/log/src/ana/stairs.c index 5769ad28cd65cd207d5c9c4f7633bdc2cf7fedba..300c31399fa3fa7b19425a1d726ee93459b906bd 100644 --- a/log/src/ana/stairs.c +++ b/log/src/ana/stairs.c @@ -27,7 +27,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/stairs.h" - +#include "node.h" /*For Attributes*/ diff --git a/log/src/ana/tc.c b/log/src/ana/tc.c index 5aeac7b599f9d6afdb491934d30cb348701b6c27..2760f2af8df9489fe9b0039c47971fea237bf57f 100644 --- a/log/src/ana/tc.c +++ b/log/src/ana/tc.c @@ -30,7 +30,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/tc.h" - +#include "node.h" #define Normal 0 #define Wide 1 diff --git a/log/src/ana/vdiff.c b/log/src/ana/vdiff.c index cadbd4f214640050ca84c0a02fe25cd8830c3614..22b115aba34aa44cf04d5a20567bdaf1b2db8cb4 100644 --- a/log/src/ana/vdiff.c +++ b/log/src/ana/vdiff.c @@ -27,7 +27,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/vdiff.h" - +#include "node.h" /*For Attributes*/ diff --git a/log/src/ana/vswitch.c b/log/src/ana/vswitch.c index 6f79f19a72eccf55faa9222926a069eecda760fe..30fb322c439b95fbe86b2cacffef798e2e00d50c 100644 --- a/log/src/ana/vswitch.c +++ b/log/src/ana/vswitch.c @@ -27,7 +27,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include "ana/vswitch.h" - +#include "node.h" /*For Attributes*/ diff --git a/log/src/log.c b/log/src/log.c index aad5f73ecedb7d420c0ab1a82f6e50a2ddde1c14..d9c654e3312d463696434bd600b054ae94f317a6 100644 --- a/log/src/log.c +++ b/log/src/log.c @@ -73,6 +73,7 @@ #include "node.h" #include "page.h" #include "utils.h" +#include "tool.h" char *GetChipmunkPath(); int findprocedure (char *name, void (**start)()); @@ -3360,38 +3361,30 @@ void confirmsimtype(log_nrec *n) void scancn (cnrec *cn, struct LOC_checkcombine *LINK); -/* Local variables for scancn: */ -struct LOC_scancn { - struct LOC_checkcombine *LINK; -} ; - -static void scan(log_nrec **n, struct LOC_scancn *LINK) +static void scan(log_nrec **n, struct LOC_checkcombine *LINK) { cnrec *cn; - if (!LINK->LINK->good) + if (!LINK->good) return; if (*n != NULL) - checknode(*n, LINK->LINK); - cn = *LINK->LINK->cnbase; - while (cn != NULL && LINK->LINK->good) + checknode(*n, LINK); + cn = LINK->cnbase; + while (cn != NULL && LINK->good) { if ((cn->n == *n && *n != NULL) || cn->np == n) - scancn(cn, LINK->LINK); + scancn(cn, LINK); cn = cn->next; } } void scancn(cnrec *cn, struct LOC_checkcombine *LINK) { - struct LOC_scancn V; - - V.LINK = LINK; if (cn->done) return; cn->done = true; - scan(&cn->n, &V); - scan(cn->np, &V); + scan(&cn->n, LINK); + scan(cn->np, LINK); } static void frysolder(short x, short y) diff --git a/log/src/loghier.c b/log/src/loghier.c index 8ba5f5fcedf08b4dc7beb9c2297deb45e958f0ec..0c9060ff71aae16514792557af0cf92005b66e22 100644 --- a/log/src/loghier.c +++ b/log/src/loghier.c @@ -33,7 +33,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include <p2c/strings.h> #include "loghier.h" - +#include "node.h" static log_action_t *lact; diff --git a/log/src/logntk.c b/log/src/logntk.c index e06b2f3966f5f72a9ba312bf723e43fddeb8f701..3ef6d601240d3a41f82e64907c84a481f1af9302 100644 --- a/log/src/logntk.c +++ b/log/src/logntk.c @@ -38,6 +38,7 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <p2c/p2c.h> #include <p2c/strings.h> #include "logntk.h" +#include "node.h" #define main_name "-Main-" diff --git a/log/src/logsim.c b/log/src/logsim.c index ff426d54532529c0f6295b6f033a5d15c9d3714d..95a8edf626dfcb6c3df75e9b85ebafd9418fb41c 100644 --- a/log/src/logsim.c +++ b/log/src/logsim.c @@ -40,6 +40,7 @@ #include <p2c/p2c.h> #include "logsim.h" +#include "node.h" #define newci_findprocedure findprocedure diff --git a/log/src/logsimasm.c b/log/src/logsimasm.c index eea138a42db8eb21028617bb52326f4f89cb9a38..ead728fc5498cf381776490c07c295f110ca171d 100644 --- a/log/src/logsimasm.c +++ b/log/src/logsimasm.c @@ -30,6 +30,8 @@ #define LOGSIMA_G #include "logsima.h" +#include "node.h" + static int trace_16 = 0; #define trace_16 (logsima_action.lact->quiet ? -1 : 0) diff --git a/log/src/logsimh.c b/log/src/logsimh.c index f58e83b881d06323906f7cc3d9ed895197d7d9e0..91f75c79f4c625e76e3e001b6fe8e69a37ebc2ed 100644 --- a/log/src/logsimh.c +++ b/log/src/logsimh.c @@ -38,6 +38,7 @@ #include <p2c/p2c.h> #include <p2c/strings.h> #include "logsimh.h" +#include "node.h" /* caged_date="R lastmoddate = '$X by $U';" */ diff --git a/log/src/logspc.c b/log/src/logspc.c index 6b37fcd6b7449607afe7a2011da8740e45e6f498..8fb44a2e0a34b89a5bebca660d282eaf17ab76a8 100644 --- a/log/src/logspc.c +++ b/log/src/logspc.c @@ -80,6 +80,9 @@ Version Date Description /* Spice Globals */ +#include <p2c/p2c.h> +#include "node.h" + #define LOGSPC_VERSION "1.0 Beta" long m_ctr, x_ctr; /* spice counters */ diff --git a/log/src/node.c b/log/src/node.c index ced7386adfec3988ee7a2e85ea4ca56ea9e667bf..50789cbca3358338ee0df037c8d0a5314bae8c13 100644 --- a/log/src/node.c +++ b/log/src/node.c @@ -13,41 +13,41 @@ static log_nrec *freenode = NULL; -void newnptr(log_nrec **n) +void newnptr(log_nrec **node) { if (freenode == NULL) { - *n = (log_nrec *)Malloc(sizeof(log_nrec)); + *node = (log_nrec *)Malloc(sizeof(log_nrec)); } else { - *n = freenode; + *node = freenode; freenode = freenode->next; } } -void newnode(log_nrec **n, uchar st) +void newnode(log_nrec **node, uchar st) { - newnptr(n); - (*n)->simtype = findsimtype(st); - (*n)->changed = false; - (*n)->conflict = false; - (*n)->conflict1 = false; - (*n)->conflict2 = false; - (*n)->oconflict = false; - (*n)->flag = false; - (*n)->keep = false; - (*n)->ref = 0; - newattrs(&(*n)->attr, (*n)->simtype->nnumattrs, (*n)->simtype->nattr); - (*n)->info = (na_long)0; - (*n)->temp = (na_long)0; - stamp(&(*n)->simtype->netstamp); - calltoolnode(*n, act_newnode); - (*n)->next = gg.nbase; - gg.nbase = *n; + newnptr(node); + (*node)->simtype = findsimtype(st); + (*node)->changed = false; + (*node)->conflict = false; + (*node)->conflict1 = false; + (*node)->conflict2 = false; + (*node)->oconflict = false; + (*node)->flag = false; + (*node)->keep = false; + (*node)->ref = 0; + newattrs(&(*node)->attr, (*node)->simtype->nnumattrs, (*node)->simtype->nattr); + (*node)->info = (na_long)0; + (*node)->temp = (na_long)0; + stamp(&(*node)->simtype->netstamp); + calltoolnode(*node, act_newnode); + (*node)->next = gg.nbase; + gg.nbase = *node; if (gg.traceflag) - fprintf(tracefile, "Make node %ld\n", (long)(*n)); + fprintf(tracefile, "Make node %p\n", *node); } /*================== COPYNODE ==================*/ @@ -56,24 +56,24 @@ void newnode(log_nrec **n, uchar st) /*= =*/ /*================================================*/ -void copynode(log_nrec *old, log_nrec **n) +void copynode(log_nrec *old, log_nrec **node) { - newnptr(n); - **n = *old; - (*n)->ref = 0; - copyattrs(&(*n)->attr, old->attr, (*n)->simtype->nnumattrs, - (*n)->simtype->nattr); + newnptr(node); + **node = *old; + (*node)->ref = 0; + copyattrs(&(*node)->attr, old->attr, (*node)->simtype->nnumattrs, + (*node)->simtype->nattr); gg.actnode2 = old; - calltoolnode(*n, act_copynode); - (*n)->next = gg.nbase; - gg.nbase = *n; - if ((*n)->conflict || (*n)->oconflict) + calltoolnode(*node, act_copynode); + (*node)->next = gg.nbase; + gg.nbase = *node; + if ((*node)->conflict || (*node)->oconflict) { - (*n)->confnext = nodeconflictbase; - nodeconflictbase = *n; + (*node)->confnext = nodeconflictbase; + nodeconflictbase = *node; } if (gg.traceflag) - fprintf(tracefile, "Copy node %ld from %ld\n", (long)(*n), (long)old); + fprintf(tracefile, "Copy node %p from %p\n", *node, old); } @@ -83,29 +83,29 @@ void copynode(log_nrec *old, log_nrec **n) /*= =*/ /*================================================*/ -void disposenptr(log_nrec **n) +void disposenptr(log_nrec **node) { - (*n)->next = freenode; - freenode = *n; + (*node)->next = freenode; + freenode = *node; } #define rtn "DISPNODE" -void disposenode(log_nrec **n) +void disposenode(log_nrec **node) { log_nrec *n1, *n2; if (gg.traceflag) - fprintf(tracefile, "Dispose node %ld\n", (long)(*n)); - if (*n == NULL) + fprintf(tracefile, "Dispose node %p\n", *node); + if (*node == NULL) return; - if ((*n)->conflict || (*n)->oconflict) + if ((*node)->conflict || (*node)->oconflict) { n1 = nodeconflictbase; n2 = NULL; - while (n1 != NULL && n1 != *n) + while (n1 != NULL && n1 != *node) { n2 = n1; n1 = n1->confnext; @@ -113,93 +113,93 @@ void disposenode(log_nrec **n) if (n1 == NULL) report(11, rtn); else if (n2 == NULL) - nodeconflictbase = (*n)->confnext; + nodeconflictbase = (*node)->confnext; else - n2->confnext = (*n)->confnext; + n2->confnext = (*node)->confnext; } - if (*n == gg.probenode) + if (*node == gg.probenode) gg.probenode = NULL; - stamp(&(*n)->simtype->netstamp); - calltoolnode(*n, act_disposenode); + stamp(&(*node)->simtype->netstamp); + calltoolnode(*node, act_disposenode); n1 = gg.nbase; - if (*n == n1) + if (*node == n1) { - gg.nbase = (*n)->next; + gg.nbase = (*node)->next; } else { - while (n1 != NULL && n1->next != *n) + while (n1 != NULL && n1->next != *node) n1 = n1->next; if (n1 == NULL) report(10, rtn); else - n1->next = (*n)->next; + n1->next = (*node)->next; } - disposeattrs(&(*n)->attr, (*n)->simtype->nnumattrs, (*n)->simtype->nattr); - disposenptr(n); + disposeattrs(&(*node)->attr, (*node)->simtype->nnumattrs, (*node)->simtype->nattr); + disposenptr(node); } #undef rtn -int nodeexists(log_nrec *n) +int nodeexists(log_nrec *node) { log_nrec *n1; n1 = gg.nbase; - while (n1 != NULL && n1 != n) + while (n1 != NULL && n1 != node) n1 = n1->next; - return (n1 != NULL); + return n1 != NULL; } -void newnoderef(log_nrec **n, uchar st, long ref) +void newnoderef(log_nrec **node, uchar st, long ref) { - newnode(n, st); - (*n)->ref = ref; + newnode(node, st); + (*node)->ref = ref; } -log_nrec *refnode(log_nrec *n) +log_nrec *refnode(log_nrec *node) { - if (n == NULL) - return n; - n->ref++; + if (node == NULL) + return node; + node->ref++; if (gg.traceflag) - fprintf(tracefile, "Reference node %ld -> %d\n", (long)n, n->ref); - return n; + fprintf(tracefile, "Reference node %p -> %d\n", node, node->ref); + return node; } #define rtn "UNREFNODE" -void unrefnode(log_nrec **n) +void unrefnode(log_nrec **node) { - if (*n == NULL) + if (*node == NULL) return; - (*n)->ref--; + (*node)->ref--; if (gg.traceflag) - fprintf(tracefile, "Unref node %ld -> %d\n", (long)(*n), (*n)->ref); - if ((*n)->ref > 0) + fprintf(tracefile, "Unref node %p -> %d\n", *node, (*node)->ref); + if ((*node)->ref > 0) return; - if ((*n)->ref < 0) + if ((*node)->ref < 0) report(10, rtn); else { - if (!(*n)->keep) - disposenode(n); + if (!(*node)->keep) + disposenode(node); } } #undef rtn -void switchnode(log_nrec **n, log_nrec *n2) +void switchnode(log_nrec **node, log_nrec *n2) { - if (*n != n2) + if (*node != n2) { - unrefnode(n); - *n = refnode(n2); + unrefnode(node); + *node = refnode(n2); } } @@ -243,8 +243,8 @@ void dumpnodes() while (j == i && n != NULL) { i++; - fprintf(tracefile, "%12ld T:%s Ref:%d", - (long)n, n->simtype->name, n->ref); + fprintf(tracefile, "%p T:%s Ref:%d", + n, n->simtype->name, n->ref); FORLIM = gg.lastsignal; for (j = 0; j < FORLIM; j++) { @@ -372,9 +372,9 @@ void dumpnodes() "\n\n-------------------------------------------------------------------------\n\n\n"); } -void delgetnode(log_nrec **save, log_nrec **old, log_nrec **n) +void delgetnode(log_nrec **save, log_nrec **old, log_nrec **node) { - copynode(*old, n); + copynode(*old, node); } #define rtn "COMBINENODES" diff --git a/log/src/screen.c b/log/src/screen.c index af7f07505dd954e6b520d7fb4da985f6cee818fb..2fe692d03297cdd3eccec02ca21be91f050aab99 100644 --- a/log/src/screen.c +++ b/log/src/screen.c @@ -37,6 +37,7 @@ #include "logfont.h" #include "utils.h" #include "screen.h" +#include "node.h" static rablistrec rabtable[rabtabsize]; /* Positions of rabbits */ diff --git a/log/src/tool.c b/log/src/tool.c index d82db466c8806704886b089cb1787ec798d4a8be..7f27ab34ccfedb888a3d8bf6901f99a05374aae5 100644 --- a/log/src/tool.c +++ b/log/src/tool.c @@ -4,6 +4,7 @@ #include "logdef.h" #include "logglobals.h" #include "utils.h" +#include "node.h" void newtool(log_tool **t, char *name) { diff --git a/log/src/wire.c b/log/src/wire.c index 79598b76c8b149e3aa6b351628a6e29fe6e59c46..f8ad535df78f2e0b3b414a9eb88199d845c821fb 100644 --- a/log/src/wire.c +++ b/log/src/wire.c @@ -5,6 +5,7 @@ #include "logdef.h" #include "utils.h" #include "wire.h" +#include "node.h" void fryhwire(log_hwrec *hw); void fryvwire(log_vwrec *vw);