1 /* -*- tab-width: 4 -*-
2  *
3  * Electric(tm) VLSI Design System
4  *
5  * File: data.c
6  * global data definitions
7  * Written by: Steven M. Rubin, Static Free Software
8  *
9  * Copyright (c) 2000 Static Free Software.
10  *
11  * Electric(tm) is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * Electric(tm) is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with Electric(tm); see the file COPYING.  If not, write to
23  * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
24  * Boston, Mass 02111-1307, USA.
25  *
26  * Static Free Software
27  * 4119 Alpine Road
28  * Portola Valley, California 94028
29  * info@staticfreesoft.com
30  */
31 
32 #include "global.h"
33 
34 /******************************* GLOBAL *******************************/
35 
36 CHAR       **el_namespace;				/* names in name space */
37 INTBIG       el_numnames;				/* number of names in name space */
38 
39 /* some keys to commonly used variable names */
40 INTBIG       el_node_name_key;			/* key for "NODE_name" */
41 INTBIG       el_arc_name_key;			/* key for "ARC_name" */
42 INTBIG       el_arc_radius_key;			/* key for "ARC_radius" */
43 INTBIG       el_trace_key;				/* key for "trace" */
44 INTBIG       el_cell_message_key;		/* key for "FACET_message" */
45 INTBIG       el_schematic_page_size_key;/* key for "FACET_schematic_page_size" */
46 INTBIG       el_transistor_width_key;	/* key for "transistor_width" */
47 INTBIG       el_prototype_center_key;	/* key for "prototype_center" */
48 INTBIG       el_essential_bounds_key;	/* key for "FACET_essentialbounds" */
49 INTBIG       el_node_size_default_key;	/* key for "NODE_size_default" */
50 INTBIG       el_arc_width_default_key;	/* key for "ARC_width_default" */
51 INTBIG       el_attrkey_width;			/* key for "ATTR_width" */
52 INTBIG       el_attrkey_length;			/* key for "ATTR_length" */
53 INTBIG       el_attrkey_area;			/* key for "ATTR_area" */
54 INTBIG       el_attrkey_M;			    /* key for "ATTR_M" */
55 INTBIG       el_techstate_key;			/* key for "TECH_state" */
56 
57 CLUSTER     *el_tempcluster;			/* cluster for temporary allocation */
58 CLUSTER     *db_cluster;				/* database general allocation */
59 
60 INTBIG       el_maxtools;				/* current number of tools */
61 LIBRARY     *el_curlib;					/* pointer to current library (list head) */
62 
63 VIEW        *el_views;					/* list of existing view */
64 VIEW        *el_unknownview;			/* the unknown view */
65 VIEW        *el_layoutview;				/* the layout view */
66 VIEW        *el_schematicview;			/* the schematic view */
67 VIEW        *el_iconview;				/* the icon view */
68 VIEW        *el_simsnapview;			/* the simulation-snapshot view */
69 VIEW        *el_skeletonview;			/* the skeleton view */
70 VIEW        *el_compview;				/* the compensated view */
71 VIEW        *el_vhdlview;				/* the VHDL view (text) */
72 VIEW        *el_verilogview;			/* the Verilog view (text) */
73 VIEW        *el_netlistview;			/* the netlist view, generic (text) */
74 VIEW        *el_netlistnetlispview;		/* the netlist view, netlisp (text) */
75 VIEW        *el_netlistalsview;			/* the netlist view, als (text) */
76 VIEW        *el_netlistquiscview;		/* the netlist view, quisc (text) */
77 VIEW        *el_netlistrsimview;		/* the netlist view, rsim (text) */
78 VIEW        *el_netlistsilosview;		/* the netlist view, silos (text) */
79 VIEW        *el_docview;				/* the documentation view (text) */
80 
81 WINDOWPART  *el_topwindowpart;			/* top window in list */
82 WINDOWPART  *el_curwindowpart;			/* current window partition */
83 
84 WINDOWFRAME *el_firstwindowframe = NOWINDOWFRAME;
85 WINDOWFRAME *el_curwindowframe;
86 
87 TECHNOLOGY  *el_technologies;			/* defined in "tectable.c" */
88 TECHNOLOGY  *el_curtech;				/* pointer to current technology */
89 TECHNOLOGY  *el_curlayouttech;			/* last layout technology referenced */
90 INTBIG       el_maxtech;				/* current number of technologies */
91 
92 CONSTRAINT  *el_curconstraint;			/* current constraint solver */
93 
94 CHAR        *el_libdir;					/* pointer to library directory */
95 
96 INTBIG       el_filetypetext;			/* Plain text disk file descriptor */
97 
98 XARRAY       el_matid;					/* identity matrix */
99 INTBIG       el_pleasestop;				/* nonzero if abort is requested */
100 INTBIG       el_units;					/* display and internal units */
101 
102 /******************************* GRAPHICS *******************************/
103 
104 INTBIG       el_maplength;				/* number of entries in color map */
105 INTBIG       el_colcelltxt;				/* color to use for cell text and port names */
106 INTBIG       el_colcell;				/* color to use for cell outline */
107 INTBIG       el_colwinbor;				/* color to use for window border */
108 INTBIG       el_colhwinbor;				/* color to use for highlighted window border */
109 INTBIG       el_colmenbor;				/* color to use for menu border */
110 INTBIG       el_colhmenbor;				/* color to use for highlighted menu border */
111 INTBIG       el_colmentxt;				/* color to use for menu text */
112 INTBIG       el_colmengly;				/* color to use for menu glyphs */
113 INTBIG       el_colcursor;				/* color to use for cursor */
114