1 /********************************************/
3 /* fichier de fonctions en C appelees dans */
5 /********************************************/
7 /******************************************************************************/
9 /******************************************************************************/
10 #include "lib_global.h"
13 /******************************************************************************/
15 /******************************************************************************/
17 /******************************************************************************/
19 /******************************************************************************/
20 /*----------------------------------------------------------------------------*/
21 /* LIB_TREAT_GROUP_HEAD : */
23 /*----------------------------------------------------------------------------*/
24 void lib_treat_group_head(char *ident
, chain_list
*param
)
29 lib_push_context(lib_give_context(ident
));
30 if((ctxt
=lib_get_context()) != NO_ACTION_TYPE
) {
31 if(ctxt
== LIB_TYPE
) {
34 if(LIB_TRACE_MODE
== 'N') {
35 // avt_error("library", -1, AVT_INFO, "loading LIB '¤2%s¤.'\n", (char*)param->DATA);
36 /* fprintf(stdout,"\nLOADING LIBRARY %s LIB... ", (char*)param->DATA);
40 else if(ctxt
== CELL_TYPE
) {
41 if((LIB_TRACE_MODE
== 'V') || (LIB_TRACE_MODE
== 'A'))
42 printf("\t ---> processing cell %s\n", (char *)(param
->DATA
));
44 lib_pushgroup(ident
, param
);
47 for(ch
= param
; ch
; ch
=ch
->NEXT
)
48 mbkfree((char *)(ch
->DATA
));
51 mbkfree((char *)ident
);
53 /*----------------------------------------------------------------------------*/
54 /* LIB_TREAT_GROUP_END : */
56 /*----------------------------------------------------------------------------*/
57 void lib_treat_group_end(void)
63 if((ctxt
=lib_get_context()) != NO_ACTION_TYPE
) {
64 if(ctxt
== LIB_TYPE
) {
65 lib_tim_store_default_wire_load();
66 if((LIB_TRACE_MODE
== 'V') || (LIB_TRACE_MODE
== 'A'))
67 printf("\t<--- done\n");
69 fprintf(stdout,"DONE!\n");
77 mbkfree((lib_scale_unit
*)LIB_TIME_U
);
81 mbkfree((lib_scale_unit
*)LIB_RES_U
);
85 mbkfree((lib_scale_unit
*)LIB_CAPA_U
);
88 if(libparserpowerptype
){
89 freeptype(libparserpowerptype
);
90 libparserpowerptype
= NULL
;
93 else if(ctxt
== CELL_TYPE
) {
94 if((plofig
=lib_func_treat_cell(LIB_CURRENT_GP
)))
95 lib_tim_treat_cell(LIB_CURRENT_GP
, plofig
);
100 else if(ctxt
== LU_TEMPL_TYPE
) {
101 lib_tim_store_template();
106 else if(ctxt
== WIRE_LOAD_TYPE
) {
107 lib_tim_store_wire_load();
112 else if(ctxt
== WIRE_LOAD_TABLE_TYPE
) {
113 lib_tim_store_wire_load_table();
118 else if(ctxt
== POWER_SUPPLY_TYPE
) {
119 lib_tim_treat_power_supply();
131 /*----------------------------------------------------------------------------*/
132 /* LIB_TREAT_S_ATTR : */
134 /*----------------------------------------------------------------------------*/
135 void lib_treat_s_attr(char *ident
, char *attr
)
138 if(lib_get_context() != NO_ACTION_TYPE
)
139 lib_add_s_attr(ident
, attr
);
141 mbkfree((char *)attr
);
142 mbkfree((char *)ident
);
145 /*----------------------------------------------------------------------------*/
146 /* LIB_TREAT_C_ATTR : */
148 /*----------------------------------------------------------------------------*/
149 void lib_treat_c_attr(char *ident
, chain_list
*attr
)
153 if(lib_get_context() != NO_ACTION_TYPE
)
154 lib_add_c_attr(ident
, attr
);
156 for(ch
=attr
; ch
; ch
=ch
->NEXT
)
157 mbkfree((char *)(ch
->DATA
));
160 mbkfree((char *)ident
);