Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / zen / zen_lib.h
1 /*===========================================================*\
2 || ||
3 || Tool : ZEN ||
4 || ||
5 || File : zen_main.c ||
6 || ||
7 || Authors : Stephane Picault ||
8 || ||
9 || Date : xx.xx.xx ||
10 || ||
11 \\===========================================================*/
12
13 #ifndef ZEN_101_H
14 #define ZEN_101_H
15
16 #include <stdio.h>
17 #include <stdlib.h>
18 #include MUT_H
19 #include MLO_H
20 #include MLU_H
21 #include LOG_H
22 #include BEH_H
23 #include BEF_H
24 #include BHL_H
25 #include BVL_H
26
27 #ifdef AVERTEC
28 #include AVT_H
29 #endif
30
31 /*------------------------------------------------------------\
32 | |
33 | Constants |
34 | |
35 \------------------------------------------------------------*/
36
37 #define ZEN_VALUE_UNKNOWN 'X'
38 #define ZEN_VALUE_ONE '1'
39 #define ZEN_VALUE_ZERO '0'
40 #define ZEN_VALUE_UP 'U'
41 #define ZEN_VALUE_DOWN 'D'
42
43 #define ZEN_BEAUX ((int) 0x0001)
44 #define ZEN_BEREG ((int) 0x0002)
45 #define ZEN_BEOUT ((int) 0x0003)
46 #define ZEN_BERIN ((int) 0x0004)
47
48 #define ZEN_BDDDONE ((long) 0x00F00000)
49
50 extern int ZEN_TESTMODE;
51 extern int ZEN_TRACEMODE;
52 /*------------------------------------------------------------\
53 | |
54 | Macros |
55 | |
56 \------------------------------------------------------------*/
57
58 #define ZEN_ERROR(E,S) zen_error ((E),(S),__FILE__,__LINE__);
59 #define ZEN_WARNING(E,S) zen_warning((E),(S),__FILE__,__LINE__);
60 #define ZEN_TRACE(E,S) if (ZEN_TRACEMODE)\
61 zen_trace ((E),(S),__FILE__,__LINE__);
62 #define ZEN_TST(E,S) if (ZEN_TESTMODE) \
63 zen_test ((E),(S),__FILE__,__LINE__);
64
65 /*------------------------------------------------------------\
66 | |
67 | Structures |
68 | |
69 \------------------------------------------------------------*/
70
71 /*------------------------------------------------------------\
72 | |
73 | Node |
74 | |
75 \------------------------------------------------------------*/
76
77 typedef struct zennod
78 {
79 struct zennod *NEXT;
80 char *NAME; /* nom */
81 long INDEX; /* index du bdd associe */
82 pCircuit CCT;
83 pNode BDD; /* bdd associe */
84 pNode NBDD;
85 pNode SBDD;
86 char VALUE; /* valeur courante */
87 chain_list *OUTNOD; /* liste des noeuds qu'il attack */
88 chain_list *INNOD; /* liste des noeuds qui l'attack */
89 long FLAGS;
90 int NBONE;
91 int NBZER;
92 } zennod_list;
93
94 /*------------------------------------------------------------\
95 | |
96 | Figure |
97 | |
98 \------------------------------------------------------------*/
99
100 typedef struct zenfig
101 {
102 struct zenfig *NEXT;
103 char *NAME; /* nom */
104 struct zennod *NOD; /* noeuds */
105 chain_list *NOD_IN; /* liste des noeuds "entrees" */
106 chain_list *NOD_OUT; /* liste des noeuds "sorties" */
107 chain_list *NOD_PATH; /* liste des noeuds "on path" */
108 struct circuit *CIRCUI; /* circuit (pour les bdd) */
109
110 } zenfig_list;
111
112 extern void zen_setDelay ( int delay );
113 extern void zen_freezennod ();
114 extern void zen_freezenfig ();
115
116 extern zennod_list *zen_addzennod ();
117 extern zenfig_list *zen_addzenfig ( );
118
119 extern void zen_viewzennod ();
120 extern void zen_viewzenfig ();
121
122 extern zenfig_list *zen_createzenfig ();
123 extern int zen_algo1 ();
124 extern int zen_algo2 ();
125
126 extern void zen_error ();
127 extern void zen_warning ();
128 extern void zen_trace ();
129
130 extern void zen_makbehbdd ( befig_list *pt_befig );
131 extern char *zen_traductName ( char *name );
132 extern befig_list *zen_remplacebebus ( befig_list *pt_befig );
133 extern befig_list *zen_remplacebebux ( befig_list *pt_befig );
134
135 # endif
136