2 /*10/14/97 Cone Netlist Structure functions: cnsh.h */
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
);
20 void *initbranchmem(void);
21 void *initcellmem(void);
22 void *initcnsfigmem(void);
23 void *initconemem(void);
24 void *initedgemem(void);
25 void *initlinkmem(void);
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
);
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
);
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
);
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
);
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
);
85 void cnsSwitchContext(cnsContext
*ctx
);
86 cnsContext
*cnsCreateContext(void);
87 void cnsFreeContext(mbkContext
*ctx
);
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
);
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
);
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
);
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
);
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
);