Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / xtas / xtas.h
1 /****************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI Alliance */
4 /* */
5 /* Produit : XTAS Version 5 */
6 /* Fichier : xtas.h */
7 /* */
8 /* (c) copyright 1991-1998 Laboratoire LIP6 equipe ASIM */
9 /* Tous droits reserves */
10 /* Support : e-mail alliance-support@asim.lip6.fr */
11 /* */
12 /* Author(s) : Nizar ABDALLAH Date : 01/04/1993 */
13 /* */
14 /* Modified by : Date : ../../.... */
15 /* Modified by : Date : ../../.... */
16 /* Modified by : Date : ../../.... */
17 /* */
18 /****************************************************************************/
19 /* */
20 /* */
21 /****************************************************************************/
22 #define XTAS_MOTIF_VERSION XmVERSION*10000+(XmREVISION*100)+XmUPDATE_LEVEL
23
24 /*---------------------------------------------------------------------------*/
25 /* */
26 /* STANDARD INCLUDES */
27 /* */
28 /*---------------------------------------------------------------------------*/
29 #include <stdio.h>
30 #include <stdlib.h>
31 #include <setjmp.h>
32 #include <fcntl.h>
33 #include <signal.h>
34 #include <unistd.h>
35 #include <ctype.h>
36 #include <sys/types.h>
37 #include <sys/stat.h>
38 #include <limits.h>
39
40 /*---------------------------------------------------------------------------*/
41 /* */
42 /* X11 INCLUDES */
43 /* */
44 /*---------------------------------------------------------------------------*/
45 #include <X11/Intrinsic.h>
46 #include <X11/StringDefs.h>
47
48 /*---------------------------------------------------------------------------*/
49 /* */
50 /* MOTIF INCLUDES */
51 /* */
52 /*---------------------------------------------------------------------------*/
53 #include <Xm/Xm.h>
54 #include <Xm/ArrowBG.h>
55 #include <Xm/CascadeBG.h>
56 #include <Xm/DrawnB.h>
57 #include <Xm/FileSB.h>
58 #include <Xm/Form.h>
59 #include <Xm/Frame.h>
60 #include <Xm/Label.h>
61 #include <Xm/LabelG.h>
62 #include <Xm/List.h>
63 #include <Xm/MainW.h>
64 #include <Xm/MessageB.h>
65 #include <Xm/PanedW.h>
66 #include <Xm/Protocols.h>
67 #include <Xm/PushB.h>
68 #include <Xm/PushBG.h>
69 #include <Xm/RowColumn.h>
70 #include <Xm/Scale.h>
71 #include <Xm/ScrollBar.h>
72 #include <Xm/ScrolledW.h>
73 #include <Xm/SelectioB.h>
74 #include <Xm/Separator.h>
75
76 #if XTAS_MOTIF_VERSION >= 20100
77 #include <Xm/SSpinB.h>
78 #endif
79
80 #include <Xm/Text.h>
81 #include <Xm/TextF.h>
82 #include <Xm/ToggleB.h>
83 #include <Xm/DrawingA.h>
84
85 /*---------------------------------------------------------------------------*/
86 /* */
87 /* ALLIANCE INCLUDES */
88 /* */
89 /*---------------------------------------------------------------------------*/
90 #include MUT_H
91 #include MLO_H
92 #include MLU_H
93 #include BEH_H
94 #include BHL_H
95 #include BVL_H
96 #include INF_H
97 #include STM_H
98 #include TTV_H
99 #include STB_H
100 #include CNS_H
101 #include YAG_H
102 #include TLC_H
103 #include TRC_H
104 #include EFG_H
105 #include TAS_H
106 #include TMA_H
107 #include MCC_H
108 #include LOG_H
109 #include LIB_H
110 #include TLF_H
111 #include SIM_H
112 //#include ZEN_H
113 #include XAL_H
114 #include CGV_H
115 #include XYA_H
116 #include FCL_H
117
118 /*---------------------------------------------------------------------------*/
119 /* */
120 /* AVERTEC INCLUDES */
121 /* */
122 /*---------------------------------------------------------------------------*/
123 #ifdef AVERTEC
124 #include AVT_H
125 #endif
126
127 /*---------------------------------------------------------------------------*/
128 /* */
129 /* Globals */
130 /* */
131 /*---------------------------------------------------------------------------*/
132
133 /*---------------------------------------------------------------------------*/
134 /* */
135 /* define */
136 /* */
137 /*---------------------------------------------------------------------------*/
138
139
140 #define HELP_TOPICS 5
141 #define HELP_SOURCES 26
142
143 #define XTAS_HELP_MAIN 0x0000
144 #define XTAS_HELP_FILE 0x0001
145 #define XTAS_HELP_TOOLS 0x0002
146 #define XTAS_HELP_VIEW 0x0003
147 #define XTAS_HELP_OPTIONS 0x0004
148
149 #define XTAS_SRC_DESK 0x0000
150 #define XTAS_SRC_SIGNALS 0x0100
151 #define XTAS_SRC_HIER 0x0200
152 #define XTAS_SRC_ALLSIGS 0x0300
153 #define XTAS_SRC_GETPATH 0x0400
154 #define XTAS_SRC_PATHS 0x0500
155 #define XTAS_SRC_GETDETAIL 0x0600
156 #define XTAS_SRC_DETAIL 0x0700
157 #define XTAS_SRC_DETAILCTK 0x0800
158 #define XTAS_SRC_GETPARA 0x0900
159 #define XTAS_SRC_PARA 0x0a00
160 #define XTAS_SRC_FLSPATHS 0x0b00
161 #define XTAS_SRC_VISUPATH 0x0c00
162 #define XTAS_SRC_SIMUPARAM 0x0d00
163 #define XTAS_SRC_DETAILSIMU 0x0e00
164 #define XTAS_SRC_GETDELAY 0x0f00
165 #define XTAS_SRC_DELAY 0x1000
166 #define XTAS_SRC_STABPARAM 0x1100
167 #define XTAS_SRC_STABRES 0x1200
168 #define XTAS_SRC_DEBUG 0x1300
169 #define XTAS_SRC_NOISERES 0x1400
170 #define XTAS_SRC_CTKINFO 0x1500
171 #define XTAS_SRC_TASPARAM 0x1600
172 #define XTAS_SRC_TASADV 0x1700
173 #define XTAS_SRC_TMAPARAM 0x1800
174 #define XTAS_SRC_NOISESCR 0x1900
175
176 #define XTAS_C_CONNECTOR 0
177 #define XTAS_C_MEMORIZE 1
178 #define XTAS_C_COMMANDS 2
179 #define XTAS_C_PRECHARGE 3
180 #define XTAS_C_BREAK 4
181 #define XTAS_C_OTHERSIGS 5
182
183 #define XTAS_C_NBSIGTYPE 6
184
185 #define XTAS_AL2S_MAP 0
186 #define XTAS_ALLP_MAP 1
187 #define XTAS_ALLS_MAP 2
188 #define XTAS_BREA_MAP 3
189 #define XTAS_CAPA_MAP 4
190 #define XTAS_CLOS_MAP 5
191 #define XTAS_COMM_MAP 6
192 #define XTAS_CONN_MAP 7
193 #define XTAS_DEBG_MAP 8
194 #define XTAS_DETA_MAP 9
195 #define XTAS_DUMM_MAP 10
196 #define XTAS_FPAT_MAP 11
197 #define XTAS_FEDG_MAP 12
198 #define XTAS_GATE_MAP 13
199 #define XTAS_HRES_MAP 14
200 #define XTAS_LRES_MAP 15
201 #define XTAS_INFO_MAP 16
202 #define XTAS_MAIN_MAP 17
203 #define XTAS_MEMO_MAP 18
204 #define XTAS_OPEN_MAP 19
205 #define XTAS_PATH_MAP 20
206 #define XTAS_PREC_MAP 21
207 #define XTAS_RCLN_MAP 22
208 #define XTAS_REDG_MAP 23
209 #define XTAS_SAVE_MAP 24
210 #define XTAS_TIME_MAP 25
211 #define XTAS_EXEC_MAP 26
212 #define XTAS_STBA_MAP 27
213 #define XTAS_FALS_MAP 28
214 #define XTAS_TRUE_MAP 29
215 #define XTAS_TAS_MAP 30
216 #define XTAS_TMA_MAP 31
217 #define XTAS_XYA_MAP 32
218 #define XTAS_VISU_MAP 33
219 #define XTAS_CMD_MAP 34
220 #define XTAS_SIMU_MAP 35
221 #define XTAS_CTKI_MAP 36
222 #define XTAS_NOISE_MAP 37
223 #define XTAS_SCORE_MAP 38
224
225 #define XTAS_NODELEVEL(node) (((node->TYPE & TTV_NODE_UP) == TTV_NODE_UP) \
226 ? 'U' : 'D')
227
228
229 #define XTAS_TTX 'T'
230 #define XTAS_DTX 'D'
231
232 #define TAS_TOOL 'S'
233 #define TMA_TOOL 'M'
234 #define NO_TOOL 'N'
235
236 #define XTAS_HOLD 0x1
237 #define XTAS_REG 0x2
238
239 #define XTAS_STB ((long) 0x00000001)
240 #define XTAS_DEBUG ((long) 0x00000002)
241
242 #define XTAS_NONE (long)0x00
243 #define XTAS_SIMU (long)0x01
244 #define XTAS_CTK (long)0x02
245
246 /* Valeurs possibles pour la variable XTAS_CTX_LOADED */
247 #define XTAS_NOT_LOADED 0x0000
248 #define XTAS_LOADED 0x0001
249 #define XTAS_FROM_ANALYSIS 0x0011
250 #define XTAS_FROM_FILE 0x0021
251
252 /* values for REQUEST_TYPE - GetPath*/
253 #define XTAS_NOTYPE 0x000
254 #define XTAS_PATHS 0x010
255 #define XTAS_ACCESS 0x020
256 #define XTAS_CRITIC 0x001
257 #define XTAS_ALL 0x002
258 #define XTAS_SBS 0x100
259
260 /* valeur pour le choix du trace des chornogrammes */
261 #define XTAS_DEBUG_IUD 0x01
262 #define XTAS_DEBUG_IU 0x02
263 #define XTAS_DEBUG_ID 0x04
264 #define XTAS_DEBUG_OUD 0x10
265 #define XTAS_DEBUG_OU 0x20
266 #define XTAS_DEBUG_OD 0x40
267 #define XTAS_DEBUG_NOACTION 0xff
268
269 /*---------------------------------------------------------------------------*/
270 /* */
271 /* STRUCTUR DECLARATION */
272 /* */
273 /*---------------------------------------------------------------------------*/
274
275 typedef struct XtasWindow
276 {
277 Widget topwidget ,
278 menwidget ,
279 butwidget ,
280 wrkwidget ,
281 meswidget ,
282 hlpwidget ;
283 XalMessageWidgetStruct *errwidget ,
284 *warwidget ;
285 void *userdata ;
286 long userinfos ;
287 }
288 XtasWindowStruct;
289
290 typedef struct XtasMainInfo
291 {
292 ttvfig_list *ttvfig ;
293 befig_list *befig ;
294 stbfig_list *stbfig ;
295 stbdebug_list *debugfig ;
296 }
297 XtasMainInfoStruct ;
298
299 /*---------------------------------------------------------------------*/
300 typedef struct XtasWinJmp
301 {
302 struct XtasWinJmp *NEXT ; /* adresse de saut suivant dans la liste */
303 struct XtasWinJmp *PREV ; /* adresse de saut precedent dans la liste */
304 int SIZE ; /* taille de la fenetre */
305 int INDEX ; /* index globale par rapport a la liste */
306 long TYPE ; /* type de liste pointee */
307 void *DATA ; /* pointeur vers l'element de la liste */
308 }
309 XtasChainJmpList;
310
311 /*------------ parametres de recherche des signaux --------------------*/
312 typedef struct XtasSearchSigParams
313 {
314 long TYPE;
315 chain_list *MASK;
316 ttvfig_list *TOP_FIG;
317 ttvfig_list *LOCAL_FIG;
318 int ITEMS;
319 }
320 XtasSearchSigParamStruct;
321
322 /*------------ parametres de recherche des chemins --------------------*/
323 typedef struct XtasSearchPathParams
324 {
325 XtasSearchSigParamStruct *ROOT_SIG_EDGE;
326 chain_list *NODE_MASK;
327 chain_list *CK_MASK;
328 chain_list *CUR_SIG;
329 ttvpath_list *LOOK_PATH;
330 long DELAY_MIN;
331 long DELAY_MAX;
332 long SCAN_TYPE;
333 long REQUEST_TYPE;
334 char CRITIC;
335 int PATH_ITEM;
336 chain_list *MASK;
337 }
338 XtasSearchPathParamStruct;
339
340 /*------------ objets pour la gestion de l'affichage des signaux ------*/
341 typedef struct XtasSigListSet
342 {
343 Widget TOP_LEVEL;
344 Widget SIGLIST_SCROLL;
345 Widget MASK;
346 Widget ITEMS;
347 Widget INFO_PAGE;
348 Widget INFO_HELP;
349 Widget INFO_USER;
350 XtasSearchSigParamStruct *SIGNAL;
351 chain_list *SIG_LIST;
352 XtasChainJmpList *SIG_LIST_WIN;
353 XtasChainJmpList *CUR_SIG_WIN;
354 }
355 XtasSigListSetStruct;
356
357 /*------------ objets pour la gestion de l'affichage des chemins ------*/
358 typedef struct XtasPathListSet
359 {
360 Widget TOP_LEVEL;
361 Widget PATHLIST_2INFO ;
362 Widget PATHLIST_SCROLL;
363 Widget PATHLIST_ROW;
364 Widget INFO_HELP;
365 Widget INFO_USER;
366 Widget INFO_PAGE;
367 Widget INFO_CUR_SIG;
368 XtasSigListSetStruct *SIGNAL_LIST_SET;
369 ttvpath_list *PATH_LIST;
370 XtasChainJmpList *PATH_LIST_WIN;
371 XtasChainJmpList *CUR_PATH_WIN;
372 chain_list *INDEX_TAB;
373 chain_list *DETAIL_SESSION;
374 chain_list *PARA_SESSION;
375 struct XtasPathListSet *PARENT ;
376 XtasSearchPathParamStruct *PARAM;
377 }
378 XtasPathListSetStruct;
379
380 /*--------------------------------------------------------------------------*/
381 typedef struct XtasPathIndexTab
382 {
383 XtasPathListSetStruct *PATH_SET;
384 ttvpath_list *PATH;
385 }
386 XtasPathIndexTabElt;
387
388 /*--------------------------------------------------------------------------*/
389 typedef struct XtasDetailPathSet
390 {
391 Widget TOP_LEVEL;
392 Widget SCROLL_DETAIL;
393 Widget ROW_DETAIL;
394 Widget INFO_USER;
395 Widget INFO_HELP;
396 Widget INFO_PAGE;
397 Widget ROOT_NAME;
398 Widget ROOT_RF;/*Rise/Fall*/
399 Widget NODE_NAME;
400 Widget NODE_RF;/*Rise/Fall*/
401 Widget TOTAL_DELAY;
402 XtasChainJmpList *DETAIL_LIST;
403 XtasChainJmpList *CUR_DETAIL;
404 XtasPathListSetStruct *PARENT;
405 }
406 XtasDetailPathSetStruct;
407
408 /*---------- Pour sauvegarder et restaurer les contextes de zoom ---------*/
409 typedef struct XtasZoomContext
410 {
411 struct XtasZoomContext *NEXT;
412 long TMIN;
413 long TMAX;
414 }
415 XtasZoomContextStruct;
416
417 /*---------------------------------------------------------------------------*/
418 /* */
419 /* APPLICATION SPECIFIC INCLUDES */
420 /* */
421 /*---------------------------------------------------------------------------*/
422 #include "xtas_common.h"
423 #include "xtas_desk.h"
424 #include "xtas_detsig.h"
425 #include "xtas_files.h"
426 #include "xtas_help.h"
427 #include "xtas_hierarchical.h"
428 #include "xtas_init.h"
429 #include "xtas_main.h"
430 #include "xtas_tas.h"
431 #include "xtas_ttv.h"
432 #include "xtas_unix.h"
433 #include "xtas_messages.h"
434 #include "xtas_getpara.h"
435 #include "xtas_getpath.h"
436 #include "xtas_getdelay.h"
437 #include "xtas_getdetail.h"
438 #include "xtas_detpath.h"
439 #include "xtas_paths.h"
440 #include "xtas_flspaths.h"
441 #include "xtas_signals.h"
442 #include "xtas_stb.h"
443 #include "xtas_stb_pbar.h"
444 #include "xtas_debug.h"
445 #include "xtas_graphic.h"
446 #include "xtas_newdisp_util.h"
447 #include "xtas_xyagle.h"
448 #include "xtas_visualise_path.h"
449 #include "xtas_simu_path.h"
450 #include "xtas_ctk_noise.h"
451 #include "xtas_exit.h"
452