Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / cns / cnsh.h
1
2 /*10/14/97 Cone Netlist Structure functions: cnsh.h */
3
4 void cnsenv(void);
5
6 void viewbranch(branch_list *ptbranch, int depth);
7 void viewcell(cell_list *ptcell, int depth);
8 void viewcone(cone_list *ptcone, int depth);
9 void displaycone(cone_list *ptcone);
10 void displayconelog(int lib, int loglevel, cone_list *ptcone);
11 void viewcnsfig(cnsfig_list *ptcnsfig, int depth);
12 void viewcnslocon(locon_list *ptlocon, int depth);
13 void viewcnslotrs(lotrs_list *ptlotrs, int depth);
14 void viewcnsptype(ptype_list *ptptype);
15 void viewedge(edge_list *ptedge, int depth);
16 void viewincone(edge_list *ptincone, int depth);
17 void viewlink(link_list *ptlink, int depth);
18 void viewoutcone(edge_list *ptoutcone, int depth);
19
20 void *initbranchmem(void);
21 void *initcellmem(void);
22 void *initcnsfigmem(void);
23 void *initconemem(void);
24 void *initedgemem(void);
25 void *initlinkmem(void);
26
27 void *freelink(link_list *ptlink);
28 void *freelklist(link_list *ptlklist);
29 void *freeedge(edge_list *ptedge);
30 void *freeeelist(edge_list *pteelist);
31 void *freecone(cone_list *ptcone);
32 void *freecelist(cone_list *ptcelist);
33 void *freecnsfig(cnsfig_list *ptcnsfig);
34 void *freecglist(cnsfig_list *ptcglist);
35 void *freebranch(branch_list *ptbranch);
36 void *freebrlist(branch_list *ptbrlist);
37 void *freecell(cell_list *ptcell);
38 void *freecllist(cell_list *ptcllist);
39 void freelotrsconefig(cnsfig_list *ptcnsfig);
40 void freeconelotrsfig(cnsfig_list *ptcnsfig);
41 void freeconelotrs(cone_list *ptcone);
42
43 branch_list *addbranch(branch_list *ptbranchhead, long type, link_list *ptlink);
44 cell_list *addcell(cell_list *ptcellhead, long type, chain_list *ptchain, befig_list *ptbefig);
45 cnsfig_list *addcnsfig(cnsfig_list *ptcnsfighead, char *name, locon_list *ptlocon, locon_list *ptintcon, lotrs_list *ptlotrs, loins_list *ptloins, cone_list *ptcone, cell_list *ptcell, lofig_list *ptlofig, befig_list *ptbefig);
46 void addcnsintlocon(cnsfig_list *ptcnsfig, long index, char *name, char direction);
47 void addcnslocon(cnsfig_list *ptcnsfig, long index, char *name, char direction);
48 locon_list *addcnslocontolist(locon_list *ptheadlocon, long index, char *name, char direction);
49 void addcnslotrs(cnsfig_list *ptcnsfig, long index, cone_list *drvcn, long x, long y, long w, long l, long ps, long pd, long xs, long xd, char type, losig_list *ptgrid, losig_list *ptsource, losig_list *ptdrain, losig_list *ptbulk, char *name);
50 cone_list *addcone(cone_list *ptconehead, long index, char *name, long type, long tectype, long xmax, long xmin, long ymax, long ymin, edge_list *ptincone, edge_list *ptoutcone, branch_list *ptbrext, branch_list *ptbrvdd, branch_list *ptbrgnd, branch_list *ptbrvss, chain_list *ptchain);
51 void addconebranch(cone_list *ptcone, branch_list *ptconebr, long type, link_list *ptlink);
52 void addconelotrs(cone_list *ptcone);
53 void addconelotrsfig(cnsfig_list *ptcnsfig);
54 edge_list *addedge(edge_list *ptedgehead, long type, void *data);
55 void addincone(cone_list *ptcone, long type, void *data);
56 link_list *addlink(link_list *ptlinkhead, long type, void *data, losig_list *ptsig);
57 void addoutcone(cone_list *ptcone, long type, void *data);
58
59 cnsfig_list *getcnsfig(char *name, lofig_list *ptlofig);
60 lotrs_list *getcnslotrs(cnsfig_list *ptcnsfig, long index);
61 locon_list *getcnslocon(cnsfig_list *ptcnsfig, long index, char *name);
62 cone_list *getcone(cnsfig_list *ptcnsfig, long index, char *name);
63 cnsfig_list *getloadedcnsfig(char *name);
64
65 branch_list *delbranch(branch_list *ptbranchhead, branch_list *ptbranch2del);
66 cell_list *delcell(cell_list *ptcellhead, cell_list *ptcell2del);
67 cnsfig_list *delcnsfig(cnsfig_list *ptcnsfighead, cnsfig_list *ptcnsfig2del);
68 cone_list *delcone(cone_list *ptconehead, cone_list *ptcone2del);
69 void delconebranch(cone_list *ptcone, branch_list *ptconebr, branch_list *ptbranch2del);
70 edge_list *deledge(edge_list *ptedgehead, edge_list *ptedge2del);
71 void delincone(cone_list *ptcone, long type, void *data);
72 link_list *dellink(link_list *ptlinkhead, link_list *ptlink2del);
73 void deloutcone(cone_list *ptcone, long type, void *data);
74
75 branch_list *appendbranch(branch_list *ptbranch1, branch_list *ptbranch2);
76 cell_list *appendcell(cell_list *ptcell1, cell_list *ptcell2);
77 cnsfig_list *appendcnsfig(cnsfig_list *ptcnsfig1, cnsfig_list *ptcnsfig2);
78 cone_list *appendcone(cone_list *ptcone1, cone_list *ptcone2);
79 void appendconebranch(cone_list *ptcone, branch_list *ptconebr, branch_list *ptbranch2);
80 edge_list *appendedge(edge_list *ptedge1, edge_list *ptedge2);
81 void appendincone(cone_list *ptcone1, cone_list *ptcone2);
82 link_list *appendlink(link_list *ptlink1, link_list *ptlink2);
83 void appendoutcone(cone_list *ptcone1, cone_list *ptcone2);
84
85 void cnsSwitchContext(cnsContext *ctx);
86 cnsContext *cnsCreateContext(void);
87 void cnsFreeContext(mbkContext *ctx);
88
89 chain_list *parabrs(branch_list *ptbranch);
90 short testparabrs(branch_list *ptbranch1, branch_list *ptbranch2);
91 short brlotrsnum(branch_list *ptbrlist);
92 short cnbrlotrsnum(cone_list *ptcone);
93 short lotrsnum(link_list *ptlklist);
94
95 short treatbr(FILE *ptfile, branch_list *ptbranch, long counter);
96 short treatbrv(FILE *ptfile, branch_list *ptbranch, long counter);
97 void cnsfigchain(cnsfig_list *ptcnsfig);
98 void cnslofigchain(lofig_list *ptlofig, cnsfig_list *ptcnsfig);
99 void savecnsfig(cnsfig_list *ptcnsfig, lofig_list *ptlofig);
100 void savecnslofig(cnsfig_list *ptcnsfig, lofig_list *ptlofig, int complete);
101 void savecnvfig(cnsfig_list *ptcnsfig);
102 int cnsfigyyparse(void);
103 void setcnslofig(lofig_list *existingfig);
104 cnsfig_list *loadcnsfig(char *filename, lofig_list *ptlofig);
105 void cone2locon(cone_list *ptcone, locon_list *ptlocon);
106 void cone2lotrs(cone_list *ptcone, lotrs_list *ptlotrs);
107 void locon2cone(locon_list *ptlocon, cone_list *ptcone);
108 void lotrs2cone(lotrs_list *ptlotrs, cone_list *ptcone);
109 void cnsstats(cnsfig_list *ptcnsfig, FILE *ptfile);
110 int checkincone(cone_list *ptcone, branch_list *ptbranch, link_list *ptlink, void *data);
111 void coneparabrs(cone_list *ptcone);
112
113 void cnsAddConeInversion(cone_list *ptexprcone, cone_list *ptcone);
114 chain_list *cnsMakeBranchExpr(branch_list *ptbranch, long linkmask, int simplify);
115 void cnsMakeExtBranchExpr(branch_list *ptbranch, abl_pair *branch_abl, long linkmask, int simplify);
116 void cnsMakeConeExpr(cone_list *ptcone, abl_pair *cone_abl, long branchmask, long linkmask, int simplify);
117 void cnsConeFunction(cone_list *ptcone, int simplify);
118 int cnsCalcConeState(cone_list *ptcone, long defaultstate);
119 void cnsCalcFigState(cnsfig_list *ptcnsfig, cbhseq *ptcbhseq);
120 void cnsCleanFigState(cnsfig_list *ptcnsfig, cbhseq *ptcbhseq);
121
122 int cns_getlotrsalim(lotrs_list *lotrs, char type, float *alim);
123 alim_list *cns_get_multivoltage(cone_list *ptcone);
124 alim_list *cns_get_signal_multivoltage(losig_list *ls);
125 alim_list *cns_get_lotrs_multivoltage(lotrs_list *lotrs);
126 void cns_addmultivoltage_cone(cnsfig_list *cnsfig, inffig_list *ifl, cone_list *ptcone);
127 void cns_addmultivoltage(inffig_list *ifl, cnsfig_list *ptcnsfig);
128 void cns_delmultivoltage(cnsfig_list *cnsfig);
129
130 void cnsConeFunction_once(cone_list *ptcone, int simplify);
131 chain_list *cns_get_cone_external_connectors(cone_list *cn);
132 locon_list *cns_get_one_cone_external_connector(cone_list *cn);
133 unsigned int cns_signcns( cnsfig_list *cnsfig );
134