8 #define API_USE_REAL_TYPES
11 static sigjmp_buf cnsapi_JumpBuffer
;
12 static void (*OldExitHandler
) () = NULL
;
17 MBK_EXIT_FUNCTION
= OldExitHandler
;
18 siglongjmp(cnsapi_JumpBuffer
, 1);
22 cnsapi_SetExitHandler()
24 OldExitHandler
= MBK_EXIT_FUNCTION
;
25 MBK_EXIT_FUNCTION
= cnsapi_ExitHandler
;
28 cnsfig_list
*cns_LoadConeFigure(char *name
)
30 cnsfig_list
*cf
= NULL
;
31 lofig_list
*lf
= NULL
;
35 if ((cf
= getloadedcnsfig(name
)) != NULL
)
36 avt_errmsg(CNS_API_ERRMSG
, "001", AVT_WARNING
, n
);
38 if ((lf
= getloadedlofig(name
)) != NULL
) {
39 avt_errmsg(CNS_API_ERRMSG
, "002", AVT_WARNING
, n
);
42 cnsapi_SetExitHandler();
43 if (sigsetjmp(cnsapi_JumpBuffer
, 1) == 0) {
44 cf
= loadcnsfig(name
, NULL
);
50 avt_errmsg(CNS_API_ERRMSG
, "003", AVT_ERROR
, n
);
54 cnsfig_list
*cns_GetConeFigure(char *name
)
56 return getloadedcnsfig(name
);
59 void cns_SaveVerboseConeFile(cnsfig_list
*cf
)
65 void cns_DisplayPowerSupplies(FILE *f
, cnsfig_list
*cf
)
73 if ((ptuser
= getptype(cf
->USER
, CNS_POWER_SUPPLIES
)) == NULL
) return;
74 fprintf(f
, "Figure Supply List\n\n");
76 for (ptsupply
= (alim_list
*)ptuser
->DATA
; ptsupply
; ptsupply
= ptsupply
->NEXT
) {
77 fprintf(f
, "%d)\n", numsupply
++);
78 fprintf(f
, "\tVDDMAX: %.2f\n", ptsupply
->VDDMAX
);
79 fprintf(f
, "\tVDDMIN: %.2f\n", ptsupply
->VDDMIN
);
80 fprintf(f
, "\tVSSMAX: %.2f\n", ptsupply
->VSSMAX
);
81 fprintf(f
, "\tVSSMIN: %.2f\n", ptsupply
->VSSMIN
);
85 fprintf(f
, "Transistor Supplies\n\n");
86 for (ptlotrs
= cf
->LOTRS
; ptlotrs
; ptlotrs
= ptlotrs
->NEXT
) {
87 ptsupply
= cns_get_lotrs_multivoltage(ptlotrs
);
88 fprintf(f
, "%d) %s\n", numsupply
++, ptlotrs
->TRNAME
);
89 fprintf(f
, "\tVDDMAX: %.2f\n", ptsupply
->VDDMAX
);
90 fprintf(f
, "\tVDDMIN: %.2f\n", ptsupply
->VDDMIN
);
91 fprintf(f
, "\tVSSMAX: %.2f\n", ptsupply
->VSSMAX
);
92 fprintf(f
, "\tVSSMIN: %.2f\n", ptsupply
->VSSMIN
);
96 fprintf(f
, "Cone Supplies\n\n");
97 for (ptcone
= cf
->CONE
; ptcone
; ptcone
= ptcone
->NEXT
) {
98 if ((ptuser
= getptype(ptcone
->USER
, CNS_SUPPLY
)) == NULL
) continue;
99 ptsupply
= (alim_list
*)ptuser
->DATA
;
100 fprintf(f
, "%d) %s\n", numsupply
++, ptcone
->NAME
);
101 fprintf(f
, "\tVDDMAX: %.2f\n", ptsupply
->VDDMAX
);
102 fprintf(f
, "\tVDDMIN: %.2f\n", ptsupply
->VDDMIN
);
103 fprintf(f
, "\tVSSMAX: %.2f\n", ptsupply
->VSSMAX
);
104 fprintf(f
, "\tVSSMIN: %.2f\n", ptsupply
->VSSMIN
);