home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / gnu / g / bug / 2313 < prev    next >
Encoding:
Text File  |  1993-01-23  |  42.9 KB  |  4,111 lines

  1. Path: sparky!uunet!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!cis.ohio-state.edu!uproar.enet.DEc.COM!
  2. From: @uproar.enet.DEc.COM (Tim Murnaghan, ime196::tpm)
  3. Newsgroups: gnu.g++.bug
  4. Subject: setjmp problem
  5. Date: 22 Jan 1993 21:25:41 -0500
  6. Organization: GNUs Not Usenet
  7. Lines: 4098
  8. Sender: daemon@cis.ohio-state.edu
  9. Approved: bug-g++@prep.ai.mit.edu
  10. Distribution: gnu
  11. Message-ID: <9301221417.AA14585@enet-gw.pa.dec.com>
  12.  
  13. The following program which calls setjmp causes endless recursion in
  14. setjmp_protect because of a circular block chain.
  15. It's pretty simple to have setjmp_protect protect itself against this; but how
  16. did the block chain get to be circular ?
  17.  
  18. + g++ -v -O -g -I. -I../. -I.././inc -I.././clib -DTRACE -c ../vsxconf.cc -o vsxconf.o 
  19. gcc version 2.3.3
  20.  /usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/cpp -lang-c++ -v -I. -I../. 
  21. -I.././inc -I.././clib -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Di386 
  22. -Dunix -D__i386__ -D__unix__ -D__i386 -D__unix -D__OPTIMIZE__ -g -D_M_I386 
  23. -D_M_I86 -D_M_I86SM -D_M_SDATA -D_M_STEXT -D_M_UNIX -D_M_XENIX -D_M_SYS5 
  24. -D_M_SYSV -D_M_SYS3 -D_M_SYSIII -D_M_COFF -D_M_BITFIELDS -D_M_WORDSWAP 
  25. -DM_I386 -DM_I86 -DM_I86SM -DM_SDATA -DM_STEXT -DM_UNIX -DM_XENIX -DM_SYS5 
  26. -DM_SYSV -DM_SYS3 -DM_SYSIII -DM_COFF -DM_BITFIELDS -DM_WORDSWAP -DTRACE 
  27. ../vsxconf.cc /usr/tmp/cca14751.i
  28. GNU CPP version 2.3.3 (80386, ATT syntax)
  29. /usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/cc1plus /usr/tmp/cca14751.i -quiet
  30.  -dumpbase vsxconf.cc -g -O -version -o /usr/tmp/cca14751.s
  31. GNU C++ version 2.3.3 (80386, ATT syntax) compiled by GNU C version 2.3.3.
  32. ..... wait a long time for a core dump
  33. -------------------- cut here --------------------
  34. # 1 "../vsxconf.cc"
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54. extern yyparse();
  55. extern yydebug;
  56. extern init_lex();
  57.  
  58. # 1 "/usr/local/lib/g++-include/std.h" 1 3
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. # 1 "/usr/local/lib/g++-include/_G_config.h" 1 3
  82.   
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89. typedef long _G_clock_t;
  90. typedef short _G_dev_t;
  91. typedef long _G_fpos_t;
  92. typedef unsigned short _G_gid_t;
  93. typedef unsigned short _G_ino_t;
  94. typedef unsigned short _G_mode_t;
  95. typedef short _G_nlink_t;
  96. typedef long _G_off_t;
  97. typedef short _G_pid_t;
  98. typedef int _G_ptrdiff_t;
  99. typedef int   _G_sigset_t;
  100. typedef unsigned int _G_size_t;
  101. typedef long _G_time_t;
  102. typedef unsigned short _G_uid_t;
  103. typedef long int _G_wchar_t;
  104. typedef  int   _G_ssize_t;
  105. typedef char * _G_va_list;
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127. # 23 "/usr/local/lib/g++-include/std.h" 2 3
  128.  
  129. # 1 "/usr/local/lib/g++-include/stddef.h" 1 3
  130.  
  131.  
  132. extern "C" {
  133.  
  134.  
  135.  
  136. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stddef.h" 1 3
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164. # 43 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stddef.h" 3
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195. typedef int ptrdiff_t;
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233. typedef unsigned int size_t;
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274. typedef __wchar_t wchar_t;
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293. # 179 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stddef.h" 3
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317. # 7 "/usr/local/lib/g++-include/stddef.h" 2 3
  318.  
  319.  
  320.  
  321.  
  322. }
  323.  
  324. # 24 "/usr/local/lib/g++-include/std.h" 2 3
  325.  
  326. # 1 "/usr/local/lib/g++-include/stdlib.h" 1 3
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. extern "C" {
  335.  
  336. int       abs(int);
  337.  
  338.  
  339. void volatile abort(void);
  340.  
  341.  
  342.  
  343.  
  344. double    atof(const char*);
  345. int       atoi(const char*);
  346. long      atol(const char*);
  347.  
  348. int       atexit(auto void (*p) (void));
  349. int       bsearch (const void *, const void *, size_t, 
  350.                    size_t, auto int (*ptf)(const void*, const void*));
  351. void*     calloc(size_t, size_t);
  352. void      cfree(void*);
  353.  
  354.  
  355. void volatile exit(int);
  356.  
  357.  
  358.  
  359.  
  360. char*     fcvt(double, int, int*, int*);
  361. void      free(void*);
  362. char*     getenv(const char*);
  363. int       getopt(int, char * const *, const char*);
  364. int       getpw(int, char*);
  365. char*     gcvt(double, int, char*);
  366. char*     ecvt(double, int, int*, int*);
  367. extern char**   environ;
  368.  
  369. long      labs(long);
  370. void*     malloc(size_t);
  371. size_t    malloc_usable_size(void*);
  372. int       putenv(const char*);
  373. extern char*    optarg;
  374. extern int      opterr;
  375. extern int      optind;
  376. void      qsort(void*, size_t, size_t, auto int (*ptf)(void*,void*));
  377. int       rand(void);
  378. void*     realloc(void*, size_t);
  379. int       setkey(const char*);
  380. int       srand(unsigned int);
  381. double    strtod(const char*, char**);
  382. long      strtol(const char*, char**, int);
  383. unsigned long stroul(const char**, int);
  384. int       system(const char*);
  385.  
  386. long      random(void);
  387. void      srandom(int);
  388. char*     setstate(char*);
  389. char*     initstate(unsigned, char*, int);
  390.  
  391. double    drand48(void);
  392. void      lcong48(short*);
  393. long      jrand48(short*);
  394. long      lrand48(void);
  395. long      mrand48(void);
  396. long      nrand48(short*);
  397. short*    seed48(short*);
  398. void      srand48(long);
  399.  
  400. char*     ctermid(char*);
  401. char*     cuserid(char*);
  402. char*     tempnam(const char*, const char*);
  403. char*     tmpnam(char*);
  404.  
  405. }
  406.  
  407. # 25 "/usr/local/lib/g++-include/std.h" 2 3
  408.  
  409. # 1 "/usr/local/lib/g++-include/string.h" 1 3
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424. extern "C" {
  425.  
  426. char*     strcat(char*, const char*);
  427. char*     strchr(const char*, int);
  428. int       strcmp(const char*, const char*);
  429. int       strcoll(const char*, const char*);
  430. char*     strcpy(char*, const char*);
  431. _G_size_t     strcspn(const char*, const char*);
  432. char*     strdup(const char*);
  433.  
  434.  
  435.  
  436.  
  437. _G_size_t     strlen(const char*);
  438. char*     strncat(char*, const char*, _G_size_t );
  439. int       strncmp(const char*, const char*, _G_size_t );
  440. char*     strncpy(char*, const char*, _G_size_t );
  441. char*     strpbrk(const char*, const char*);
  442. char*     strrchr(const char*, int);
  443. _G_size_t     strspn(const char*, const char*);
  444. char*     strstr(const char*, const char *);
  445. char*     strtok(char*, const char*);
  446. _G_size_t     strxfrm(char*, const char*, _G_size_t );
  447.  
  448. char*     index(const char*, int);
  449. char*     rindex(const char*, int);
  450. }
  451.  
  452. # 1 "/usr/local/lib/g++-include/memory.h" 1 3
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460. extern "C" {
  461.  
  462. void*     memalign (...) ;
  463. void*     memccpy (...) ;
  464. void*     memchr (...) ;
  465. int       memcmp (...) ;
  466. void*     memcpy (...) ;
  467. void*     memmove (...) ;
  468. void*     memset (...) ;
  469. int       ffs (...) ;
  470.  
  471.  
  472.  
  473. _G_size_t    getpagesize (...) ;
  474.  
  475. void*     valloc (...) ;
  476.  
  477. void      bcopy (...) ;
  478. int       bcmp (...) ;
  479. void      bzero (...) ;
  480. }
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495. # 43 "/usr/local/lib/g++-include/string.h" 2 3
  496.  
  497.  
  498.  
  499. # 26 "/usr/local/lib/g++-include/std.h" 2 3
  500.  
  501.  
  502. # 1 "/usr/local/lib/g++-include/unistd.h" 1 3
  503.  
  504.  
  505.  
  506.  
  507.  
  508. extern "C" {
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/unistd.h" 1 3
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542. #pragma comment(exestr, "@(#) unistd.h 7.1 91/08/14 ")
  543.  
  544.  
  545.  
  546.  
  547. # 1 "/usr/local/lib/g++-include/sys/types.h" 1 3
  548.  
  549.  
  550. extern "C"
  551. {
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/sys/types.h" 1 3
  563.  
  564.  
  565.  
  566. #pragma comment(exestr, "@(#) types.h 23.14 91/11/23 ")
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610. typedef    struct { int r[1]; } *physadr;
  611. typedef    long        daddr_t;     
  612. typedef    char *        caddr_t;     
  613.  
  614.  
  615.  
  616.  
  617. typedef    unsigned char    unchar;
  618. typedef unsigned char   u_char;
  619. typedef unsigned char    uchar_t;
  620.  
  621. typedef    unsigned short    ushort;
  622. typedef unsigned short  u_short;
  623.  
  624. typedef    unsigned int    uint;
  625. typedef unsigned int    u_int;
  626.  
  627. typedef    unsigned long    ulong;
  628. typedef unsigned long   u_long;
  629. typedef unsigned long    ulong_t;
  630.  
  631.  
  632.  
  633.  
  634.  
  635. typedef    unsigned short        ino_t;         
  636.  
  637.  
  638.  
  639.     typedef short        cnt_t;         
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.     typedef    long        time_t;         
  648.  
  649.  
  650.  
  651. typedef    int        label_t[6];
  652.  
  653.  
  654. typedef unsigned short    mode_t;
  655. typedef short        nlink_t;
  656. typedef    short        dev_t;         
  657. typedef    long        off_t;         
  658.  
  659.  
  660. typedef    unsigned long    paddr_t;     
  661. typedef unsigned short    mloc_t;         
  662.  
  663.  
  664.  
  665. typedef    long        key_t;         
  666.  
  667.  
  668.  
  669. typedef int        pfn_t;
  670. typedef    unsigned short    use_t;         
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.     typedef    char *        faddr_t;
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687. struct saddr {
  688.     unsigned short    sa_seg;
  689.     long            sa_off;
  690. };
  691.  
  692. typedef    short        sysid_t;
  693. typedef    short        index_t;
  694. typedef    short        lock_t;         
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706. typedef ushort        sel_t;         
  707.  
  708.  
  709.  
  710.  
  711.  
  712.     typedef    long    clock_t;     
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.     typedef long    fpos_t;     
  724.  
  725.  
  726.  
  727.  
  728.     typedef    int    sig_atomic_t;     
  729.  
  730.  
  731.  
  732.  
  733.     typedef    struct {
  734.         int    quot;
  735.         int    rem;
  736.     } div_t;
  737.  
  738.  
  739.  
  740.  
  741. typedef    struct {
  742.     long    quot;
  743.     long    rem;
  744. } ldiv_t;
  745.  
  746.  
  747.  
  748.  
  749. typedef unsigned short    uid_t;
  750. typedef unsigned short    gid_t;
  751.  
  752. typedef short    pid_t;                   
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771. typedef long    fd_mask;
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778. typedef    struct fd_set {
  779.     fd_mask    fds_bits[(((150 )+(( (sizeof(fd_mask) * 8        )    )-1))/( (sizeof(fd_mask) * 8        )    )) ];
  780. } fd_set;
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.                              
  788. typedef unsigned long    mask_t;         
  789. typedef mask_t        priv_t;         
  790.                              
  791.  
  792.  
  793.  
  794. # 15 "/usr/local/lib/g++-include/sys/types.h" 2 3
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801. }
  802.  
  803.  
  804.  
  805.  
  806. # 20 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/unistd.h" 2 3
  807.  
  808. # 1 "/usr/include/sys/unistd.h" 1 3
  809.  
  810.  
  811.  
  812. #pragma comment(exestr, "@(#) unistd.h 23.6 91/10/01 ")
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.   
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918. # 21 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/unistd.h" 2 3
  919.  
  920.  
  921. # 31 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/unistd.h" 3
  922.  
  923.  
  924. # 82 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/unistd.h" 3
  925.  
  926.  
  927.  
  928. extern "C" {
  929. extern int utime(const char *, struct utimbuf *);  
  930.  
  931.  
  932. extern int        __hide_chown (const char *, uid_t, gid_t);
  933. extern pid_t      fork(void);
  934. extern gid_t      getegid(void);
  935. extern uid_t      geteuid(void);
  936. extern gid_t      getgid(void);
  937. extern int        getgroups(int, gid_t *);
  938. extern pid_t      getpgrp(void);
  939. extern pid_t      getpid(void);
  940. extern pid_t      getppid(void);
  941. extern uid_t      getuid(void);
  942. extern off_t      lseek(int, off_t, int);
  943. extern int        __hide_setgid (gid_t);
  944. extern int        setpgid(pid_t, pid_t);
  945. extern pid_t      setsid(void);
  946. extern int        __hide_setuid (uid_t);
  947. extern pid_t      tcgetpgrp(int);
  948. extern int        tcsetpgrp(int, pid_t);
  949. extern char*        getcwd(char *, int);
  950. extern char*        getlogin(void);
  951. extern char*        ttyname(int);
  952. extern void         _exit(int);
  953. extern int          access(const char *, int);
  954. extern unsigned int alarm(unsigned int);
  955. extern int          chdir(const char *);
  956. extern int          close(int);
  957. extern char*        ctermid(char *);
  958. extern char*        cuserid(char *);
  959. extern int          dup(int);
  960. extern int          dup2(int, int);
  961. extern int          __hide_execl (const char *, const char *, ...);
  962. extern int          __hide_execle (const char *, const char *, ...);
  963. extern int          __hide_execlp (const char *, const char *, ...);
  964. extern int          execv(const char *, const char *[]);
  965. extern int          execve(const char *, const char * [], const char * []);
  966. extern int          execvp(const char *, const char * []);
  967. extern long         fpathconf(int, int);
  968. extern int          isatty(int);
  969. extern int          link(const char *, const char *);
  970. extern long         pathconf(const char *, int);
  971. extern int          pause(void);
  972. extern int          pipe(int *);
  973. extern int          read(int, void *, unsigned int);
  974. extern int          rename(const char *, const char *);
  975. extern int          rmdir(const char *);
  976. extern unsigned int sleep(unsigned int);
  977. extern long         sysconf(int);
  978. extern int          unlink(const char *);
  979. extern int          write(int, const void *, unsigned int);
  980.  
  981.  
  982. };
  983.  
  984.  
  985.  
  986.  
  987.  
  988. # 25 "/usr/local/lib/g++-include/unistd.h" 2 3
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004. # 59 "/usr/local/lib/g++-include/unistd.h" 3
  1005.  
  1006.  
  1007.  
  1008. extern void volatile _exit(int);
  1009.  
  1010.  
  1011.  
  1012.  
  1013. extern unsigned alarm (...) ;
  1014. extern int      brk (...) ;
  1015. extern int      chdir (...) ;
  1016. extern int      chmod  (...) ;
  1017. extern int      chown (const char*, _G_uid_t, _G_gid_t);
  1018. extern int      close (...) ;
  1019. extern char*    crypt (...) ;
  1020. extern int      dup (...) ;
  1021. extern int      dup2 (...) ;
  1022. extern void    encrypt (...) ;
  1023. extern int      execl (const char*, const char *, ...);
  1024. extern int      execle (const char*, const char *, ...);
  1025. extern int      execlp (const char*, const char*, ...);
  1026. extern int      exect (...) ;
  1027. extern int      execv (...) ;
  1028. extern int      execve (...) ;
  1029. extern int      execvp (...) ;
  1030. extern int      fchown (int, _G_uid_t, _G_gid_t);
  1031. extern _G_pid_t fork (...) ;
  1032. extern int      fsync (...) ;
  1033. extern int      ftruncate (...) ;
  1034. extern char*    getcwd (...) ;
  1035. extern int      getdomainname (...) ;
  1036. extern int      getdtablesize (...) ;
  1037. extern int      getgroups (...) ;
  1038. extern _G_uid_t geteuid (...) ;
  1039. extern _G_gid_t getegid (...) ;
  1040. extern _G_gid_t getgid (...) ;
  1041. extern long     gethostid (...) ;
  1042. extern int      gethostname (...) ;
  1043. extern _G_pid_t getpgrp (...) ;
  1044. extern _G_pid_t getpid (...) ;
  1045. extern _G_pid_t getppid (...) ;
  1046. extern char*    getlogin (...) ;
  1047. extern char*    getpass (...) ;
  1048. extern _G_uid_t getuid (...) ;
  1049. extern int      ioctl (int, int, ... );
  1050. extern int      isatty (...) ;
  1051. extern int      link (...) ;
  1052. extern int      mkstemp (...) ;
  1053. extern char*    mktemp (...) ;
  1054. extern int      nice (...) ;
  1055. extern int      pause (...) ;
  1056. extern int      pipe (...) ;
  1057. extern int      readlink (...) ;
  1058. extern int      rename (...) ;
  1059. extern int      rmdir (...) ; 
  1060.  
  1061.  
  1062.  
  1063. extern void*    sbrk (...) ; 
  1064.  
  1065. extern int      syscall (...) ;
  1066. extern int      setgid (_G_gid_t);
  1067. extern int      sethostname (...) ;
  1068.  
  1069.  
  1070.  
  1071.  
  1072. extern _G_pid_t setpgrp (...) ;
  1073.  
  1074. extern int      setregid (...) ;
  1075. extern int      setreuid (...) ;
  1076. extern int      setuid (_G_uid_t);
  1077. extern unsigned sleep (...) ;
  1078. extern void     swab (...) ;
  1079. extern int      symlink (...) ;
  1080. extern long     sysconf (...) ;
  1081. extern int      truncate (...) ;
  1082. extern char*    ttyname (...) ;
  1083. extern int      ttyslot (...) ;
  1084.  
  1085. extern int      unlink (...) ;
  1086. extern _G_pid_t vfork (...) ;
  1087. extern int      vadvise (...) ;
  1088. extern int      vhangup (...) ;
  1089. extern _G_off_t lseek (...) ;
  1090. extern _G_ssize_t read (...) ;
  1091. extern _G_ssize_t write (...) ;
  1092. extern int      access (...) ;
  1093.  
  1094. extern int      flock (...) ;
  1095.  
  1096.  
  1097. }
  1098.  
  1099.  
  1100. # 28 "/usr/local/lib/g++-include/std.h" 2 3
  1101.  
  1102. # 1 "/usr/local/lib/g++-include/stdio.h" 1 3
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123. #pragma interface
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137. extern "C" {
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stdio.h" 1 3
  1172.  
  1173. # 1 "/usr/local/lib/g++-include/stdarg.h" 1 3
  1174. extern "C" {
  1175. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stdarg.h" 1 3
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221. typedef char *__gnuc_va_list;
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229. # 85 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stdarg.h" 3
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240. # 137 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stdarg.h" 3
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246. # 2 "/usr/local/lib/g++-include/stdarg.h" 2 3
  1247.  
  1248. }
  1249. # 2 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stdio.h" 2 3
  1250.  
  1251.  
  1252.  
  1253. #pragma comment(exestr, "@(#) stdio.h 7.5 91/10/24 ")
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283. #pragma comment(exestr, "@(#) stdio.h 7.1 91/08/14 ")
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/limits.h" 1 3
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/limits.h" 1 3
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309. # 99 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/limits.h" 3
  1310.  
  1311. # 11 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/limits.h" 2 3
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401. # 44 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stdio.h" 2 3
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.         
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430. typedef   char         *__va_list__;
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465. typedef struct {
  1466.  
  1467.     int            __cnt;
  1468.     unsigned char   *__ptr;
  1469.  
  1470.  
  1471.  
  1472.  
  1473.     unsigned char   *__base;
  1474.     char            __flag;
  1475.     char            __file;
  1476. } FILE;
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513. extern "C" {
  1514.  
  1515.  
  1516. # 229 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stdio.h" 3
  1517.  
  1518. extern   int            remove(const char *);
  1519. extern   int            rename(const char *, const char *);
  1520. extern   FILE           *tmpfile(void);
  1521. extern   char           *tmpnam(char *);
  1522. extern   int            fclose(FILE *);
  1523. extern   int            fflush(FILE *);
  1524. extern   FILE           *__hide_fopen (const char *, const char *);
  1525. extern   FILE           *__hide_freopen (const char *, const char *, FILE *);
  1526. extern   void           __hide_setbuf (FILE *, char *);
  1527. extern   int            __hide_setvbuf (FILE *, char *, int, _G_size_t );
  1528. extern   int            __hide_fprintf (FILE *, const char *, ...);
  1529. extern   int            __hide_fscanf (FILE *, const char *, ...); 
  1530. extern   int            __hide_printf (const char *, ...);
  1531. extern   int            __hide_scanf (const char *, ...);
  1532. extern   int            __hide_sprintf (char *, const char *, ...);
  1533. extern   int            __hide_sscanf (const char *, const char *, ...);
  1534.  
  1535. extern   int            __hide_vfprintf (FILE *, const char *, __va_list__);
  1536. extern   int            __hide_vprintf (const char *, __va_list__);
  1537. extern   int            __hide_vsprintf (char *, const char *, __va_list__);
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543. extern   int            fgetc(FILE *);
  1544. extern   char           *fgets(char *, int, FILE *);
  1545. extern   int            fputc(int, FILE *);
  1546. extern   int            __hide_fputs (const char *, FILE *);
  1547. extern   int            getc(FILE *);
  1548. extern   int            getchar(void);
  1549. extern   char           *gets(char *);
  1550. extern   int            putc(int, FILE *);
  1551. extern   int            putchar(int);
  1552. extern   int            __hide_puts (const char *);
  1553. extern   int            ungetc(int, FILE *);
  1554.  
  1555.  
  1556.  
  1557.  
  1558. extern   _G_size_t          __hide_fread (void *, _G_size_t , _G_size_t , FILE *);
  1559. extern   _G_size_t          __hide_fwrite (const void *, _G_size_t , _G_size_t , FILE *);
  1560.  
  1561. extern   int            fgetpos(FILE *, fpos_t *);
  1562. extern   int            fseek(FILE *, long int, int);
  1563. extern   int            fsetpos(FILE *, const fpos_t *);
  1564. extern   long           __hide_ftell (const FILE *);
  1565. extern   void           __hide_rewind (FILE *);
  1566. extern   void           clearerr(FILE *);
  1567. extern   int            feof(FILE *);
  1568. extern   int            ferror(FILE *);
  1569. extern   void           __hide_perror (const char *);
  1570.  
  1571. extern   int            unlink(const char *);
  1572. extern   int            _filbuf(FILE *);
  1573. extern   int            __hide__flsbuf (unsigned char, FILE *);
  1574. extern   char           *ctermid(char *);
  1575. extern   char           *cuserid(char *);
  1576. extern   int            system(const char *);
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598. extern   unsigned char  *    _bufendtab [];
  1599. extern   FILE           _iob [       60 ];
  1600.  
  1601.  
  1602. };
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615. # 1 "/usr/local/lib/g++-include/errno.h" 1 3
  1616.  
  1617.  
  1618. extern "C" {
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624. # 1 "/usr/include/errno.h" 1 3
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652. #pragma comment(exestr, "@(#) errno.h 6.1 91/06/06 ")
  1653.  
  1654.  
  1655.  
  1656.  
  1657. # 1 "/usr/include/sys/errno.h" 1 3
  1658.  
  1659.  
  1660.  
  1661. #pragma comment(exestr, "@(#) errno.h 23.4 91/05/03 ")
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692. # 76 "/usr/include/sys/errno.h" 3
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703. # 95 "/usr/include/sys/errno.h" 3
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711. # 133 "/usr/include/sys/errno.h" 3
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718. # 150 "/usr/include/sys/errno.h" 3
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725. # 211 "/usr/include/sys/errno.h" 3
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732. # 246 "/usr/include/sys/errno.h" 3
  1733.  
  1734.  
  1735.  
  1736. # 33 "/usr/include/errno.h" 2 3
  1737.  
  1738.  
  1739.  
  1740. extern "C" {
  1741.  
  1742.  
  1743. extern int errno;
  1744.  
  1745. # 49 "/usr/include/errno.h" 3
  1746.  
  1747.  
  1748.  
  1749. };
  1750.  
  1751.  
  1752.  
  1753. # 9 "/usr/local/lib/g++-include/errno.h" 2 3
  1754.  
  1755.  
  1756.  
  1757.  
  1758. extern char*    sys_errlist[];
  1759. extern int      sys_nerr;
  1760.  
  1761. extern int      errno;
  1762.  
  1763. void      __hide_perror (const char*);
  1764. char*     strerr(int);
  1765.  
  1766.  
  1767. }
  1768.  
  1769.  
  1770. # 327 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stdio.h" 2 3
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789. # 353 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/stdio.h" 3
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806. # 69 "/usr/local/lib/g++-include/stdio.h" 2 3
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846. }
  1847.  
  1848. extern "C" {
  1849.  
  1850. int    fclose(FILE*);
  1851. FILE*  fdopen(int, const char*);
  1852. int    fflush(FILE*);
  1853. int    fgetc(FILE*);
  1854. char*  fgets(char*, int, FILE *);
  1855. FILE*  fopen(const char*, const char*);
  1856. int    fprintf(FILE*, const char* ...);
  1857. int    fputc(int, FILE*);
  1858. int    fputs(const char*, FILE*);
  1859. _G_size_t  fread(void*, _G_size_t , _G_size_t , FILE*);
  1860.  
  1861.  
  1862.  
  1863. FILE*  freopen(const char*, const char*, FILE*);
  1864.  
  1865. int    fscanf(FILE*, const char* ...);
  1866. int    fseek(FILE*, long, int);
  1867. long   ftell(FILE *);
  1868. _G_size_t  fwrite(const void*, _G_size_t , _G_size_t , FILE*);
  1869. char*  gets(char*);
  1870. int    getw(FILE*);
  1871. int    pclose(FILE*);
  1872. void   perror(const char*);
  1873. FILE*  popen(const char*, const char*);
  1874. int    printf(const char* ...);
  1875. int    puts(const char*);
  1876. int    putw(int, FILE*);
  1877. int    rewind(FILE*);
  1878. int    scanf(const char* ...);
  1879. void   setbuf(FILE*, char*);
  1880. void   setbuffer(FILE*, char*, int);
  1881. int    setlinebuf(FILE*);
  1882. int    setvbuf(FILE*, char*, int, _G_size_t );
  1883. int    sscanf(char*, const char* ...);
  1884. FILE*  tmpfile();
  1885. int    ungetc(int, FILE*);
  1886. int    vfprintf (...) ;
  1887. int    vprintf (...) ;
  1888. int  sprintf (...) ;
  1889. int  vsprintf (...) ;
  1890.  
  1891. extern int _filbuf (...) ;
  1892. extern int _flsbuf (...) ;
  1893.  
  1894. }
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913. # 29 "/usr/local/lib/g++-include/std.h" 2 3
  1914.  
  1915.  
  1916. # 1 "/usr/local/lib/g++-include/fcntl.h" 1 3
  1917.  
  1918.  
  1919. extern "C" {
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/fcntl.h" 1 3
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956. #pragma comment(exestr, "@(#) fcntl.h 7.1 91/08/14 ")
  1957.  
  1958.  
  1959.  
  1960.  
  1961. # 1 "/usr/local/lib/g++-include/sys/fcntl.h" 1 3
  1962.  
  1963.  
  1964. extern "C"
  1965. {
  1966.  
  1967.  
  1968.  
  1969.  
  1970. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/sys/fcntl.h" 1 3
  1971.  
  1972.  
  1973.  
  1974. #pragma comment(exestr, "@(#) fcntl.h 23.8 91/10/15 ")
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099. struct flock {
  2100.     short    l_type;
  2101.     short    l_whence;
  2102.     off_t    l_start;
  2103.     off_t    l_len;         
  2104.  
  2105.  
  2106.  
  2107.  
  2108.     short   l_sysid;
  2109.  
  2110.     pid_t      l_pid;
  2111.  
  2112.  
  2113.  
  2114.  
  2115. };
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133. # 9 "/usr/local/lib/g++-include/sys/fcntl.h" 2 3
  2134.  
  2135.  
  2136.  
  2137. }
  2138.  
  2139.  
  2140.  
  2141. # 31 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/fcntl.h" 2 3
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154. extern "C" {
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160. extern int __hide_creat (const char *, unsigned short);
  2161.  
  2162. extern int __hide_fcntl (int, int, ...);
  2163.  
  2164.  
  2165.  
  2166. extern int  __hide_open (const char *, int, int mode = 0666);
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174. };
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188. # 14 "/usr/local/lib/g++-include/fcntl.h" 2 3
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197. int       fcntl(int, int, ...);
  2198. int      creat (...) ;
  2199.  
  2200. int       open (...) ;
  2201.  
  2202.  
  2203. }
  2204.  
  2205. # 31 "/usr/local/lib/g++-include/std.h" 2 3
  2206.  
  2207.  
  2208. extern "C" {
  2209. int strcasecmp (...) ;
  2210. }
  2211.  
  2212.  
  2213. # 24 "../vsxconf.cc" 2
  2214.  
  2215. # 1 "/usr/local/lib/g++-include/time.h" 1 3
  2216.  
  2217.  
  2218. extern "C" {
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246. # 44 "/usr/local/lib/g++-include/time.h" 3
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/time.h" 1 3
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278. #pragma comment(exestr, "@(#) time.h 7.2 91/08/14 ")
  2279.  
  2280.  
  2281.  
  2282.  
  2283. # 39 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/time.h" 3
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302. struct tm {                      
  2303.  int tm_sec;                     
  2304.  int tm_min;                     
  2305.  int tm_hour;                    
  2306.  int tm_mday;                    
  2307.  int tm_mon;                     
  2308.  int tm_year;                    
  2309.  int tm_wday;                    
  2310.  int tm_yday;                    
  2311.  int tm_isdst;                   
  2312.  
  2313.  long __tm_tzadj;                  
  2314.  
  2315.    char __tm_name[50 ];        
  2316.  
  2317.  
  2318.  
  2319.  
  2320.  
  2321. };
  2322.  
  2323. # 88 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/time.h" 3
  2324.  
  2325.  
  2326.  
  2327. extern "C" {
  2328.  
  2329.  
  2330. extern clock_t __hide_clock (void);
  2331. extern double __hide_difftime (time_t, time_t);
  2332. extern time_t __hide_mktime (struct tm *);
  2333. extern time_t __hide_time (time_t *);
  2334. extern char *__hide_asctime (const struct tm *);
  2335. extern char  *__hide_ctime (const time_t *);
  2336. extern struct tm *__hide_gmtime (const time_t *);
  2337. extern struct tm *__hide_localtime (const time_t *);
  2338. extern _G_size_t  __hide_strftime (char *, _G_size_t , const char *, const struct tm *);
  2339.  
  2340.  
  2341. };
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351. # 136 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/time.h" 3
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359. # 49 "/usr/local/lib/g++-include/time.h" 2 3
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382. extern char* asctime (...) ;
  2383. extern char* ctime (...) ;
  2384. double difftime (...) ;
  2385. extern struct tm* gmtime (...) ;
  2386. extern struct tm* localtime (...) ;
  2387. extern _G_time_t mktime(struct tm*);
  2388. extern _G_size_t strftime (...) ;
  2389. extern void tzset();
  2390. extern void tzsetwall();
  2391.  
  2392. extern int getitimer(int, struct itimerval*);
  2393. extern int setitimer (...) ;
  2394. extern int gettimeofday(struct timeval*, struct timezone*);
  2395. extern int settimeofday (...) ;
  2396. extern int stime (...) ;
  2397. extern int dysize(int);
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404. long      clock(void);
  2405.  
  2406. _G_time_t      time(_G_time_t*);
  2407. unsigned  ualarm(unsigned, unsigned);
  2408. unsigned  usleep(unsigned);
  2409. void      profil (...) ;
  2410.  
  2411.  
  2412. }
  2413.  
  2414. # 25 "../vsxconf.cc" 2
  2415.  
  2416.  
  2417. # 1 ".././inc/CurCU.h" 1
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452. class ControlUnit;
  2453. class Diu;
  2454. class Scu;
  2455. class sym_ent;
  2456. class CpuHw;
  2457. class SmIdent;
  2458. # 1 ".././inc/Fixup.h" 1
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511. # 1 ".././inc/Stamp.h" 1
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517. # 1 "./istring.h" 1
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531. # 1 "/usr/local/lib/g++-include/std.h" 1 3
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551. # 37 "/usr/local/lib/g++-include/std.h" 3
  2552.  
  2553. # 14 "./istring.h" 2
  2554.  
  2555. # 1 "/usr/local/lib/g++-include/stdio.h" 1 3
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574. # 174 "/usr/local/lib/g++-include/stdio.h" 3
  2575.  
  2576. # 15 "./istring.h" 2
  2577.  
  2578. # 1 "./istr_buf.h" 1
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600. class istr_buf
  2601. {
  2602.   unsigned int buf_len;
  2603.   void resize(unsigned int min);
  2604.  public:
  2605.   void *string;
  2606.   unsigned int len;
  2607.   istr_buf() { string = 0; len = 0, buf_len = 0; };
  2608.   void clear() { if (string) delete string; string = 0; len = 0; buf_len = 0; };
  2609.   ~istr_buf() { clear(); }
  2610.   void put(const void *p, unsigned int l, int offset = 0);
  2611. };
  2612.  
  2613. # 16 "./istring.h" 2
  2614.  
  2615.  
  2616. class istring : public istr_buf
  2617. {
  2618. public:
  2619.   istring();
  2620.   void puts() { ::fputs((char *)string,        (&_iob [2]) ); ::fputc('\n',        (&_iob [2]) );};
  2621.   operator char *() { return (char *)string; };
  2622.   operator const char *() { return (const char *)string; };
  2623.   istring & operator <<(const char *);
  2624.   istring & operator <<(const int );
  2625.   istring & operator <<(const unsigned int );
  2626.   istring & operator <<(const char );
  2627.   istring & operator <<(const void *);
  2628.   istring & operator <<(istring &p) { return *this << (char *)p.string; };
  2629. };
  2630.  
  2631. # 6 ".././inc/Stamp.h" 2
  2632.  
  2633. # 1 ".././inc/trace.h" 1
  2634.  
  2635.  
  2636.  
  2637.  
  2638. # 1 ".././inc/Object.h" 1
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651. class Object
  2652. {
  2653.   int j;       
  2654.                
  2655. public:
  2656.     int operator == (Object &x) { return this == &x; };
  2657. };
  2658.  
  2659. # 5 ".././inc/trace.h" 2
  2660.  
  2661.  
  2662. class trace
  2663. {
  2664. public:
  2665.  
  2666.     int con;  
  2667.     trace() { con = 0; };
  2668.  
  2669.  
  2670.  
  2671. };
  2672.  
  2673.  
  2674. # 1 "/usr/local/lib/g++-include/std.h" 1 3
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694. # 37 "/usr/local/lib/g++-include/std.h" 3
  2695.  
  2696. # 19 ".././inc/trace.h" 2
  2697.  
  2698.  
  2699. void trputs(int, char *);
  2700. extern int Trace_Indent;
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.  
  2715.  
  2716. # 46 ".././inc/trace.h"
  2717.  
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735. # 1 "./istring.h" 1
  2736.  
  2737.  
  2738. # 32 "./istring.h"
  2739.  
  2740. # 64 ".././inc/trace.h" 2
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751. # 7 ".././inc/Stamp.h" 2
  2752.  
  2753.  
  2754. class Stamp : public trace
  2755. {
  2756. public:
  2757.     const char *file;
  2758.     int line;
  2759.     Stamp();
  2760.     friend istring & operator << (istring &, const Stamp &);
  2761. };
  2762.  
  2763. # 53 ".././inc/Fixup.h" 2
  2764.  
  2765. # 1 "./List.h" 1
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903. # 1 "/usr/local/lib/g++-include/std.h" 1 3
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923. # 37 "/usr/local/lib/g++-include/std.h" 3
  2924.  
  2925. # 138 "./List.h" 2
  2926.  
  2927.  
  2928.  
  2929.  
  2930. class ListEnt
  2931. {
  2932. public:
  2933.     void  *car;
  2934.     ListEnt *cdr;
  2935.     ListEnt(void  *a) : car(a) { cdr = 0; };
  2936.     ListEnt(void  *a, ListEnt *d) : car(a), cdr(d) { } ;
  2937. };
  2938.  
  2939. class ListBase {
  2940. public:
  2941.     int len;
  2942. };
  2943.  
  2944. class List : public ListBase {
  2945. public:
  2946.     ListEnt *cdr;
  2947.     List() { cdr = 0; len = 0; };
  2948.     void  *& operator>>=(void  *);     
  2949.     void *& operator<<=(void  *p)     
  2950.     { cdr = new ListEnt (p, cdr);
  2951.       len++;
  2952.       return cdr->car;
  2953.     };
  2954.     void clear();             
  2955.     void *& operator [] (int);     
  2956.     List & operator = (List &l) {
  2957.       clear();
  2958.       cdr = l.cdr;
  2959.       len = l.len;
  2960.       return  *this;
  2961.     };
  2962.         ~List() { clear(); };
  2963. };
  2964.  
  2965.  
  2966.  
  2967. class ListIterator
  2968. {
  2969.     ListEnt *Iterator;
  2970. public:
  2971.     ListIterator(List &);
  2972.     void *& operator()();         
  2973.     int operator()(void *&);     
  2974.     void operator =(List &);     
  2975. };
  2976.  
  2977. class SpliceListIterator
  2978. {
  2979.     ListEnt *Iterator;
  2980.     ListEnt **splice_before;
  2981.     ListEnt **splice_after;
  2982.     List *list;
  2983. public:
  2984.     SpliceListIterator(List &l);
  2985.     void operator = (List &l);         
  2986.     void operator >>= (void *p);     
  2987.     void operator <<= (void *p);     
  2988.     int operator () (void *&);         
  2989.     void *& operator ()();         
  2990.     void operator ! ();             
  2991. };
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997. # 248 "./List.h"
  2998.  
  2999.  
  3000. # 262 "./List.h"
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012. # 297 "./List.h"
  3013.  
  3014.  
  3015.  
  3016. # 54 ".././inc/Fixup.h" 2
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025. class Cdecl;
  3026. class baseCdecl;
  3027. class sym_ent;
  3028.  
  3029.  
  3030. class Fixer
  3031. {
  3032. private:
  3033. protected:
  3034. public:
  3035.     Stamp stamp;
  3036.     Fixer();
  3037.     virtual void callback();
  3038. };
  3039.  
  3040. class Fixup : public Stamp
  3041. {
  3042. private:
  3043. protected:
  3044.     sym_ent *sy;         
  3045.     void **where;          
  3046.     char *type;          
  3047.     Fixer *who;          
  3048. public:
  3049.     Fixup(sym_ent *s, char *t, void **w, Fixer *wh = 0);
  3050.     friend istring & operator << (istring &, Fixup &);
  3051.     void fixit();         
  3052.     void callit();       
  3053. };
  3054.  
  3055. class FixupList : public List {public:    FixupList () : List() {};
  3056.     FixupList & operator =(List &l) { *(List *)this = l; return *this; };
  3057.     Fixup *& operator[](int i) { return *(Fixup **)&((*(List*)this)[i]); }; };
  3058. class FixupListIterator : public ListIterator {public:    FixupListIterator ( FixupList &l) : ListIterator(l) {};
  3059.     Fixup *& operator()() { return *(Fixup **)&((*(ListIterator *)this)()); };
  3060.     int operator()(Fixup *&p) { return (*(ListIterator *)this)(*( void **)&p); };
  3061.     void operator =(FixupList &l) { *(ListIterator *)this = *(List *)&l; };};
  3062. class FixupSpliceListIterator : public SpliceListIterator {public:    FixupSpliceListIterator ( FixupList &l) : SpliceListIterator(l) {};
  3063.     Fixup *& operator()() { return *(Fixup **)&((*(SpliceListIterator *)this)()); };
  3064.     int operator()(Fixup *&p) { return (*(SpliceListIterator *)this)(*(void **)&p); };
  3065.     void operator =(FixupList &l) { *(SpliceListIterator *)this = *(List *)&l; };
  3066. }  ;
  3067.  
  3068. void FixList(List &, sym_ent *, char*);
  3069.  
  3070.  
  3071.  
  3072. # 41 ".././inc/CurCU.h" 2
  3073.  
  3074.  
  3075. class CurCU {
  3076.  private:
  3077.   ControlUnit *cu;
  3078.  protected:
  3079.   FixupList      fixups;        
  3080.                                 
  3081.   void doFixups();              
  3082.  public:
  3083.   CurCU();
  3084.  
  3085.   int parsing() { return (int)cu; }      
  3086.   int isDiu();
  3087.   int isScu();
  3088.  
  3089.   ControlUnit * Cu();                    
  3090.   Diu * getDiu();                        
  3091.   Scu * getScu();                        
  3092.  
  3093.   void newCu(sym_ent *Nam, CpuHw *Hw, int Type, SmIdent *smid);
  3094.                      
  3095.   void makeDiu(sym_ent *Nam, CpuHw *Hw, SmIdent *smid); 
  3096.   void makeScu(sym_ent *Nam, CpuHw *Hw, SmIdent *smid); 
  3097.  
  3098.   ~CurCU() {}
  3099.  
  3100.   void doCurCU();                        
  3101.  
  3102.   friend void operator >>= (CurCU &, Fixup *);
  3103. };
  3104.  
  3105. extern CurCU * ccu;
  3106.  
  3107.  
  3108. # 27 "../vsxconf.cc" 2
  3109.  
  3110. # 1 ".././inc/Hardware.h" 1
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150. # 1 "./istring.h" 1
  3151.  
  3152.  
  3153. # 32 "./istring.h"
  3154.  
  3155. # 40 ".././inc/Hardware.h" 2
  3156.  
  3157. # 1 ".././inc/Port.h" 1
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.  
  3195. # 1 ".././inc/Fixup.h" 1
  3196.  
  3197.  
  3198.  
  3199.  
  3200.  
  3201.  
  3202.  
  3203.  
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.  
  3242.  
  3243.  
  3244.  
  3245.  
  3246. # 96 ".././inc/Fixup.h"
  3247.  
  3248.  
  3249. # 38 ".././inc/Port.h" 2
  3250.  
  3251. # 1 ".././inc/Index.h" 1
  3252.  
  3253.  
  3254.  
  3255.  
  3256.  
  3257.  
  3258.  
  3259.  
  3260.  
  3261.  
  3262.  
  3263.  
  3264.  
  3265.  
  3266.  
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290. # 1 "./istring.h" 1
  3291.  
  3292.  
  3293. # 32 "./istring.h"
  3294.  
  3295. # 39 ".././inc/Index.h" 2
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307. class Index
  3308. {
  3309.     int val;
  3310. public:
  3311.     Index(int);
  3312.  
  3313.     Index(const Index &i) : val(i.val) {};
  3314.  
  3315.     Index() : val(0) {};
  3316.     operator int() const { return val; };
  3317.     Index & operator ++()  { val++; return * this; };
  3318.     Index & operator = (int i) { val = i; return * this; };
  3319.     friend istring & operator <<(istring &s, const Index &i)
  3320.     { s << i.val + 1; return s; };
  3321. };
  3322.  
  3323.  
  3324. # 39 ".././inc/Port.h" 2
  3325.  
  3326. class Card;
  3327. class Dsac;
  3328. class Sac;
  3329. class sym_ent;
  3330. class Service;
  3331. class ser_cars;
  3332.  
  3333. enum PortUserType { _Illegal,
  3334.             _Line, _Connect, _Ded,
  3335.             _Mouse_In, _Mouse_Out, _Miu, _Pcu };
  3336.  
  3337.  
  3338. enum multproto {
  3339.   NONE,
  3340.   RMJ,
  3341.   MABON
  3342. };
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353. class Port : public Fixer
  3354. {
  3355. private:
  3356.   void  con_sub();                        
  3357.   static PortUserType CurUse;             
  3358.                                           
  3359.   static ser_cars *CurSC;                 
  3360.                                           
  3361. protected:
  3362.   Card *card;                             
  3363.   Index ssbd_index;                       
  3364.   int   vsx_addr;                         
  3365.   PortUserType t;                         
  3366.   ser_cars *SerCars;                      
  3367.   int   comi_indx;                        
  3368.                                           
  3369.   virtual void PortName(istring &);       
  3370.                                           
  3371. public:
  3372.   Port(sym_ent*, int);                    
  3373.                                           
  3374.   Port(int);                              
  3375.                                           
  3376.   Port(Port &);                           
  3377.   virtual ~Port() {}
  3378.   void callback();                        
  3379.                                           
  3380.                                           
  3381.  
  3382.  
  3383.   static void setCurUse(PortUserType T);
  3384.   static PortUserType getCurUse();
  3385.   static ser_cars * getCurSerC();
  3386.  
  3387.   int getAddr();                          
  3388.   int isSwitchingLine(Service *s);        
  3389.   int setVideoPortUsed();                 
  3390.   const char *getCardName();              
  3391.   int getCardType();                      
  3392.   int onSwitchCard();                     
  3393.   Dsac * getDsacCard();                   
  3394.   Sac  * getSacCard();                    
  3395.   int getCardAddr();                      
  3396.   Index getSSBDIndex();                   
  3397.   PortUserType getUserType();             
  3398.   int getComiIndx() { return comi_indx; }
  3399.   ser_cars * getSerC() { return SerCars; }
  3400.   virtual multproto getProtocol();        
  3401.   virtual int getStation();               
  3402.                                           
  3403.   friend istring & operator << (istring &, Port &);
  3404.   
  3405. };
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414. class PortList : public List {public:    PortList () : List() {};
  3415.     PortList & operator =(List &l) { *(List *)this = l; return *this; };
  3416.     Port *& operator[](int i) { return *(Port **)&((*(List*)this)[i]); }; };
  3417. class PortListIterator : public ListIterator {public:    PortListIterator ( PortList &l) : ListIterator(l) {};
  3418.     Port *& operator()() { return *(Port **)&((*(ListIterator *)this)()); };
  3419.     int operator()(Port *&p) { return (*(ListIterator *)this)(*( void **)&p); };
  3420.     void operator =(PortList &l) { *(ListIterator *)this = *(List *)&l; };};
  3421. class PortSpliceListIterator : public SpliceListIterator {public:    PortSpliceListIterator ( PortList &l) : SpliceListIterator(l) {};
  3422.     Port *& operator()() { return *(Port **)&((*(SpliceListIterator *)this)()); };
  3423.     int operator()(Port *&p) { return (*(SpliceListIterator *)this)(*(void **)&p);
  3424.  };
  3425.     void operator =(PortList &l) { *(SpliceListIterator *)this = *(List *)&l; };}  ;
  3426.  
  3427. class MultiPort;
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435. class MultiPortList : public List {public:    MultiPortList () : List() {};
  3436.     MultiPortList & operator =(List &l) { *(List *)this = l; return *this; };
  3437.     MultiPort *& operator[](int i) { return *(MultiPort **)&((*(List*)this)[i]); }; };
  3438. class MultiPortListIterator : public ListIterator {public:    MultiPortListIterator ( MultiPortList &l) : ListIterator(l) {};
  3439.     MultiPort *& operator()() { return *(MultiPort **)&((*(ListIterator *)this)()); };
  3440.     int operator()(MultiPort *&p) { return (*(ListIterator *)this)(*( void **)&p); };
  3441.     void operator =(MultiPortList &l) { *(ListIterator *)this = *(List *)&l; };};
  3442. class MultiPortSpliceListIterator : public SpliceListIterator {public:    MultiPortSpliceListIterator ( MultiPortList &l) : SpliceListIterator(l) {};
  3443.     MultiPort *& operator()() { return *(MultiPort **)&((*(SpliceListIterator *)this)()); };
  3444.     int operator()(MultiPort *&p) { return (*(SpliceListIterator *)this)(*(void **)&p); };
  3445.     void operator =(MultiPortList &l) { *(SpliceListIterator *)this = *(List *)&l; };}  ;
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456. class MultiPort : public Port
  3457. {
  3458. private:
  3459.   static MultiPortList * mps;            
  3460.                                          
  3461.                                          
  3462.                                          
  3463.  
  3464.   Index station;                         
  3465.   multproto protocol;                    
  3466.   int p_p_addr;                          
  3467. protected:
  3468. public:
  3469.   static void initMultiPorts();           
  3470.   static void gvalidMultiPorts();         
  3471.                                           
  3472.                                           
  3473.   MultiPort(multproto p, sym_ent *s, int port, int stat);
  3474.  
  3475.   void callback();                        
  3476.                                           
  3477.  
  3478.   virtual multproto getProtocol() { return protocol; }
  3479.   virtual int getStation() { return station; }
  3480.  
  3481.   ~MultiPort() {};
  3482. };
  3483.  
  3484. class mpCheck
  3485. {
  3486. private:
  3487.   int bca;              
  3488.   int numlog;           
  3489.   MultiPort * as[16];   
  3490.                         
  3491.                         
  3492. public:
  3493.   mpCheck(int b);
  3494.   int getBCA() { return bca; }
  3495.   void setStation(MultiPort * mp, int s, int pp);
  3496.   ~mpCheck();
  3497.  
  3498.   friend class MultiPort;
  3499. };
  3500.  
  3501. class mpCheckList : public List {public:    mpCheckList () : List() {};
  3502.     mpCheckList & operator =(List &l) { *(List *)this = l; return *this; };
  3503.     mpCheck *& operator[](int i) { return *(mpCheck **)&((*(List*)this)[i]); };
  3504.  friend mpCheck * operator >> (mpCheckList &, int);  
  3505. };
  3506. class mpCheckListIterator : public ListIterator {public:
  3507.     mpCheckListIterator ( mpCheckList &l) : ListIterator(l) {};
  3508.     mpCheck *& operator()() { return *(mpCheck **)&((*(ListIterator *)this)()); };
  3509.     int operator()(mpCheck *&p) { return (*(ListIterator *)this)(*( void **)&p); };
  3510.     void operator =(mpCheckList &l) { *(ListIterator *)this = *(List *)&l; };};
  3511. class mpCheckSpliceListIterator : public SpliceListIterator {public:
  3512.     mpCheckSpliceListIterator ( mpCheckList &l) : SpliceListIterator(l) {};
  3513.     mpCheck *& operator()() { return *(mpCheck **)&((*(SpliceListIterator *)this)()); };
  3514.     int operator()(mpCheck *&p) { return (*(SpliceListIterator *)this)(*(void **)&p); };
  3515.     void operator =(mpCheckList &l) { *(SpliceListIterator *)this = *(List *)&l; };} ;
  3516.  
  3517.  
  3518.  
  3519.  
  3520.  
  3521.  
  3522.  
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529. class PortMap
  3530. {
  3531. private:
  3532. protected:
  3533. public:
  3534.   PortMap();
  3535.   virtual void doPortMap() = 0;           
  3536.   virtual ~PortMap() {}
  3537. };
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545.  
  3546.  
  3547. class PortMapList : public List {public:    PortMapList () : List() {};
  3548.     PortMapList & operator =(List &l) { *(List *)this = l; return *this; };
  3549.     PortMap *& operator[](int i) { return *(PortMap **)&((*(List*)this)[i]); }; };
  3550. class PortMapListIterator : public ListIterator {public:    PortMapListIterator ( PortMapList &l) : ListIterator(l) {};
  3551.     PortMap *& operator()() { return *(PortMap **)&((*(ListIterator *)this)()); };
  3552.     int operator()(PortMap *&p) { return (*(ListIterator *)this)(*( void **)&p); };
  3553.     void operator =(PortMapList &l) { *(ListIterator *)this = *(List *)&l; };};
  3554. class PortMapSpliceListIterator : public SpliceListIterator {public:    PortMapSpliceListIterator ( PortMapList &l) : SpliceListIterator(l) {};
  3555.     PortMap *& operator()() { return *(PortMap **)&((*(SpliceListIterator *)this)()); };
  3556.     int operator()(PortMap *&p) { return (*(SpliceListIterator *)this)(*(void **)&p); };
  3557.     void operator =(PortMapList &l) { *(SpliceListIterator *)this = *(List *)&l; };}  ;
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.  
  3573. class ServerPort : public Port, virtual public PortMap
  3574. {
  3575. private:
  3576. protected:
  3577. public:
  3578.   ServerPort();
  3579.   ~ServerPort() {};
  3580. };
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589. class TtyPort : virtual public ServerPort
  3590. {
  3591. private:
  3592.   istring *tty;          
  3593. protected:
  3594. public:
  3595.   TtyPort(istring *ttyn);
  3596.   ~TtyPort() {};
  3597.   virtual void PortName(istring &);          
  3598.   void doPortMap();                          
  3599. };
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610. class NetPort : virtual public ServerPort
  3611. {
  3612. private:
  3613.   char *netaddrs;      
  3614.   int   sckt;          
  3615.   int   sess;          
  3616. protected:
  3617. public:
  3618.   NetPort(char *neta, int sk, int se);
  3619.   ~NetPort();
  3620.   virtual void PortName(istring &);        
  3621.   void doPortMap();                        
  3622. };
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633. class DcuPort : virtual public PortMap
  3634. {
  3635. private:
  3636.   istring *tty;          
  3637. protected:
  3638. public:
  3639.   DcuPort(istring *ttyn);
  3640.   ~DcuPort() {};
  3641.   void doPortMap();                          
  3642. };
  3643.  
  3644.  
  3645.  
  3646. # 41 ".././inc/Hardware.h" 2
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657. enum CpuType{
  3658.   I8086,             
  3659.   I80286,            
  3660.   UHOST              
  3661. };
  3662.  
  3663. enum RamSize {
  3664.   RAM256K,
  3665.   RAM512K,
  3666.   RAM1M,
  3667.   URAM
  3668. };
  3669.  
  3670. enum HramSize {
  3671.   NOHRAM,
  3672.   HRAM2M,
  3673.   HRAM4M,
  3674.   UFILE
  3675. };
  3676.     
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687. class CpuHw {
  3688. private:
  3689.   static int rev;          
  3690.   static int rel;          
  3691.   static int iss;          
  3692.   static char *vs;         
  3693.   static int getvd(char **);
  3694.  
  3695.   CpuType  Cpu;
  3696.   RamSize  Ram;
  3697.   HramSize Hram;
  3698. protected:
  3699. public:
  3700.   CpuHw(CpuType c, RamSize r, HramSize h);       
  3701.   CpuHw();                                       
  3702.   ~CpuHw() {}
  3703.  
  3704.   static void setVsxRel(char *rs);   
  3705.   static int  postVsxRel(int rel);   
  3706.  
  3707.   int atleastV6();                   
  3708.   int atleast512K();                 
  3709.   int hasHram();                     
  3710.   int isUnixHost();                  
  3711.  
  3712.   istring & prntHw(istring &s);
  3713.  
  3714.   friend istring & operator << (istring &s, CpuHw  &c) 
  3715.       { c.prntHw(s); return s; };
  3716. };
  3717.  
  3718. extern void syntax();
  3719. class SmConnect;
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730. class SmIdent
  3731. {
  3732. private:
  3733.   int  port;         
  3734.   char *na;          
  3735. protected:
  3736. public:
  3737.   SmIdent(int ttyp);
  3738.   SmIdent(char *neta, int tsp);
  3739.   void validate(CpuHw *);                  
  3740.   ~SmIdent();
  3741.   friend class SmConnect;
  3742. };
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753. class SmConnect : virtual public PortMap
  3754. {
  3755. private:
  3756.   int  sckt;         
  3757.   int  ses;          
  3758.   char *na;          
  3759. protected:
  3760. public:
  3761.   SmConnect();
  3762.   void setSmCon(char *neta, int so, int se);
  3763.   void doPortMap();                        
  3764.   ~SmConnect();
  3765. };
  3766.  
  3767.  
  3768.  
  3769. # 28 "../vsxconf.cc" 2
  3770.  
  3771.  
  3772.  
  3773. # 1 ".././inc/Error.h" 1
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779. extern int errors;
  3780. extern int error_limit;
  3781. extern void Error();
  3782.  
  3783. # 1 "./except.h" 1
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.  
  3836.  
  3837.  
  3838.  
  3839.  
  3840.  
  3841.  
  3842.  
  3843.  
  3844.  
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860. # 1 "/usr/local/lib/g++-include/setjmp.h" 1
  3861.  
  3862.  
  3863. extern "C" {
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875. # 1 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/setjmp.h" 1 3
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901. #pragma comment(exestr, "@(#) setjmp.h 7.1 91/08/14 ")
  3902.  
  3903.  
  3904.  
  3905.  
  3906.  
  3907.  
  3908.  
  3909.  
  3910.  
  3911.  
  3912.  
  3913.  
  3914.  
  3915.  
  3916.  
  3917.  
  3918.  
  3919.  
  3920.  
  3921.  
  3922.  
  3923.  
  3924.  
  3925.  
  3926.  
  3927.  
  3928.  
  3929.  
  3930.  
  3931.  
  3932.  
  3933.  
  3934.  
  3935.  
  3936.  
  3937.  
  3938.  
  3939.  
  3940.  
  3941.  
  3942.  
  3943.  
  3944.  
  3945.  
  3946.  
  3947.  
  3948.  
  3949.  
  3950.  
  3951.  
  3952.  
  3953.  
  3954.  
  3955.  
  3956.  
  3957. # 95 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/setjmp.h" 3
  3958.  
  3959.  
  3960. typedef int jmp_buf[6 ];
  3961.  
  3962.  
  3963.  
  3964.  
  3965.  
  3966.  
  3967.  
  3968. extern "C" {
  3969.  
  3970.  
  3971. extern int  C_header_setjmp (jmp_buf);
  3972. extern void C_header_longjmp (jmp_buf, int);
  3973.  
  3974.  
  3975. };
  3976.  
  3977.  
  3978.  
  3979.  
  3980. # 136 "/usr/local/lib/gcc-lib/i386-sco3.2v4.0/2.3.3/include/setjmp.h" 3
  3981.  
  3982.   
  3983.  
  3984. # 15 "/usr/local/lib/g++-include/setjmp.h" 2
  3985.  
  3986.  
  3987.  
  3988.  
  3989.  
  3990.  
  3991.  
  3992.  
  3993. extern int setjmp(jmp_buf);
  3994. extern void longjmp(jmp_buf, int);
  3995.  
  3996.  
  3997. }
  3998.  
  3999.  
  4000. # 77 "./except.h" 2
  4001.  
  4002.  
  4003.  
  4004.  
  4005.  
  4006.  
  4007.  
  4008.  
  4009.  
  4010. jmp_buf except_stack[10 ];
  4011. int except_lev = 0;
  4012. volatile int except_val;
  4013.  
  4014.  
  4015.  
  4016.  
  4017.  
  4018.  
  4019.  
  4020.  
  4021.  
  4022.  
  4023.  
  4024.  
  4025.  
  4026.  
  4027.  
  4028. # 10 ".././inc/Error.h" 2
  4029.  
  4030.  
  4031.  
  4032.  
  4033.  
  4034.  
  4035. # 31 "../vsxconf.cc" 2
  4036.  
  4037.  
  4038. int rep_level=1;                           
  4039. char * p_nam;
  4040. char * p_ver = "Pre-Rel-1.2.1";
  4041.  
  4042. void syntax();
  4043. int opt_text_output = 0;
  4044. int opt_binary_output = 1;
  4045.  
  4046. main(int argc, char ** argv)
  4047. {
  4048.   p_nam = argv[0];
  4049.  
  4050.   CpuHw::setVsxRel("6.7.7" );
  4051.  
  4052.   while ( (--argc) ) {
  4053.     if ( argv[argc][0] == '-' ) {
  4054.       switch( argv[argc][1] ) {
  4055.       case 'v' :
  4056.     rep_level = atoi( &argv[argc][2] );
  4057.     break;
  4058.       case 'r' :
  4059.     CpuHw::setVsxRel(&argv[argc][2]);
  4060.     break;
  4061.       case 't' :
  4062.     opt_text_output = 1;
  4063.     break;
  4064.       default :
  4065.     syntax();
  4066.     break;
  4067.       }
  4068.     } else
  4069.       syntax();
  4070.   }
  4071.  
  4072.  
  4073.  
  4074.  
  4075.     init_lex();               
  4076.     if ((except_val = setjmp(except_stack[except_lev++])) == 0)  {
  4077.       yyparse();                
  4078.       ccu->doCurCU();           
  4079.     }
  4080.     else if (1  == except_val)  {
  4081.       exit(1);
  4082.     }
  4083.     else if (2  == except_val)  { exit(1); }
  4084.     else { if (--except_lev) { { longjmp(except_stack[except_lev-1], except_val); }  } else { fprintf(       (&_iob [2]) , "unhandled exception %d\n", except_val); exit(1); }} except_lev--; ;
  4085.     exit(0);
  4086. }
  4087.  
  4088. void syntax()
  4089. {
  4090.   printf("\n\n%s [-t] [-rn.n.n] [-vn]\n\n",p_nam);
  4091.   puts("Where :");
  4092.   puts("\t-t      Sets the text configuration output option on");
  4093.   puts("\t-rn.n.n Sets the VSX software release to generate config for");
  4094.   puts("\t-vn     Sets verbose mode to level n where :");
  4095.   puts("\t        \t0 - Errors 1 - & Warnings 2 - & Information");
  4096.   exit(1);
  4097. }
  4098.  
  4099. void write_file_hd(FILE *f, char c)
  4100. {
  4101.   time_t l;
  4102.   char ts[30];
  4103.   strcpy(ts,ctime(&(l = time((time_t *)0))));
  4104.   ts[23]='\0';                  
  4105.  
  4106.   fprintf(f, "%c/* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */\n",c);
  4107.   fprintf(f, "%c/* Generated by  : %s \tV%s */\n",c,p_nam,p_ver);
  4108.   fprintf(f, "%c/* Creation date : %s */\n",c,ts);
  4109. }
  4110.  
  4111.