Corrected a long-standing error in which ending text with a literal
[xcircuit.git] / asg / externs.h
blob0957c37d00d37480e8efb8cceb8c108c14e9a4c0
1 /************************************************************
2 **
3 ** COPYRIGHT (C) 1993 UNIVERSITY OF PITTSBURGH
4 ** COPYRIGHT (C) 1996 GANNON UNIVERSITY
5 ** ALL RIGHTS RESERVED
6 **
7 ** This software is distributed on an as-is basis
8 ** with no warranty implied or intended. No author
9 ** or distributor takes responsibility to anyone
10 ** regarding its use of or suitability.
12 ** The software may be distributed and modified
13 ** freely for academic and other non-commercial
14 ** use but may NOT be utilized or included in whole
15 ** or part within any commercial product.
17 ** This copyright notice must remain on all copies
18 ** and modified versions of this software.
20 ************************************************************/
24 /*---------------------------------------------------------------
25 * External References
26 *---------------------------------------------------------------
28 #include "network.h"
29 /*---------------------------------------------------------------
30 * Defined in main.c
31 *---------------------------------------------------------------
34 extern mlist *modules; /* M the set of all modules */
35 extern nlist *nets; /* N the set of all nets */
36 extern tlist *ext_terms; /* ST the set of all system terminals */
37 extern mlist *ext_mods; /* the modules associated w/ ST */
39 /* NOT USED */
40 extern tlist *int_terms; /* T the set of all inter-module terminals */
42 /* FOR THE ROUTER (only) */
43 extern tile **routingRoot[2];
44 extern int currentPartition;
46 /* NOT USED MUCH */
47 extern mlist **boxes; /* the sets of unit boxes */
48 extern ctree **parti_stats; /* partition statistics */
50 /* FOR THE PLACER (only) */
51 extern mlist **strings; /* the set of strings */
52 extern mlist **partitions; /* the set of PARTITIONS (lists) of modules */
53 extern tile **rootTiles; /* the tile-spaces that correspond to each partition */
54 extern int *x_positions; /* and their postions, after placement */
55 extern int *y_positions;
56 extern int *str_length;
57 extern int *str_height;
59 /* Used by a lot of files: */
60 extern int *x_sizes; /* max x size of each partition */
61 extern int *y_sizes; /* max y size of each partition */
62 extern int xfloor, yfloor;
65 /* NOT USED ENOUGH */
66 extern int partition_count; /* the total number of partitions created */
67 extern int lcount; /* number of input lines read */
68 extern int module_count; /* number of modules/objects read in */
69 extern int node_count; /* number of nodes/signals read in */
70 extern int terminal_count; /* number of terminals read in */
72 extern int connected[MAX_MOD][MAX_MOD]; /* BIG array of connection counts */
73 extern info_type module_info[MAX_MOD]; /* reused module information array */
75 extern int compute_aspect_ratios; /* command line flag: a(spect ratios) */
76 extern int Xcanvas_scaling; /* command line flag: b (use XCanvas scaling) */
77 extern int max_partition_conn; /* command line arg: c(onnections) */
78 extern int debug_level; /* command line arg: d(ebug) */
79 extern int stopAtFirstCut; /* command line flag: f(irst cut @ Global Route) */
80 extern int congestion_rule; /* command line flag: conGestion Rule */
81 extern int do_hand_placement; /* command line flag: h(and placement) */
82 extern int includeSysterms; /* command line flag: i(donot Include system terminals)*/
83 extern int cc_search_level; /* command line arg: l(evel) */
84 extern int matrix_type; /* command line arg: m(atrix type) */
85 extern int do_routing; /* command line flag: n(o routing) */
86 extern FILE *outputFile; /* command line arg: o(utput to file) */
87 extern int partition_rule; /* command line arg: p(artition_rule) */
88 extern int recordStats; /* command line flag: q(uality statistics) */
89 extern float partition_ratio; /* command line arg: r(atio) */
90 extern int max_partition_size; /* command line arg: s(ize) */
91 extern int turn_mode; /* command line arg: t(urn mode) */
92 extern int useSlivering; /* command line flag: v(bypass sliver correction code) */
93 extern int useAveraging; /* command line flag: w(use Weighted averaging) */
94 extern int latex; /* command line flag: x(lateX mode) */
95 extern int recordTiming; /* command line flag: y(collect timing stats) */
96 extern int useBlockPartitioning ; /* -u flag; skips automatic partitioning */
97 extern int collapseNullModules ; /* -k flag;denies kollapse of NL_GATES */
99 /*---------------------------------------------------------------
100 * Defined in n2a.c
101 *---------------------------------------------------------------
103 void GenerateXcircuitFormat(XCWindowData *areastruct, FILE *ps, Boolean bIsSparmode);
104 void Route(XCWindowData *areastruct, Boolean bIsSparmode);
105 int SetDebugLevel(int *level);
106 int ReadHSpice(char *fname);
108 /*---------------------------------------------------------------
109 * Defined in asg.c
110 *---------------------------------------------------------------
113 extern int asg_make_instance(XCWindowData *, char *, int, int, int, int);
114 extern void asg_make_polygon(XCWindowData *, int, int x[], int y[]);
115 extern void asg_make_label(XCWindowData *, u_char, int, int, char *);
117 /*---------------------------------------------------------------
118 * Defined in parse.c
119 *---------------------------------------------------------------
122 extern module *curobj_module;
123 extern char *str_end_copy();
125 void AddModule(char *name, char *type, char *innode, char *outnode);
126 void Add2TermModule(char *, char *, char *, char *);
127 void AddNTermModule(char *, char *, int, ...);
128 void AddModuleTerm(char *, char *, int, int);
130 /*---------------------------------------------------------------
131 * Defined in place.c
132 *---------------------------------------------------------------
135 extern int partition();
136 extern void place_first_strings();
137 extern void box_placement();
138 extern void placement_prep();
139 extern mlist *partition_placement();
140 extern mlist *gross_systerm_placement();
141 extern mlist *make_room_for_systerm_placement();
142 extern int cross_coupled_p();
143 extern int on_output_net_p();
145 /*---------------------------------------------------------------
146 * Defined in terminals.c
147 *---------------------------------------------------------------
149 extern mlist *fine_systerm_placement();
151 /*---------------------------------------------------------------
152 * Defined in hand_place.c
153 *---------------------------------------------------------------
155 extern mlist *hand_placement();
157 /*---------------------------------------------------------------
158 * Defined in global_route.c
159 *---------------------------------------------------------------
161 extern void create_routing_space();
162 extern nlist *first_global_route();
163 extern nlist *incremental_global_route();
164 extern void print_global_route();
165 extern int identity();
166 extern int (*set_congestion_value)();
168 /*---------------------------------------------------------------
169 * Defined in local_route.c
170 *---------------------------------------------------------------
172 extern void local_route();
173 extern void print_local_route_to_file(FILE *f, nlist *nets);
174 extern void xc_print_local_route(XCWindowData *areastruct, nlist *nets);
175 extern void collect_congestion_stats();
177 /*---------------------------------------------------------------
178 * Defined in psfigs.c
179 *---------------------------------------------------------------
181 extern int ps_print_seg();
182 extern int ps_print_mod();
183 extern int xc_print_mod(XCWindowData *areastruct, module *m);
184 extern int ps_print_contact();
185 extern int ps_print_border();
186 extern int ps_put_label();
187 extern int ps_put_int();
189 extern int ps_print_standard_header();
191 /*---------------------------------------------------------------
192 * Defined in debug.c
193 *---------------------------------------------------------------
195 extern void print_modules();
196 extern void print_nets();
197 extern void print_ext();
198 extern void print_connections();
199 extern void p_cons();
200 extern int print_ctree();
201 extern void print_info();
202 extern void print_boxes();
203 extern void print_strings();
204 extern void print_result();
205 extern void draft_statistics();
206 extern float manhattan_PWS();
207 extern void print_distance_stats();
208 extern void print_distance_matricies();
210 /*---------------------------------------------------------------
211 * Defined in utility.c
212 *---------------------------------------------------------------
214 extern void newnode();
215 extern module *newobject();
216 extern void addin();
217 extern void addout();
218 extern void adddelay();
219 extern void add_port();
221 extern llist *insert_index_list();
222 extern module *get_module();
223 extern mark_connection();
224 extern count_terms();
225 extern count_terms_part();
227 extern tnode *build_leaf();
228 extern tnode *build_node();
230 extern int pull_terms_from_nets();
231 extern int add_terms_to_nets();
233 extern void clip_null_gates();
235 extern int pin_spacing();
236 extern int get_terminal_counts();
237 extern int reposition_all_terminals();
238 extern int reset_default_icon_size();
239 extern int fix_pin_position();