1 /****************************************************************************/
3 /* Chaine de CAO & VLSI Alliance */
5 /* Produit : TTVREN Version 1 */
6 /* Fichier : ttvren.c */
8 /* (c) copyright 2002 AVERTEC */
9 /* Tous droits reserves */
11 /* Auteur(s) : Antony PINTO */
13 /****************************************************************************/
19 char *NAMEFIG
= NULL
;
20 char *NAMEEXT
= NULL
;
23 timing_cell
*MODELSTM
;
26 /****************************************************************************/
27 /*{{{ ren_printrun() */
30 /****************************************************************************/
31 void ren_printrun(file
,tTstart
,tTend
,Tstart
,Tend
)
33 struct rusage Tstart
,
57 cl
= ttv_getlinecachesize() ;
58 cs
= ttv_getsigcachesize() ;
60 sl
= ttv_getlinememorysize() ;
61 ss
= ttv_getsigmemorysize() ;
63 tm
= (double)(Tend
.ru_maxrss
* getpagesize()) / (1024.0 * 1024.0) ;
64 trun
= 10L * (tTend
-tTstart
);
65 if(trun
== 0L) trun
=10L;
66 tuse
= (long)(((10L*Tend
.ru_utime
.tv_sec
)+(Tend
.ru_utime
.tv_usec
/100000L))
67 -((10L*Tstart
.ru_utime
.tv_sec
)+(Tstart
.ru_utime
.tv_usec
/100000L))
68 +((10L*Tend
.ru_stime
.tv_sec
)+(Tend
.ru_stime
.tv_usec
/100000L))
69 -((10L*Tstart
.ru_stime
.tv_sec
)+(Tstart
.ru_stime
.tv_usec
/100000L)));
70 cpu
= 100.0 * ((double)tuse
/trun
);
71 if(cpu
> 100.0) cpu
= 100.0 ;
73 user
= (long)(((10L*Tend
.ru_utime
.tv_sec
)+(Tend
.ru_utime
.tv_usec
/100000L))
74 - ((10L*Tstart
.ru_utime
.tv_sec
)+(Tstart
.ru_utime
.tv_usec
/100000L))) ;
75 syst
= (long)(((10L*Tend
.ru_stime
.tv_sec
)+(Tend
.ru_stime
.tv_usec
/100000L))
76 - ((10L*Tstart
.ru_stime
.tv_sec
)+(Tstart
.ru_stime
.tv_usec
/100000L))) ;
77 userms
= (long)(((1000000L*Tend
.ru_utime
.tv_sec
)+(Tend
.ru_utime
.tv_usec
))
78 - ((1000000L*Tstart
.ru_utime
.tv_sec
)+(Tstart
.ru_utime
.tv_usec
))) ;
79 systms
= (long)(((1000000L*Tend
.ru_stime
.tv_sec
)+(Tend
.ru_stime
.tv_usec
))
80 - ((1000000L*Tstart
.ru_stime
.tv_sec
)+(Tstart
.ru_stime
.tv_usec
))) ;
81 userM
= (long)((user
/10L)/60L) ;
82 userS
= (long)((user
/10L)%60L) ;
83 userD
= (long)(user
%10L) ;
84 systM
= (long)((syst
/10L)/60L) ;
85 systS
= (long)((syst
/10L)%60L) ;
86 systD
= (long)(syst
%10L) ;
87 fprintf(file
,"\n---------------------------------------------------------\n") ;
88 fprintf(file
,"signal cache size in megabyte : %.2f MB\n",cs
) ;
89 fprintf(file
,"path cache size in megabyte : %.2f MB\n",cl
) ;
90 fprintf(file
,"signal size in megabyte : %.2f MB\n",ss
) ;
91 fprintf(file
,"path size in megabyte : %.2f MB\n",sl
) ;
92 fprintf(file
,"total run time : %02ldmin %02lds\n",
93 (long)((tTend
-tTstart
)/60L),(long)((tTend
-tTstart
)%60L)) ;
94 fprintf(file
,"time user : %02ld'%02ld.%ld''\n",userM
,userS
,userD
) ;
95 fprintf(file
,"time system : %02ld'%02ld.%ld''\n",systM
,systS
,systD
) ;
96 fprintf(file
,"time user in ms : %.2f\n",(double)userms
/(double)1000.0) ;
97 fprintf(file
,"time system in ms : %.2f\n",(double)systms
/(double)1000.0) ;
98 fprintf(file
,"total memory : %.2f MB\n",tm
) ;
99 fprintf(file
,"cpu ratio : %.2f%% CPU\n",cpu
) ;
100 fprintf(file
,"\n---------------------------------------------------------\n") ;
103 /*}}}************************************************************************/
107 /****************************************************************************/
108 static void printarg(FILE *file
, char *opt
, char *def
, int mode
)
113 fprintf(file
," %s",opt
);
116 fprintf(file
,"%20s : %s\n",opt
,def
);
119 fprintf(file
,"%20s : %s\n"," ",def
);
124 /*}}}************************************************************************/
125 /*{{{ ren_printhelp() */
128 /****************************************************************************/
129 void ren_printhelp(int mode
)
132 fprintf(stdout
,"\nUsage : ttvren");
134 fprintf(stdout
,"\n");
136 printarg(stdout
,"-ttx" ,"rename ttx file" ,mode
);
137 printarg(stdout
,"-dtx" ,"rename dtx file" ,mode
);
138 printarg(stdout
,"-ext=<extension>","extension added to the filename",mode
);
139 printarg(stdout
,"-l" ,"do a top level renaming" ,mode
);
140 printarg(stdout
,"-h" ,"print this page" ,mode
);
141 printarg(stdout
,"filename" ,"without extension" ,mode
);
142 fprintf(stdout
,"\n");
145 /*}}}************************************************************************/
146 /*{{{ retkeyegal() */
149 /****************************************************************************/
150 short retkeyegal(chaine
)
155 for(i
= 0 ; (i
<strlen(chaine
)) && (chaine
[i
] != '=') ; i
++)
158 return((i
== strlen(chaine
)) ? -1 : (short)i
) ;
161 /*}}}************************************************************************/
162 /*{{{ retkeypercent() */
165 /****************************************************************************/
166 short retkeypercent(chaine
)
171 for(i
= 0 ; (i
<strlen(chaine
)) && (chaine
[i
] != '%') ; i
++)
174 return((i
== strlen(chaine
)) ? -1 : (short)i
) ;
177 /*}}}************************************************************************/
181 /****************************************************************************/
188 /*}}}************************************************************************/
189 /*{{{ ren_getopt() */
192 /* renvoie le masque correspondant aux options */
193 /****************************************************************************/
194 long ren_getopt(argc
,argv
)
202 for(i
= 1 ; i
!= argc
; i
++)
204 if(argv
[i
][0] != '-')
205 NAMEFIG
= namealloc(argv
[i
]) ;
206 /* test si l'on a un = */
207 else if((eq
=retkeyegal(argv
[i
])) != -1)
210 if (strcmp(argv
[i
],"-ext") == 0)
212 NAMEEXT
= namealloc((char *)(argv
[i
]+eq
+1));
213 maskopt
|= REN_OPT_EXT
;
220 if(strcmp(argv
[i
],"-dtx") == 0)
221 maskopt
|= REN_OPT_DTX
;
222 else if(strcmp(argv
[i
],"-silent") == 0)
223 maskopt
|= REN_OPT_SILENT
;
224 else if(strcmp(argv
[i
],"-ttx") == 0)
225 maskopt
|= REN_OPT_TTX
;
226 else if(strcmp(argv
[i
],"-l") == 0)
227 maskopt
|= REN_OPT_HIER
;
228 else if(strcmp(argv
[i
],"-h") == 0)
229 maskopt
|= REN_OPT_HELP
;
230 else if(strcmp(argv
[i
],"-stm") == 0)
231 maskopt
|= REN_OPT_STM
;
236 if (! (maskopt
&REN_OPT_EXT
))
241 /*}}}************************************************************************/
245 /****************************************************************************/
250 struct rusage tstart
, tend
, Tstart
, Tend
;
251 long ttstart
, ttend
, tTstart
, tTend
;
253 long maskopt
, filetype
;
262 #ifdef AVERTEC_LICENSE
263 if (avt_givetoken("HITAS_LICENSE_SERVER","ttvren") != AVT_VALID_TOKEN
)
268 if (((maskopt
= ren_getopt(argc
,argv
))&REN_OPT_HELP
)==REN_OPT_HELP
)
274 if ((maskopt
& REN_OPT_SILENT
)==0)
276 avt_banner("TtvRen","timing file rename","2002");
279 if ((maskopt
&REN_OPT_DTXTTX
)==0)
280 maskopt
|= REN_OPT_DTXTTX
;
286 if ((maskopt
&REN_OPT_DTXTTX
) == REN_OPT_DTX
)
287 filetype
= TTV_FILE_DTX
;
288 if ((maskopt
&REN_OPT_DTXTTX
) == REN_OPT_TTX
)
289 filetype
= TTV_FILE_TTX
;
290 if ((TTVFIG
= ttv_getttvfig(NAMEFIG
,filetype
)) == NULL
)
293 // if ((maskopt&REN_OPT_STM)==REN_OPT_STM)
294 // if (!(MODELSTM = stm_getcell(NAMEFIG)))
298 strcat(NEWNAME
,NAMEEXT
);
302 getrusage(RUSAGE_SELF
,&Tstart
) ;
305 getrusage(RUSAGE_SELF
,&tstart
) ;
308 #ifdef AVERTEC_LICENSE
309 if (avt_givetoken("HITAS_LICENSE_SERVER","ttvren") != AVT_VALID_TOKEN
)
312 ren_ttvfigren(maskopt
) ;
313 // if ((maskopt&REN_OPT_STM)==REN_OPT_STM) ren_stmren(maskopt);
315 getrusage(RUSAGE_SELF
,&Tend
) ;
318 getrusage(RUSAGE_SELF
,&tend
) ;
321 if ((maskopt
& REN_OPT_SILENT
)==0)
323 ren_printrun(file
,ttstart
,ttend
,tstart
,tend
) ;
324 ren_printrun(file
,tTstart
,tTend
,Tstart
,Tend
) ;
326 fprintf(file
,"\nend\n") ;
328 ttv_freeallttvfig(TTVFIG
) ;
329 if ((maskopt
&REN_OPT_STM
)==REN_OPT_STM
)
330 stm_freecell(NAMEFIG
);
336 /*}}}************************************************************************/