diff --git a/alliance/src/loon/src/lon_lax_param.c b/alliance/src/loon/src/lon_lax_param.c index 37cf6c40..3c056a5c 100644 --- a/alliance/src/loon/src/lon_lax_param.c +++ b/alliance/src/loon/src/lon_lax_param.c @@ -908,7 +908,7 @@ parsefilelax(char *filename) strcpy( name + size, ".lax" ); LAX = loadlax(name); - if (!LAX) exit(1); + if (!LAX) autexit(1); } diff --git a/alliance/src/loon/src/lon_lib_matching.c b/alliance/src/loon/src/lon_lib_matching.c index ce836a59..69665096 100644 --- a/alliance/src/loon/src/lon_lib_matching.c +++ b/alliance/src/loon/src/lon_lib_matching.c @@ -67,7 +67,7 @@ static int loc_pattern_matching(chain_list* expr, chain_list* pattern) { if (!expr || !pattern) { fprintf(stderr,"loc_pattern_matching: NULL pointer\n"); - exit(1); + autexit(1); } /*pattern is an atom*/ @@ -122,7 +122,7 @@ extern int pattern_matching(chain_list* expr, chain_list* pattern) if (!expr || !pattern) { fprintf(stderr,"pattern_matching: NULL pointer\n"); - exit(1); + autexit(1); } if ( HTABLE == (authtable *)0 ) diff --git a/alliance/src/loon/src/lon_lib_negativ.c b/alliance/src/loon/src/lon_lib_negativ.c index da8494e0..1bbdaa66 100644 --- a/alliance/src/loon/src/lon_lib_negativ.c +++ b/alliance/src/loon/src/lon_lib_negativ.c @@ -95,7 +95,7 @@ extern chain_list* inv_oper(chain_list* abl, int negativ) return abl; default: fprintf(stderr,"inv_oper: unknown operator %ld\n",ABL_OPER(abl)); - exit(1); + autexit(1); } for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) { @@ -148,7 +148,7 @@ extern chain_list* build_negativ(chain_list* abl) case ABL_XOR: case ABL_NXOR: /*undifferent*/ break; default: fprintf(stderr,"inv_oper: oper %ld unknown\n",ABL_OPER(leaf)); - exit(1); + autexit(1); } } @@ -187,7 +187,7 @@ extern chain_list* build_negativ(chain_list* abl) break; default: fprintf(stderr,"inv_oper: oper %ld unknown\n",ABL_OPER(leaf)); - exit(1); + autexit(1); } } @@ -205,7 +205,7 @@ extern chain_list* build_negativ(chain_list* abl) break; default: fprintf(stderr,"inv_oper: oper %ld unknown\n",ABL_OPER(leaf)); - exit(1); + autexit(1); } return abl; diff --git a/alliance/src/loon/src/lon_lib_reader.c b/alliance/src/loon/src/lon_lib_reader.c index 3b56e539..09855386 100644 --- a/alliance/src/loon/src/lon_lib_reader.c +++ b/alliance/src/loon/src/lon_lib_reader.c @@ -105,7 +105,7 @@ extern void library_reader(char* cell_directory) if (!cell_directory) { fprintf(stderr,"library_reader: no Cell directory\n"); - exit(1); + autexit(1); } /*seek vbe files which describe the lib*/ @@ -115,7 +115,7 @@ extern void library_reader(char* cell_directory) fprintf(stderr, "Library Error: no cell in directory '%s'\n", cell_directory?cell_directory:"."); - exit(1); + autexit(1); } /*search only in our library not to interfer with others*/ diff --git a/alliance/src/loon/src/lon_lib_specifications.c b/alliance/src/loon/src/lon_lib_specifications.c index a9efec2e..2e910dba 100644 --- a/alliance/src/loon/src/lon_lib_specifications.c +++ b/alliance/src/loon/src/lon_lib_specifications.c @@ -213,7 +213,7 @@ extern double getgenericT(befig_list* befig, char* name) else if (befig->BEBUS) output=befig->BEBUS->NAME; else { fprintf(stderr,"BEH: output is missing in %s\n",befig->NAME); - exit(1); + autexit(1); } memo=SEPAR; @@ -261,7 +261,7 @@ extern double getgenericTh(befig_list* befig, char* name) else if (befig->BEBUS) output=befig->BEBUS->NAME; else { fprintf(stderr,"BEH: output is missing in %s\n",befig->NAME); - exit(1); + autexit(1); } memo=SEPAR; @@ -300,7 +300,7 @@ extern double getgenericTl(befig_list* befig, char* name) else if (befig->BEBUS) output=befig->BEBUS->NAME; else { fprintf(stderr,"BEH: output is missing in %s\n",befig->NAME); - exit(1); + autexit(1); } memo=SEPAR; @@ -336,7 +336,7 @@ extern void putgenericT(befig_list* befig, char* name, double Thl_value, double else if (befig->BEBUS) output=befig->BEBUS->NAME; else { fprintf(stderr,"BEH: output is missing in %s\n",befig->NAME); - exit(1); + autexit(1); } memo=SEPAR; @@ -420,7 +420,7 @@ extern int getgenericR(befig_list* befig, char* name) else if (befig->BEBUS) output=befig->BEBUS->NAME; else { fprintf(stderr,"BEH: output is missing in %s\n",befig->NAME); - exit(1); + autexit(1); } memo=SEPAR; @@ -456,7 +456,7 @@ extern void putgenericR(befig_list* befig, char* name, double Rup_value, double else if (befig->BEBUS) output=befig->BEBUS->NAME; else { fprintf(stderr,"BEH: output is missing in %s\n",befig->NAME); - exit(1); + autexit(1); } memo=SEPAR; @@ -490,7 +490,7 @@ extern int getgenericRup(befig_list* befig, char* name) else if (befig->BEBUS) output=befig->BEBUS->NAME; else { fprintf(stderr,"BEH: output is missing in %s\n",befig->NAME); - exit(1); + autexit(1); } memo=SEPAR; @@ -527,7 +527,7 @@ extern int getgenericRdown(befig_list* befig, char* name) else if (befig->BEBUS) output=befig->BEBUS->NAME; else { fprintf(stderr,"BEH: output is missing in %s\n",befig->NAME); - exit(1); + autexit(1); } memo=SEPAR; diff --git a/alliance/src/loon/src/lon_lib_utils.c b/alliance/src/loon/src/lon_lib_utils.c index ae75dbf4..4dda61a6 100644 --- a/alliance/src/loon/src/lon_lib_utils.c +++ b/alliance/src/loon/src/lon_lib_utils.c @@ -121,7 +121,7 @@ extern void moveport(port_list* head, port_list* new) if (!head && !new) return; if (!head || !new) { fprintf(stderr,"moveport: discrepancy in length\n"); - exit(1); + autexit(1); } moveport(head->NEXT,new->NEXT); @@ -179,14 +179,14 @@ static lofig_list* build_lofig(lofig_list* lofig, chain_list* nameorder) if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,lofig->NAME); - exit(1); + autexit(1); } if (locon->NAME==name) break; } if (!locon) { fprintf(stderr,"build_lofig: no locon '%s' found in '%s'\n",name, lofig->NAME); - exit(1); + autexit(1); } namechain=addchain(NULL,name); @@ -242,7 +242,7 @@ static cell_list* properties_addCell(befig_list* befig, lofig_list *lofig) if (!locon) { fprintf(stderr,"properties_addCell: locon '%s' not found\n", locon->NAME); - exit(1); + autexit(1); } losig=locon->SIG; @@ -253,7 +253,7 @@ static cell_list* properties_addCell(befig_list* befig, lofig_list *lofig) if (!locon) { fprintf(stderr,"properties_addCell: locon '%s' not found in cell\n", locon->NAME); - exit(1); + autexit(1); } /*apply properties*/ diff --git a/alliance/src/loon/src/lon_main.c b/alliance/src/loon/src/lon_main.c index e65a3aee..329d543f 100644 --- a/alliance/src/loon/src/lon_main.c +++ b/alliance/src/loon/src/lon_main.c @@ -114,30 +114,30 @@ static void set_param(int argc, char* argv[]) if (optim_mode<=OPTIM_DELAY4) break; } fprintf(stderr,OPT_USAGE "\n"); - exit(1); + autexit(1); case XSCH_MODE: if (strlen(optarg)==1 && isdigit((int) optarg[0])) { xsch_mode=optarg[0]-'0'; if (xsch_mode<=XSCH_GRADIENT) break; } fprintf(stderr,OPT_USAGE "\n"); - exit(1); + autexit(1); case LAX_FILE: if (!lax_file) {lax_file=optarg; break;} fprintf(stderr,OPT_USAGE "\n"); - exit(1); + autexit(1); case 1 : /*all the other parameters without options (Linux only)*/ if (!input_file || input_file==argv[i]) {input_file=optarg; break;} if (!output_file || output_file==argv[i]) {output_file=optarg; break;} if (!lax_file || lax_file==argv[i]) {lax_file=optarg; break;} fprintf(stderr,OPT_USAGE "\n"); - exit(1); + autexit(1); case HELP_MODE: fprintf(stdout,HELP_USAGE "\n"); - exit(0); + autexit(0); case '?': default: fprintf(stderr,OPT_USAGE "\n"); - exit(1); + autexit(1); } } #endif @@ -145,12 +145,12 @@ static void set_param(int argc, char* argv[]) /*verify for Sun and Solaris. getopt() isn't the same than Linux_elf */ for (i=1; i extension\n"); - exit(1); + autexit(1); } mbk_out_lo=mbkgetenv ("MBK_OUT_LO"); if (mbk_out_lo) fprintf(stdout,"\tMBK_OUT_LO\t: %s\n",mbk_out_lo); else { fprintf(stderr, "Environment Error: no 'MBK_OUT_LO' defined for extension\n"); - exit(1); + autexit(1); } /*if no library defined*/ @@ -208,27 +208,27 @@ static void set_param(int argc, char* argv[]) else { fprintf(stderr, "Environment Error: no 'MBK_TARGET_LIB' defined for cells directory\n"); - exit(1); + autexit(1); } /*coherence in options*/ if (!input_file) { fprintf(stderr,OPT_USAGE "\n"); - exit(1); + autexit(1); } if (!output_file) { if (overwrite_mode) output_file=input_file; else { fprintf(stderr,OPT_USAGE "\n"); - exit(1); + autexit(1); } } if (!strcmp(output_file,input_file) && !strcmp(mbk_in_lo,mbk_out_lo) && !overwrite_mode) { fprintf(stderr," must be different from \n"); fprintf(stderr,OPT_USAGE "\n"); - exit(1); + autexit(1); } /*take default values*/ @@ -248,8 +248,8 @@ extern int main (int argc, char* argv[]) /*init*/ mbkenv(); /*mbk*/ - ablenv(); /*abl*/ autenv(); /*hash table*/ + ablenv(); /*abl*/ bddenv(); /*for vhdlloadbefig() in library reader*/ @@ -280,7 +280,7 @@ extern int main (int argc, char* argv[]) case OPTIM_DELAY3: fprintf(stdout,"25%% area - 75%% delay optimization\n"); break; case OPTIM_DELAY4: fprintf(stdout,"100%% delay optimization\n"); break; - default: fprintf(stderr,"LAX: Optimization mode greater than 4\n"); exit(1); + default: fprintf(stderr,"LAX: Optimization mode greater than 4\n"); autexit(1); } @@ -289,7 +289,7 @@ extern int main (int argc, char* argv[]) lofig=getlofig(input_file, 'A'/*all the figure*/); if (!lofig) { fprintf(stderr,"Cannot find '%s.%s'\n",input_file,mbk_in_lo); - exit(1); + autexit(1); } /*flatten all instance at cells level*/ rflattenlofig(lofig, YES, YES); @@ -298,7 +298,7 @@ extern int main (int argc, char* argv[]) /*check coherence between LAX and lofig*/ if (lax_file) { fprintf(stdout,"Controlling file '%s.lax'...\n",lax_file); - if (!coherencelaxlofig(lofig)) exit(1); + if (!coherencelaxlofig(lofig)) autexit(1); } /*read cell library*/ @@ -310,7 +310,7 @@ extern int main (int argc, char* argv[]) fprintf(stdout,"Capacitances on file '%s.%s'...\n",input_file,mbk_in_lo); if (!lofig->LOINS || !lofig->LOSIG) { fprintf(stderr,"Figure '%s' is empty!\n",lofig->NAME); - exit(1); + autexit(1); } /*prepare source*/ @@ -418,7 +418,7 @@ extern int main (int argc, char* argv[]) losig=long_path->DATA; if (!losig->NAMECHAIN) { fprintf(stderr,"main: no name on signal\n"); - exit(1); + autexit(1); } fprintf(stdout,"Critical path (no warranty)...%ld ps from '%s' to ", (long) critical_delay(lofig),(char*) losig->NAMECHAIN->DATA); @@ -428,7 +428,7 @@ extern int main (int argc, char* argv[]) losig=(losig_list*) ptype->DATA; if (!losig->NAMECHAIN) { fprintf(stderr,"main: no name on signal\n"); - exit(1); + autexit(1); } if (losig->TYPE==EXTERNAL) { fprintf(stdout,"'%s'\n",(char*) losig->NAMECHAIN->DATA); @@ -477,7 +477,7 @@ extern int main (int argc, char* argv[]) xsch_stream=mbkfopen(xsch_file,"xsc",WRITE_TEXT); if (!xsch_stream){ fprintf(stderr,"Cannot save file %s.xsc\n",xsch_file); - exit(1); + autexit(1); } /*replace losig by names*/ for (ptype=long_path; ptype; ptype=ptype->NEXT) { @@ -492,6 +492,6 @@ extern int main (int argc, char* argv[]) fprintf(stdout,"End of %s...\n\n",LOON); - exit(0); + return(0); } diff --git a/alliance/src/loon/src/lon_normalize_DAG.c b/alliance/src/loon/src/lon_normalize_DAG.c index caae1d5c..50975d3d 100644 --- a/alliance/src/loon/src/lon_normalize_DAG.c +++ b/alliance/src/loon/src/lon_normalize_DAG.c @@ -334,7 +334,7 @@ static int abl_dispatching(chain_list *abl, int mark) if (!abl) { fprintf(stderr,"abl_dispatching: NULL pointer\n"); - exit(1); + autexit(1); } if (ABL_ATOM(abl)) { /*it is a leaf*/ @@ -473,7 +473,7 @@ static int abl_dispatching(chain_list *abl, int mark) /*error: leaf not found*/ fprintf(stderr,"abl_dispatching: %s not found\n",ABL_ATOM_VALUE(abl)); - exit(1); + autexit(1); } /*it is an operator*/ @@ -548,7 +548,7 @@ extern int DAG_control(befig_list *befig_param) if (!befig_param) { fprintf(stderr,"DAG_control: NULL pointer\n"); - exit(1); + autexit(1); } befig=befig_param; diff --git a/alliance/src/loon/src/lon_normalize_message.c b/alliance/src/loon/src/lon_normalize_message.c index 6ed53aec..6cdab379 100644 --- a/alliance/src/loon/src/lon_normalize_message.c +++ b/alliance/src/loon/src/lon_normalize_message.c @@ -102,7 +102,7 @@ extern void display_error_in_abl(char* message, chain_list *abl) { if (!message || !abl) { fprintf(stderr,"display_error_in_abl: NULL pointer\n"); - exit(1); + autexit(1); } fprintf(stderr,"BEH: "); diff --git a/alliance/src/loon/src/lon_normalize_register.c b/alliance/src/loon/src/lon_normalize_register.c index 24a46304..29056f39 100644 --- a/alliance/src/loon/src/lon_normalize_register.c +++ b/alliance/src/loon/src/lon_normalize_register.c @@ -108,7 +108,7 @@ static int loc_format_register(bereg_list* bereg) if (!bereg || !bereg->BIABL) { fprintf(stderr,"identify_register: NULL pointer\n"); - exit(1); + autexit(1); } #if 0 /*to accept multiple condition block*/ @@ -212,7 +212,7 @@ extern int format_register(befig_list* befig) if (!befig) { fprintf(stderr,"format_register: NULL pointer\n"); - exit(1); + autexit(1); } BEH_ERROR=0; diff --git a/alliance/src/loon/src/lon_normalize_simplify.c b/alliance/src/loon/src/lon_normalize_simplify.c index 51d75130..f901fafd 100644 --- a/alliance/src/loon/src/lon_normalize_simplify.c +++ b/alliance/src/loon/src/lon_normalize_simplify.c @@ -186,7 +186,7 @@ static void flattenablexpr(chain_list* abl) default: fprintf(stderr,"unflattenexprabl: operator %ld unknown\n", ABL_OPER(abl)); - exit(1); + autexit(1); } pred=chain; } diff --git a/alliance/src/loon/src/lon_optim_capa.c b/alliance/src/loon/src/lon_optim_capa.c index 1858bcd3..81a746d3 100644 --- a/alliance/src/loon/src/lon_optim_capa.c +++ b/alliance/src/loon/src/lon_optim_capa.c @@ -59,7 +59,7 @@ static ptype_list* sort_capa(ptype_list* capa) losig=(losig_list*) capa->DATA; if (!losig->NAMECHAIN) { fprintf(stderr,"sort_capa: no name on signal\n"); - exit(1); + autexit(1); } best_C=getcapacitance(losig->NAMECHAIN->DATA); pred=capa; @@ -69,7 +69,7 @@ static ptype_list* sort_capa(ptype_list* capa) losig=(losig_list*) ptype->DATA; if (!losig->NAMECHAIN) { fprintf(stderr,"sort_capa: no name on signal\n"); - exit(1); + autexit(1); } C=getcapacitance((char*) losig->NAMECHAIN->DATA); if (C>best_C) { @@ -105,12 +105,12 @@ static int change_instance(loins_list* loins, losig_list* losig, lofig_list* lof best=getCell(loins->FIGNAME); if (!best || best->NAME!=loins->FIGNAME) { fprintf(stderr,"library error: no cell '%s.vbe' found\n",loins->FIGNAME); - exit(1); + autexit(1); } if (!losig->NAMECHAIN) { fprintf(stderr,"change_instance: no name on signal\n"); - exit(1); + autexit(1); } best_critical=critical_delay(lofig); @@ -157,7 +157,7 @@ static int change_instance(loins_list* loins, losig_list* losig, lofig_list* lof fprintf(stderr, "change_instance: compute error %f!=%f ps %f!=%f ps (%sdue to caller)\n", critical,best_critical,delay,best_delay,change?"not ":""); - exit(1); + autexit(1); } @@ -177,7 +177,7 @@ static int change_instance(loins_list* loins, losig_list* losig, lofig_list* lof if (!locon_aux) { fprintf(stderr,"change_instance: locon '%s' not found\n", locon->NAME); - exit(1); + autexit(1); } losig_aux=locon_aux->SIG; /*search real connection*/ @@ -188,7 +188,7 @@ static int change_instance(loins_list* loins, losig_list* losig, lofig_list* lof if (!locon_aux) { fprintf(stderr,"change_instance: locon '%s' not found in cell\n", locon->NAME); - exit(1); + autexit(1); } locon->NAME=locon_aux->NAME; } @@ -204,7 +204,7 @@ static int change_instance(loins_list* loins, losig_list* losig, lofig_list* lof fprintf(stderr, "change_instance: flatten error %f!=%f ps %f!=%f ps\n", critical,best_critical,delay,best_delay); - exit(1); + autexit(1); } } /*end of change loins*/ @@ -240,7 +240,7 @@ extern void improve_capa_critical_path(lofig_list* lofig, int optim_level) losig=(losig_list*) ptype->DATA; if (!losig->NAMECHAIN) { fprintf(stderr,"improve_capa_critical_path: no name on signal\n"); - exit(1); + autexit(1); } /*seek latest driver*/ ptype2=getptype(losig->USER,LOFIGCHAIN); @@ -248,7 +248,7 @@ extern void improve_capa_critical_path(lofig_list* lofig, int optim_level) fprintf(stderr, "improve_capa_critical_path: no lofigchain on losig '%s'\n", (char*) losig->NAMECHAIN->DATA); - exit(1); + autexit(1); } loins=NULL; for (lofigchain=ptype2->DATA; lofigchain; lofigchain=lofigchain->NEXT){ @@ -256,7 +256,7 @@ extern void improve_capa_critical_path(lofig_list* lofig, int optim_level) if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' isn't accepted\n", locon->NAME); - exit(1); + autexit(1); } if (locon->TYPE==EXTERNAL || locon->DIRECTION==IN) continue; loins=locon->ROOT; @@ -290,7 +290,7 @@ extern void improve_RC_circuit(lofig_list* lofig, int optim_level) if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,loins->INSNAME); - exit(1); + autexit(1); } if (isvdd(locon->NAME) || isvss(locon->NAME)) continue; if (locon->DIRECTION!=IN) break; @@ -298,7 +298,7 @@ extern void improve_RC_circuit(lofig_list* lofig, int optim_level) if (!locon) { fprintf(stderr,"improve_RC_circuit: no output found for '%s'\n", loins->FIGNAME); - exit(1); + autexit(1); } losig=locon->SIG; change_instance(loins, losig, lofig, optim_level); @@ -336,7 +336,7 @@ static int insert_buffer(losig_list* losig, lofig_list* lofig, int optim_level, if (!losig->NAMECHAIN) { fprintf(stderr,"insert_buffer: no name on signal\n"); - exit(1); + autexit(1); } best_delay=critical_delay(lofig); @@ -361,7 +361,7 @@ static int insert_buffer(losig_list* losig, lofig_list* lofig, int optim_level, if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,model->NAME); - exit(1); + autexit(1); } if (isvdd(locon->NAME)) losig_aux=losig_vdd; else if (isvss(locon->NAME)) losig_aux=losig_vss; @@ -369,7 +369,7 @@ static int insert_buffer(losig_list* losig, lofig_list* lofig, int optim_level, else if (locon->DIRECTION==IN) losig_aux=losig; else { fprintf(stderr,"insert_buffer: buffer port '%s' unknown\n",locon->NAME); - exit(1); + autexit(1); } sigchain=addchain(sigchain,losig_aux); } @@ -388,7 +388,7 @@ static int insert_buffer(losig_list* losig, lofig_list* lofig, int optim_level, if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,loins_buf->INSNAME); - exit(1); + autexit(1); } if (isvdd(locon->NAME)) losig_aux=losig_vdd; else if (isvss(locon->NAME)) losig_aux=losig_vss; @@ -396,7 +396,7 @@ static int insert_buffer(losig_list* losig, lofig_list* lofig, int optim_level, else if (locon->DIRECTION==IN) losig_aux=losig; else { fprintf(stderr,"insert_buffer: buffer port '%s' unknown\n",locon->NAME); - exit(1); + autexit(1); } ptype=getptype(losig_aux->USER,LOFIGCHAIN); if (!ptype) losig_aux->USER=addptype(losig_aux->USER,LOFIGCHAIN,addchain(NULL,locon)); @@ -408,7 +408,7 @@ static int insert_buffer(losig_list* losig, lofig_list* lofig, int optim_level, buffer_ptype=getptype(losig_buf->USER,LOFIGCHAIN); if (!ptype || !buffer_ptype) { fprintf(stderr,"insert_buffer: LOFIGCHAIN not found\n"); - exit(1); + autexit(1); } for (lofigchain=((chain_list*)ptype->DATA)->NEXT/*first is entry of buffer*/; @@ -417,7 +417,7 @@ static int insert_buffer(losig_list* losig, lofig_list* lofig, int optim_level, if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' isn't accepted\n", locon->NAME); - exit(1); + autexit(1); } /*do not move drivers and port of circuit*/ if (locon->TYPE==EXTERNAL || locon->DIRECTION!=IN) { @@ -449,7 +449,7 @@ static int insert_buffer(losig_list* losig, lofig_list* lofig, int optim_level, ptype=getptype(losig->USER,LOFIGCHAIN); if (!buffer_ptype || !buffer_ptype->DATA) { fprintf(stderr,"insert_buffer: LOFIGCHAIN is empty\n"); - exit(1); + autexit(1); } /*put critical path before buffer*/ @@ -564,7 +564,7 @@ static int insert_buffer(losig_list* losig, lofig_list* lofig, int optim_level, fprintf(stderr, "insert_buffer: compute error %e!=%e fF %f!=%f ps %f!=%f ps\n", capa,init_capa,delay,best_delay, init_delay, getdelay(losig->NAMECHAIN->DATA)); - exit(1); + autexit(1); } } diff --git a/alliance/src/loon/src/lon_optim_stats.c b/alliance/src/loon/src/lon_optim_stats.c index 56967e6f..22815c77 100644 --- a/alliance/src/loon/src/lon_optim_stats.c +++ b/alliance/src/loon/src/lon_optim_stats.c @@ -74,7 +74,7 @@ extern ptype_list* count_instance(lofig_list* lofig) if (!lofig) { fprintf(stderr,"count_instance: NULL pointer\n"); - exit(1); + autexit(1); } NUM_INS=0; @@ -133,7 +133,7 @@ extern ptype_list* percent_instance(ptype_list* model_list) cell=getCell((char*)ptype->DATA); if (!cell) { fprintf(stderr,"Library Error: cell '%s' not found\n",cell->NAME); - exit(1); + autexit(1); } inst=addptype(inst,cell->AREA*ptype->TYPE,ptype->DATA); AREA+=cell->AREA*ptype->TYPE; @@ -166,7 +166,7 @@ extern double getmaxRC(lofig_list* lofig) losig=locon->SIG; if (!losig->NAMECHAIN) { fprintf(stderr,"getmaxRC: no name on signal\n"); - exit(1); + autexit(1); } t=loins_max_RC(loins,losig->NAMECHAIN->DATA); if (t>RC) RC=t; diff --git a/alliance/src/loon/src/lon_signal_critical.c b/alliance/src/loon/src/lon_signal_critical.c index b0a77a85..30169775 100644 --- a/alliance/src/loon/src/lon_signal_critical.c +++ b/alliance/src/loon/src/lon_signal_critical.c @@ -62,7 +62,7 @@ extern losig_list* critical_output(lofig_list* lofig) for (losig=lofig->LOSIG; losig; losig=losig->NEXT) { if (!losig->NAMECHAIN) { fprintf(stderr,"critical_output: no losig name\n"); - exit(1); + autexit(1); } signame=losig->NAMECHAIN->DATA; if (losig->TYPE==EXTERNAL) delay=getdelay(output_name(signame)); @@ -89,7 +89,7 @@ extern double critical_delay(lofig_list* lofig) if (!losig->NAMECHAIN) { fprintf(stderr,"critical_delay: no losig name\n"); - exit(1); + autexit(1); } signame=losig->NAMECHAIN->DATA; @@ -119,12 +119,12 @@ static ptype_list* search_long_path(losig_list* losig, int ck_include) if (!losig) { fprintf(stderr,"search_long_path: NULL pointer\n"); - exit(1); + autexit(1); } if (!losig->NAMECHAIN) { fprintf(stderr,"search_long_path: no losig name\n"); - exit(1); + autexit(1); } signame=(char*) losig->NAMECHAIN->DATA; @@ -144,7 +144,7 @@ static ptype_list* search_long_path(losig_list* losig, int ck_include) ptype=getptype(losig->USER,LOFIGCHAIN); if (!ptype || !ptype->DATA) { fprintf(stderr,"search_long_path: no lofigchain found\n"); - exit(1); + autexit(1); } for (lofigchain=(chain_list*) ptype->DATA; lofigchain; lofigchain=lofigchain->NEXT) { @@ -152,7 +152,7 @@ static ptype_list* search_long_path(losig_list* losig, int ck_include) if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' isn't accepted\n", locon->NAME); - exit(1); + autexit(1); } /*only outputs*/ if (isvss(locon->NAME) || isvdd(locon->NAME) @@ -175,7 +175,7 @@ static ptype_list* search_long_path(losig_list* losig, int ck_include) if (!cell) { fprintf(stderr,"library error: no cell '%s.vbe' found\n", loins->FIGNAME); - exit(1); + autexit(1); } befig=cell->BEFIG; if (befig->BEREG) { @@ -198,7 +198,7 @@ static ptype_list* search_long_path(losig_list* losig, int ck_include) if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,loins->FIGNAME); - exit(1); + autexit(1); } /*only inputs*/ if (locon->DIRECTION==OUT || locon->DIRECTION==TRISTATE @@ -208,7 +208,7 @@ static ptype_list* search_long_path(losig_list* losig, int ck_include) losig=locon->SIG; if (!losig->NAMECHAIN) { fprintf(stderr,"search_long_path: no name on signal\n"); - exit(1); + autexit(1); } signame=(char*) losig->NAMECHAIN->DATA; delay=getdelay(signame); diff --git a/alliance/src/loon/src/lon_signal_netlist.c b/alliance/src/loon/src/lon_signal_netlist.c index c2ac6323..c7b47161 100644 --- a/alliance/src/loon/src/lon_signal_netlist.c +++ b/alliance/src/loon/src/lon_signal_netlist.c @@ -57,14 +57,14 @@ extern void loins_capacitance(loins_list* loins, int increment) if (!cell) { fprintf(stderr,"library error: no model '%s.vbe' found\n", loins->FIGNAME); - exit(1); + autexit(1); } for (locon=loins->LOCON; locon; locon=locon->NEXT) { if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,loins->INSNAME); - exit(1); + autexit(1); } /*seek port which match with netlist*/ for (port=cell->PORT; port; port=port->NEXT) { @@ -74,13 +74,13 @@ extern void loins_capacitance(loins_list* loins, int increment) fprintf(stderr, "loins_capacitance: connector discrepancy between '%s' and '%s'\n", cell->NAME,loins->FIGNAME); - exit(1); + autexit(1); } losig=locon->SIG; if (!losig->NAMECHAIN) { fprintf(stderr,"loins_capacitance: no losig name\n"); - exit(1); + autexit(1); } signame=losig->NAMECHAIN->DATA; if (!isvdd(locon->NAME) && !isvss(locon->NAME) @@ -108,7 +108,7 @@ extern double loins_max_T(loins_list* loins) if (!loins) { fprintf(stderr,"loins_max_T: NULL pointer\n"); - exit(1); + autexit(1); } /*cell properties*/ @@ -116,7 +116,7 @@ extern double loins_max_T(loins_list* loins) if (!cell) { fprintf(stderr,"library error: no cell '%s.vbe' found\n", loins->FIGNAME); - exit(1); + autexit(1); } /*is-it a flip-flop?*/ @@ -138,7 +138,7 @@ extern double loins_max_T(loins_list* loins) if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,loins->INSNAME); - exit(1); + autexit(1); } /*eval delay on input dependancy*/ if (isvdd(locon->NAME) || isvss(locon->NAME)) continue; @@ -154,12 +154,12 @@ extern double loins_max_T(loins_list* loins) fprintf(stderr, "loins_max_T: connector discrepancy between '%s' and '%s'\n", cell->NAME,loins->FIGNAME); - exit(1); + autexit(1); } if (!locon->SIG->NAMECHAIN) { fprintf(stderr,"loins_max_T: no losig name\n"); - exit(1); + autexit(1); } input=(char*) locon->SIG->NAMECHAIN->DATA; @@ -189,7 +189,7 @@ extern double loins_max_RC(loins_list* loins, char* output) if (!loins || !output) { fprintf(stderr,"loins_max_RC: NULL pointer\n"); - exit(1); + autexit(1); } /*cell properties*/ @@ -197,7 +197,7 @@ extern double loins_max_RC(loins_list* loins, char* output) if (!cell) { fprintf(stderr,"library error: no cell '%s.vbe' found\n", loins->FIGNAME); - exit(1); + autexit(1); } /*is-it a flip-flop?*/ @@ -219,7 +219,7 @@ extern double loins_max_RC(loins_list* loins, char* output) if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,loins->INSNAME); - exit(1); + autexit(1); } /*eval delay on input dependancy*/ if (isvdd(locon->NAME) || isvss(locon->NAME)) continue; @@ -235,12 +235,12 @@ extern double loins_max_RC(loins_list* loins, char* output) fprintf(stderr, "loins_max_RC: connector discrepancy between '%s' and '%s'\n", cell->NAME,loins->FIGNAME); - exit(1); + autexit(1); } if (!locon->SIG->NAMECHAIN) { fprintf(stderr,"loins_max_RC: no losig name\n"); - exit(1); + autexit(1); } input=(char*) locon->SIG->NAMECHAIN->DATA; @@ -270,7 +270,7 @@ extern double loins_delay(loins_list* loins, char* output) if (!loins || !output) { fprintf(stderr,"loins_delay: NULL pointer\n"); - exit(1); + autexit(1); } /*cell properties*/ @@ -278,7 +278,7 @@ extern double loins_delay(loins_list* loins, char* output) if (!cell) { fprintf(stderr,"library error: no cell '%s.vbe' found\n", loins->FIGNAME); - exit(1); + autexit(1); } /*is-it a flip-flop?*/ @@ -300,7 +300,7 @@ extern double loins_delay(loins_list* loins, char* output) if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,loins->INSNAME); - exit(1); + autexit(1); } /*eval delay on input dependancy*/ if (isvdd(locon->NAME) || isvss(locon->NAME)) continue; @@ -316,16 +316,16 @@ extern double loins_delay(loins_list* loins, char* output) fprintf(stderr, "loins_delay: connector discrepancy between '%s' and '%s'\n", cell->NAME,loins->FIGNAME); - exit(1); + autexit(1); } if (!locon->SIG) { fprintf(stderr,"loins_delay: no losig\n"); - exit(1); + autexit(1); } if (!locon->SIG->NAMECHAIN) { fprintf(stderr,"loins_delay: no losig name\n"); - exit(1); + autexit(1); } input=(char*) locon->SIG->NAMECHAIN->DATA; @@ -352,12 +352,12 @@ extern double losig_delay(losig_list* losig) if (!losig) { fprintf(stderr,"losig_delay: NULL pointer\n"); - exit(1); + autexit(1); } if (!losig->NAMECHAIN) { fprintf(stderr,"losig_delay: no losig name\n"); - exit(1); + autexit(1); } signame=losig->NAMECHAIN->DATA; @@ -365,7 +365,7 @@ extern double losig_delay(losig_list* losig) if (!ptype) { fprintf(stderr,"losig_delay: no lofigchain on signal '%s'\n", signame); - exit(1); + autexit(1); } /*search drivers*/ @@ -377,7 +377,7 @@ extern double losig_delay(losig_list* losig) if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' isn't accepted\n", locon->NAME); - exit(1); + autexit(1); } /*real inputs*/ if (isvdd(locon->NAME) || isvss(locon->NAME)) continue; @@ -405,7 +405,7 @@ extern void propagate_loins_delay(loins_list *loins) if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,loins->INSNAME); - exit(1); + autexit(1); } if (locon->DIRECTION==IN || locon->DIRECTION==INOUT || locon->DIRECTION==TRANSCV) propagate_losig_delay(locon->SIG); @@ -428,14 +428,14 @@ static void loc_propagate_losig_delay(loins_list *loins) if (!loins) { fprintf(stderr,"propagate_loins_delay: NULL pointer\n"); - exit(1); + autexit(1); } for (locon=loins->LOCON; locon; locon=locon->NEXT) { if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,loins->INSNAME); - exit(1); + autexit(1); } if (isvdd(locon->NAME) || isvss(locon->NAME)) continue; if (locon->DIRECTION==IN) continue; @@ -460,13 +460,13 @@ extern void propagate_losig_delay(losig_list *losig) if (!losig) { fprintf(stderr,"propagate_losig_delay: NULL pointer\n"); - exit(1); + autexit(1); } if (!losig->NAMECHAIN) { fprintf(stderr,"propagate_losig_delay: no losig name\n"); - exit(1); + autexit(1); } signame=losig->NAMECHAIN->DATA; delay=losig_delay(losig); @@ -489,14 +489,14 @@ extern void propagate_losig_delay(losig_list *losig) if (!ptype) { fprintf(stderr,"propagate_losig_delay: no lofigchain on signal '%s'\n", signame); - exit(1); + autexit(1); } for (lofigchain=ptype->DATA; lofigchain; lofigchain=lofigchain->NEXT) { locon= (locon_list*) lofigchain->DATA; if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' isn't accepted\n", locon->NAME); - exit(1); + autexit(1); } if (isvdd(locon->NAME) || isvss(locon->NAME)) continue; if (locon->DIRECTION==OUT || locon->DIRECTION==TRISTATE) continue; @@ -520,9 +520,13 @@ extern void set_circuit_capacitance(lofig_list *lofig) for (losig=lofig->LOSIG; losig; losig=losig->NEXT) { if (!losig->NAMECHAIN) { fprintf(stderr,"set_circuit_capacitance: no losig name\n"); - exit(1); + autexit(1); } - signame=losig->NAMECHAIN->DATA; + /* + ** LUDO: to ensure name unicity ! + */ + signame=getnameindex(losig->NAMECHAIN->DATA); + losig->NAMECHAIN->DATA = signame; /*for circuit output take user propertie if defined else return 0*/ putcapacitance(signame,getcapacitancelax(signame)); putdelay(signame,0); diff --git a/alliance/src/loon/src/lon_signal_utils.c b/alliance/src/loon/src/lon_signal_utils.c index b23a3e59..9c7a08ec 100644 --- a/alliance/src/loon/src/lon_signal_utils.c +++ b/alliance/src/loon/src/lon_signal_utils.c @@ -123,7 +123,7 @@ static void putsignal(signal_list* signal, char* name) { if (!name || !signal) { fprintf(stderr,"putsignal: NULL pointer\n"); - exit(1); + autexit(1); } /*if doesn't exist hash table, init*/ @@ -144,7 +144,7 @@ static signal_list* getsignal(char *name, int create) if (!name) { fprintf(stderr,"getsignal: no name\n"); - exit(1); + autexit(1); } /*if doesn't exist hash table, init*/ @@ -155,7 +155,7 @@ static signal_list* getsignal(char *name, int create) if (create==0) { fprintf(stderr,"getsignal: '%s' not found in hash table\n",name); - exit(1); + autexit(1); } /*create new signal*/ @@ -174,7 +174,7 @@ extern void putdelay(char* name, double delay) if (!name) { fprintf(stderr,"putdelay: no name\n"); - exit(1); + autexit(1); } signal=getsignal(name,1/*if doesn't exist create it*/); @@ -192,7 +192,7 @@ extern double getdelay(char* name) if (!name) { fprintf(stderr,"getdelay: no name\n"); - exit(1); + autexit(1); } signal=getsignal(name,0/*if doesn't exist then error*/); @@ -209,7 +209,7 @@ extern void incdelay(char* name, double delay) if (!name) { fprintf(stderr,"incdelay: no name\n"); - exit(1); + autexit(1); } signal=getsignal(name,0); @@ -227,7 +227,7 @@ extern double getcapacitance(char* name) if (!name) { fprintf(stderr,"getcapacitance: no name\n"); - exit(1); + autexit(1); } signal=getsignal(name,0/*if doesn't exist then error*/); @@ -244,7 +244,7 @@ extern void inccapacitance(char* name, double capacitance) if (!name) { fprintf(stderr,"inccapacitance: no name\n"); - exit(1); + autexit(1); } signal=getsignal(name,0/*if doesn't exist then error*/); @@ -262,7 +262,7 @@ extern void putcapacitance(char* name, double capacitance) if (!name) { fprintf(stderr,"putcapacitance: no name\n"); - exit(1); + autexit(1); } signal=getsignal(name,1/*if doesn't exist create it*/); diff --git a/alliance/src/loon/src/lon_xsch_driver.c b/alliance/src/loon/src/lon_xsch_driver.c index 2ea81823..a6ff3e5f 100644 --- a/alliance/src/loon/src/lon_xsch_driver.c +++ b/alliance/src/loon/src/lon_xsch_driver.c @@ -150,7 +150,7 @@ extern void save_xsch(FILE* xsch_stream, lofig_list* lofig, ptype_list* long_pat if (!ptype->DATA) { fprintf(stderr,"save_xsch: compute error\n"); - exit(1); + autexit(1); } delay=ptype->TYPE; gradient=delay/((double)XSCH_COLOR_MAX); @@ -161,7 +161,7 @@ extern void save_xsch(FILE* xsch_stream, lofig_list* lofig, ptype_list* long_pat if (!losig->NAMECHAIN || !losig->NAMECHAIN->DATA) { fprintf(stderr,"save_xsch: no name for signal\n"); - exit(1); + autexit(1); } signame=losig->NAMECHAIN->DATA; @@ -195,19 +195,19 @@ extern void save_xsch(FILE* xsch_stream, lofig_list* lofig, ptype_list* long_pat if (locon->DIRECTION==UNKNOWN) { fprintf(stderr,"BEH: 'linkage %s' in figure '%s' isn't accepted\n", locon->NAME,loins->INSNAME); - exit(1); + autexit(1); } if (locon->DIRECTION==OUT || locon->DIRECTION==INOUT || locon->DIRECTION==TRISTATE || locon->DIRECTION==TRANSCV) break; } if (!locon) { fprintf(stderr,"save_xsch: no output found for '%s'\n",loins->INSNAME); - exit(1); + autexit(1); } losig=locon->SIG; if (!losig->NAMECHAIN) { fprintf(stderr,"save_xsch: no name on signal\n"); - exit(1); + autexit(1); } signame=losig->NAMECHAIN->DATA; @@ -226,7 +226,7 @@ extern void save_xsch(FILE* xsch_stream, lofig_list* lofig, ptype_list* long_pat losig_aux=locon->SIG; if (!losig_aux->NAMECHAIN) { fprintf(stderr,"save_xsch: no name on signal\n"); - exit(1); + autexit(1); } /*is signal in critical path?*/ for (ptype2=long_path; ptype2; ptype2=ptype2->NEXT) { @@ -301,7 +301,7 @@ extern void save_xsch(FILE* xsch_stream, lofig_list* lofig, ptype_list* long_pat losig=locon->SIG; if (!losig->NAMECHAIN) { fprintf(stderr,"save_xsch: no name on signal\n"); - exit(1); + autexit(1); } if (losig->NAMECHAIN->DATA==signame) { dest=loins->INSNAME;