1 /*************************************************************************** 2 JSPICE3 adaptation of Spice3e2 - Copyright (c) Stephen R. Whiteley 1992 3 Copyright 1990 Regents of the University of California. All rights reserved. 4 Authors: 1986 Wayne A. Christopher 5 1992 Stephen R. Whiteley 6 ****************************************************************************/ 7 8 /* 9 * Definitions for external symbols in FTE. 10 */ 11 12 #ifndef FTEext_h 13 #define FTEext_h 14 15 16 /* main.c (in bin) */ 17 extern bool ft_nutmeg; 18 extern char *ft_rawfile; 19 extern char *errRtn; 20 extern char *errMsg; 21 extern char *cp_program; 22 extern char *cp_display; 23 extern IFsimulator *ft_sim; 24 #ifdef __STDC__ 25 extern struct variable *(*if_getparam)(char*,char**,char*,int,wordlist**); 26 #else 27 extern struct variable *(*if_getparam)(); 28 #endif 29 30 extern struct circ *ft_curckt; 31 extern struct circ *ft_circuits; 32 33 extern bool ft_intrpt; 34 extern bool ft_setflag; 35 extern bool ft_servermode; 36 extern bool ft_batchmode; 37 extern bool ft_nospiceadd; 38 extern bool ft_nopage; 39 extern bool ft_debug; 40 extern bool ft_parsedb; 41 extern bool ft_evdb; 42 extern bool ft_vecdb; 43 extern bool ft_grdb; 44 extern bool ft_gidb; 45 extern bool ft_controldb; 46 extern bool ft_asyncdb; 47 extern bool ft_simdb; 48 49 extern FILE *cp_curin; 50 extern FILE *cp_curout; 51 extern FILE *cp_curerr; 52 extern FILE *cp_in; 53 extern FILE *cp_out; 54 extern FILE *cp_err; 55 56 extern bool ft_listprint; 57 extern bool ft_optsprint; 58 extern bool ft_nodesprint; 59 extern bool ft_acctprint; 60 extern struct plot *plot_list; 61 62 /* arg.c */ 63 #ifdef __STDC__ 64 extern int arg_print(wordlist*,struct comm*); 65 extern int arg_plot(wordlist*,struct comm*); 66 extern int arg_load(wordlist*,struct comm*); 67 extern int arg_let(wordlist*,struct comm*); 68 extern int arg_set(wordlist*,struct comm*); 69 extern int arg_display(void); 70 extern wordlist *outmenuprompt(char*); 71 #else 72 extern int arg_print(); 73 extern int arg_plot(); 74 extern int arg_load(); 75 extern int arg_let(); 76 extern int arg_set(); 77 extern int arg_display(); 78 extern wordlist *outmenuprompt(); 79 #endif 80 81 /* aspice.c */ 82 #ifdef __STDC__ 83 extern void com_aspice(wordlist*); 84 extern void com_jobs(wordlist*); 85 extern void ft_checkkids(void); 86 extern void com_rspice(wordlist*); 87 #else 88 extern void com_aspice(); 89 extern void com_jobs(); 90 extern void ft_checkkids(); 91 extern void com_rspice(); 92 #endif 93 94 /* cmath1.c */ 95 extern bool cx_degrees; 96 #ifdef __STDC__ 97 extern char *cx_mag(char*,int,int,int*,short*); 98 extern char *cx_ph(char*,int,int,int*,short*); 99 extern char *cx_j(char*,int,int,int*,short*); 100 extern char *cx_real(char*,int,int,int*,short*); 101 extern char *cx_imag(char*,int,int,int*,short*); 102 extern char *cx_pos(char*,int,int,int*,short*); 103 extern char *cx_db(char*,int,int,int*,short*); 104 extern char *cx_log(char*,int,int,int*,short*); 105 extern char *cx_ln(char*,int,int,int*,short*); 106 extern char *cx_exp(char*,int,int,int*,short*); 107 extern char *cx_sqrt(char*,int,int,int*,short*); 108 extern char *cx_sin(char*,int,int,int*,short*); 109 extern char *cx_cos(char*,int,int,int*,short*); 110 #else 111 extern char *cx_mag(); 112 extern char *cx_ph(); 113 extern char *cx_j(); 114 extern char *cx_real(); 115 extern char *cx_imag(); 116 extern char *cx_pos(); 117 extern char *cx_db(); 118 extern char *cx_log(); 119 extern char *cx_ln(); 120 extern char *cx_exp(); 121 extern char *cx_sqrt(); 122 extern char *cx_sin(); 123 extern char *cx_cos(); 124 #endif 125 126 /* cmath2.c */ 127 #ifdef __STDC__ 128 extern char *cx_tan(char*,int,int,int*,short*); 129 extern char *cx_atan(char*,int,int,int*,short*); 130 extern char *cx_norm(char*,int,int,int*,short*); 131 extern char *cx_uminus(char*,int,int,int*,short*); 132 extern char *cx_mean(char*,int,int,int*,short*); 133 extern char *cx_length(char*,int,int,int*,short*); 134 extern char *cx_vector(char*,int,int,int*,short*); 135 extern char *cx_unitvec(char*,int,int,int*,short*); 136 extern char *cx_plus(char*,char*,int,int,int); 137 extern char *cx_minus(char*,char*,int,int,int); 138 extern char *cx_times(char*,char*,int,int,int); 139 extern char *cx_mod(char*,char*,int,int,int); 140 extern char *cx_rnd(char*,int,int,int*,short*); 141 extern char *cx_gauss(char*,int,int,int*,short*); 142 #else 143 extern char *cx_tan(); 144 extern char *cx_atan(); 145 extern char *cx_norm(); 146 extern char *cx_uminus(); 147 extern char *cx_mean(); 148 extern char *cx_length(); 149 extern char *cx_vector(); 150 extern char *cx_unitvec(); 151 extern char *cx_plus(); 152 extern char *cx_minus(); 153 extern char *cx_times(); 154 extern char *cx_mod(); 155 extern char *cx_rnd(); 156 extern char *cx_gauss(); 157 #endif 158 159 /* cmath3.c */ 160 #ifdef __STDC__ 161 extern char *cx_divide(char*,char*,int,int,int); 162 extern char *cx_comma(char*,char*,int,int,int); 163 extern char *cx_power(char*,char*,int,int,int); 164 extern char *cx_eq(char*,char*,int,int,int); 165 extern char *cx_gt(char*,char*,int,int,int); 166 extern char *cx_lt(char*,char*,int,int,int); 167 extern char *cx_ge(char*,char*,int,int,int); 168 extern char *cx_le(char*,char*,int,int,int); 169 extern char *cx_ne(char*,char*,int,int,int); 170 #else 171 extern char *cx_divide(); 172 extern char *cx_comma(); 173 extern char *cx_power(); 174 extern char *cx_eq(); 175 extern char *cx_gt(); 176 extern char *cx_lt(); 177 extern char *cx_ge(); 178 extern char *cx_le(); 179 extern char *cx_ne(); 180 #endif 181 182 /* cmath4.c */ 183 #ifdef __STDC__ 184 extern char *cx_and(char*,char*,int,int,int); 185 extern char *cx_or(char*,char*,int,int,int); 186 extern char *cx_not(char*,int,int,int*,short*); 187 extern char *cx_interpolate(char*,int,int,int*,short*, 188 struct plot*,struct plot*); 189 extern char *cx_deriv(char*,int,int,int*,short*, 190 struct plot*,struct plot*); 191 #else 192 extern char *cx_and(); 193 extern char *cx_or(); 194 extern char *cx_not(); 195 extern char *cx_interpolate(); 196 extern char *cx_deriv(); 197 #endif 198 199 /* spcmdtab.c or nutctab.c */ 200 extern struct comm *cp_coms; 201 202 /* compose.c */ 203 #ifdef __STDC__ 204 extern void com_compose(wordlist*); 205 extern double xrandom(void); 206 extern double xgauss(void); 207 #else 208 extern void com_compose(); 209 extern double xrandom(); 210 extern double xgauss(); 211 #endif 212 213 /* cpitf.c symbols declared in CPextern.h */ 214 215 /* define.c */ 216 #ifdef __STDC__ 217 extern void com_define(wordlist*); 218 extern struct pnode *ft_substdef(char*,struct pnode*); 219 extern void com_undefine(wordlist*); 220 #else 221 extern void com_define(); 222 extern struct pnode *ft_substdef(); 223 extern void com_undefine(); 224 #endif 225 226 /* diff.c */ 227 #ifdef __STDC__ 228 extern void com_diff(wordlist*); 229 #else 230 extern void com_diff(); 231 #endif 232 233 /* error.c */ 234 extern char ErrorMessage[]; 235 #ifdef __STDC__ 236 extern void fperror(char*,int); 237 extern void ft_sperror(int,char*); 238 extern void fatal(void); 239 #else 240 extern void fperror(); 241 extern void ft_sperror(); 242 extern void fatal(); 243 #endif 244 245 /* evaluate.c */ 246 #ifdef __STDC__ 247 extern struct dvec *ft_evaluate(struct pnode*); 248 extern struct dvlist *ft_dvlist(struct pnode*); 249 extern struct dvec *op_plus(struct pnode*,struct pnode*); 250 extern struct dvec *op_minus(struct pnode*,struct pnode*); 251 extern struct dvec *op_comma(struct pnode*,struct pnode*); 252 extern struct dvec *op_times(struct pnode*,struct pnode*); 253 extern struct dvec *op_mod(struct pnode*,struct pnode*); 254 extern struct dvec *op_divide(struct pnode*,struct pnode*); 255 extern struct dvec *op_power(struct pnode*,struct pnode*); 256 extern struct dvec *op_eq(struct pnode*,struct pnode*); 257 extern struct dvec *op_gt(struct pnode*,struct pnode*); 258 extern struct dvec *op_lt(struct pnode*,struct pnode*); 259 extern struct dvec *op_ge(struct pnode*,struct pnode*); 260 extern struct dvec *op_le(struct pnode*,struct pnode*); 261 extern struct dvec *op_ne(struct pnode*,struct pnode*); 262 extern struct dvec *op_and(struct pnode*,struct pnode*); 263 extern struct dvec *op_or(struct pnode*,struct pnode*); 264 extern struct dvec *op_range(struct pnode*,struct pnode*); 265 extern struct dvec *op_ind(struct pnode*,struct pnode*); 266 extern struct dvec *op_uminus(struct pnode*); 267 extern struct dvec *op_not(struct pnode*); 268 #else 269 extern struct dvec *ft_evaluate(); 270 extern struct dvlist *ft_dvlist(); 271 extern struct dvec *op_plus(); 272 extern struct dvec *op_minus(); 273 extern struct dvec *op_comma(); 274 extern struct dvec *op_times(); 275 extern struct dvec *op_mod(); 276 extern struct dvec *op_divide(); 277 extern struct dvec *op_power(); 278 extern struct dvec *op_eq(); 279 extern struct dvec *op_gt(); 280 extern struct dvec *op_lt(); 281 extern struct dvec *op_ge(); 282 extern struct dvec *op_le(); 283 extern struct dvec *op_ne(); 284 extern struct dvec *op_and(); 285 extern struct dvec *op_or(); 286 extern struct dvec *op_range(); 287 extern struct dvec *op_ind(); 288 extern struct dvec *op_uminus(); 289 extern struct dvec *op_not(); 290 #endif 291 292 /* inpcom.c */ 293 #ifdef __STDC__ 294 extern char *readline(FILE*); 295 extern FILE *inp_pathopen(char*,char*); 296 extern void inp_readall(FILE*,struct line**,char*); 297 extern void inp_casefix(char*); 298 extern void inp_deckfree(struct line*); 299 extern struct line *inp_deckcopy(struct line*); 300 #else 301 extern char *readline(); 302 extern FILE *inp_pathopen(); 303 extern void inp_readall(); 304 extern void inp_casefix(); 305 extern void inp_deckfree(); 306 extern struct line *inp_deckcopy(); 307 #endif 308 309 /* interp.c */ 310 #ifdef __STDC__ 311 extern bool ft_interpolate(double*,double*,double*,int,double*,int,int); 312 extern bool ft_polyfit(double*,double*,double*,int,double*); 313 extern double ft_peval(double,double*,int); 314 #else 315 extern bool ft_interpolate(); 316 extern bool ft_polyfit(); 317 extern double ft_peval(); 318 #endif 319 320 /* misccoms.c */ 321 #ifdef __STDC__ 322 extern void com_help(wordlist*); 323 extern void com_ahelp(wordlist*); 324 extern void com_ghelp(wordlist*); 325 extern void com_quit(wordlist*); 326 extern void com_bug(wordlist*); 327 extern void com_version(wordlist*); 328 #else 329 extern void com_help(); 330 extern void com_ahelp(); 331 extern void com_ghelp(); 332 extern void com_quit(); 333 extern void com_bug(); 334 extern void com_version(); 335 #endif 336 337 /* numparse.c */ 338 extern bool ft_strictnumparse; 339 #ifdef __STDC__ 340 extern double *ft_numparse(char**,bool); 341 #else 342 extern double *ft_numparse(); 343 #endif 344 345 /* nutinp.c */ 346 #ifdef __STDC__ 347 extern void nutcom_edit(wordlist*); 348 extern void nutcom_sced(wordlist*); 349 extern bool inp_edit(char*); 350 extern void inp_nutsource(FILE*,bool,char*); 351 extern void nutcom_source(wordlist*); 352 #else 353 extern void nutcom_edit(); 354 extern void nutcom_sced(); 355 extern bool inp_edit(); 356 extern void inp_nutsource(); 357 extern void nutcom_source(); 358 #endif 359 360 /* options.c */ 361 #ifdef __STDC__ 362 extern void cp_internal_init(void); 363 extern void com_usrset(wordlist*); 364 extern int cp_internalset(struct variable*,bool); 365 extern struct variable *cp_enqvar(char*); 366 extern struct variable *cp_uservars(struct variable**,struct variable**); 367 extern struct line *inp_getopts(struct line*); 368 #else 369 extern void cp_internal_init(); 370 extern void com_usrset(); 371 extern int cp_internalset(); 372 extern struct variable *cp_enqvar(); 373 extern struct variable *cp_uservars(); 374 extern struct line *inp_getopts(); 375 #endif 376 377 /* parse.c */ 378 extern struct func ft_funcs[]; 379 extern struct func func_not; 380 extern struct func func_uminus; 381 #ifdef __STDC__ 382 extern struct pnode *ft_getpnames(wordlist*,bool); 383 extern void inp_pnfree(struct pnode*); 384 #else 385 extern struct pnode *ft_getpnames(); 386 extern void inp_pnfree(); 387 #endif 388 389 /* postcoms.c */ 390 #ifdef __STDC__ 391 extern void com_let(wordlist*); 392 extern void com_unlet(wordlist*); 393 extern void com_load(wordlist*); 394 extern void com_print(wordlist*); 395 extern void com_write(wordlist*); 396 extern void com_display(wordlist*); 397 extern void com_splot(wordlist*); 398 extern void com_cross(wordlist*); 399 extern void com_destroy(wordlist*); 400 #else 401 extern void com_let(); 402 extern void com_unlet(); 403 extern void com_load(); 404 extern void com_print(); 405 extern void com_write(); 406 extern void com_display(); 407 extern void com_splot(); 408 extern void com_cross(); 409 extern void com_destroy(); 410 #endif 411 412 /* rawfile.c */ 413 extern int raw_prec; 414 #ifdef __STDC__ 415 extern void raw_write(char*,struct plot*,bool,bool); 416 extern struct plot *raw_read(char*); 417 #else 418 extern void raw_write(); 419 extern struct plot *raw_read(); 420 #endif 421 422 /* resource.c */ 423 #ifdef __STDC__ 424 extern void com_rusage(wordlist*); 425 extern void ft_ckspace(void); 426 extern void rusage_init(void); 427 #else 428 extern void com_rusage(); 429 extern void ft_ckspace(); 430 extern void rusage_init(); 431 #endif 432 433 /* signal.c */ 434 #ifdef __STDC__ 435 extern RETSIGTYPE ft_sigintr(void); 436 extern RETSIGTYPE sigfloat(int,int); 437 extern RETSIGTYPE sigstop(void); 438 extern RETSIGTYPE sigcont(void); 439 extern RETSIGTYPE sigill(void); 440 extern RETSIGTYPE sigbus(void); 441 extern RETSIGTYPE sigsegv(void); 442 extern RETSIGTYPE sig_sys(void); 443 #else 444 extern RETSIGTYPE ft_sigintr(); 445 extern RETSIGTYPE sigfloat(); 446 extern RETSIGTYPE sigstop(); 447 extern RETSIGTYPE sigcont(); 448 extern RETSIGTYPE sigill(); 449 extern RETSIGTYPE sigbus(); 450 extern RETSIGTYPE sigsegv(); 451 extern RETSIGTYPE sig_sys(); 452 #endif 453 454 /* spiceif.c or nutmegif.c */ 455 #ifdef __STDC__ 456 extern char *if_inpdeck(struct line*,char**); 457 extern int if_run(char*,wordlist*); 458 extern void if_option(char*,char*,int,char*); 459 extern void if_dump(char*,FILE*); 460 extern void if_cktfree(char*,char*); 461 extern void if_cktclear(void); 462 extern char *if_errstring(int); 463 extern struct variable *spif_getparam(char*,char**,char*,int,wordlist**); 464 extern void if_setparam(char*,char*,char*,struct variable*); 465 extern void if_setndnames(char*); 466 extern struct variable *if_getstat(char*,char*,wordlist**); 467 extern struct variable *nutif_getparam(char*,char**,char*,int,wordlist**); 468 extern wordlist *GetAnalysisFromDeck(void); 469 extern int InProgress(void); 470 extern int IsIplot(void); 471 #else 472 extern char *if_inpdeck(); 473 extern int if_run(); 474 extern void if_option(); 475 extern void if_dump(); 476 extern void if_cktfree(); 477 extern void if_cktclear(); 478 extern char *if_errstring(); 479 extern struct variable *spif_getparam(); 480 extern void if_setparam(); 481 extern void if_setndnames(); 482 extern struct variable *if_getstat(); 483 extern struct variable *nutif_getparam(); 484 extern wordlist *GetAnalysisFromDeck(); 485 extern int InProgress(); 486 extern int IsIplot(); 487 #endif 488 489 /* types.c */ 490 #ifdef __STDC__ 491 extern void com_dftype(wordlist*); 492 extern char *ft_typabbrev(int); 493 extern char *ft_typenames(int); 494 extern int ft_typnum(char*); 495 extern char *ft_plotabbrev(char*); 496 extern void com_stype(wordlist*); 497 #else 498 extern void com_dftype(); 499 extern char *ft_typabbrev(); 500 extern char *ft_typenames(); 501 extern int ft_typnum(); 502 extern char *ft_plotabbrev(); 503 extern void com_stype(); 504 #endif 505 506 /* vectors.c */ 507 extern struct plot *plot_cur; 508 #ifdef __STDC__ 509 extern void ft_loadfile(char*); 510 extern void plot_add(struct plot*); 511 extern void plot_new(struct plot*); 512 extern void plot_delete(struct plot*); 513 extern void plot_setcur(char*); 514 extern void plot_docoms(wordlist*); 515 extern struct plot *plot_alloc(char*); 516 extern bool plot_prefix(char*,char*); 517 extern void vec_newtemp(struct dvec*); 518 extern void vec_newperm(struct dvec*); 519 extern void vec_remove(char*); 520 extern void vec_dlfree(struct dvlist*); 521 extern struct dvec *vec_fromplot(char*,struct plot*); 522 extern struct dvec *vec_get(char*); 523 extern struct dvec *vec_copy(struct dvec*); 524 extern void vec_gc(void); 525 extern bool vec_eq(struct dvec*,struct dvec*); 526 extern char *vec_basename(struct dvec*); 527 extern void vec_sort(struct dvec*); 528 extern struct dvec *vec_mkfamily(struct dvec*); 529 #else 530 extern void ft_loadfile(); 531 extern void plot_add(); 532 extern void plot_new(); 533 extern void plot_delete(); 534 extern void plot_setcur(); 535 extern struct plot *plot_alloc(); 536 extern bool plot_prefix(); 537 extern void vec_newtemp(); 538 extern void vec_newperm(); 539 extern void vec_remove(); 540 extern void vec_dlfree(); 541 extern struct dvec *vec_fromplot(); 542 extern struct dvec *vec_get(); 543 extern void plot_docoms(); 544 extern struct dvec *vec_copy(); 545 extern void vec_gc(); 546 extern bool vec_eq(); 547 extern char *vec_basename(); 548 extern void vec_sort(); 549 extern struct dvec *vec_mkfamily(); 550 #endif 551 552 #endif /* FTEext_h */ 553