# 1 "ThrdExcp.cpp" # 1 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/stdio.h" 1 3 4 #ident "@(#)/usr/include/stdio.h.sl 1.1 u211 09/27/96 52255 SCO" extern "C" { typedef unsigned int size_t; typedef long fpos_t; typedef struct _FILE_ { int __cnt; unsigned char *__ptr; unsigned char *__base; unsigned char __flag; unsigned char __file; unsigned char __buf[2]; } FILE; extern FILE __iob[]; extern int remove(const char *); extern int rename(const char *, const char *); extern FILE *tmpfile(void); extern char *tmpnam(char *); extern int fclose(FILE *); extern int fflush(FILE *); extern FILE *fopen(const char *, const char *); extern FILE *freopen(const char *, const char *, FILE *); extern void setbuf(FILE *, char *); extern int setvbuf(FILE *, char *, int, size_t); extern int fprintf(FILE *, const char *, ...); extern int fscanf(FILE *, const char *, ...); extern int printf(const char *, ...); extern int scanf(const char *, ...); extern int sprintf(char *, const char *, ...); extern int sscanf(const char *, const char *, ...); extern int vfprintf(FILE *, const char *, void * ); extern int vprintf(const char *, void * ); extern int vsprintf(char *, const char *, void * ); extern int fgetc(FILE *); extern char *fgets(char *, int, FILE *); extern int fputc(int, FILE *); extern int fputs(const char *, FILE *); extern int getc(FILE *); extern int getchar(void); extern char *gets(char *); extern int putc(int, FILE *); extern int putchar(int); extern int puts(const char *); extern int ungetc(int, FILE *); extern size_t fread(void *, size_t, size_t, FILE *); extern size_t fwrite(const void *, size_t, size_t, FILE *); extern int fgetpos(FILE *, fpos_t *); extern int fseek(FILE *, long, int); extern int fsetpos(FILE *, const fpos_t *); extern long ftell(FILE *); extern void rewind(FILE *); extern void clearerr(FILE *); extern int feof(FILE *); extern int ferror(FILE *); extern void perror(const char *); extern int __filbuf(FILE *); extern int __flsbuf(int, FILE *); extern char *ctermid(char *); extern FILE *fdopen(int, const char *); extern int fileno(FILE *); extern FILE *popen(const char *, const char *); extern char *cuserid(char *); extern char *tempnam(const char *, const char *); extern char *optarg; extern int getopt(int, char *const *, const char *); extern int optind, opterr, optopt; extern int getw(FILE *); extern int putw(int, FILE *); extern int pclose(FILE *); extern int getc_unlocked(FILE *); extern int getchar_unlocked(void); extern int putc_unlocked(int, FILE *); extern int putchar_unlocked(int); extern void flockfile(FILE *); extern int ftrylockfile(FILE *); extern void funlockfile(FILE *); typedef long wchar_t; typedef long wint_t; extern int system(const char *); extern wint_t fgetwc(FILE *); extern wchar_t *fgetws(wchar_t *, int, FILE *); extern wint_t fputwc(wint_t, FILE *); extern int fputws(const wchar_t *, FILE *); extern wint_t getwc(FILE *); extern wint_t getwchar(void); extern wint_t putwc(wint_t, FILE *); extern wint_t putwchar(wint_t); extern wint_t ungetwc(wint_t, FILE *); extern int fwprintf(FILE *, const wchar_t *, ...); extern int fwscanf(FILE *, const wchar_t *, ...); extern int wprintf(const wchar_t *, ...); extern int wscanf(const wchar_t *, ...); extern int swprintf(wchar_t *, size_t, const wchar_t *, ...); extern int swscanf(const wchar_t *, const wchar_t *, ...); extern int vfwprintf(FILE *, const wchar_t *, void * ); extern int vfwscanf(FILE *, const wchar_t *, void * ); extern int vwprintf(const wchar_t *, void * ); extern int vwscanf(const wchar_t *, void * ); extern int vswprintf(wchar_t *, size_t, const wchar_t *, void * ); extern int vswscanf(const wchar_t *, const wchar_t *, void * ); extern void funflush(FILE *); extern int snprintf(char *, size_t, const char *, ...); extern int vsnprintf(char *, size_t, const char *, void * ); extern int vfscanf(FILE *, const char *, void * ); extern int vscanf(const char *, void * ); extern int vsscanf(const char *, const char *, void * ); # 336 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/stdio.h" 3 4 } # 5 "ThrdExcp.cpp" 2 # 1 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/stdlib.h" 1 3 4 #ident "@(#)/usr/include/stdlib.h.sl 1.1 u211 09/27/96 63620 SCO" extern "C" { typedef struct { int quot; int rem; } div_t; typedef struct { long quot; long rem; } ldiv_t; typedef int ssize_t; extern unsigned char __ctype[]; extern double atof(const char *); extern int atoi(const char *); extern long atol(const char *); extern double strtod(const char *, char **); extern float strtof(const char *, char **); extern long strtol(const char *, char **, int); long double strtold(const char *, char **); unsigned long strtoul(const char *, char **, int); extern int rand(void); extern void srand(unsigned int); extern void *calloc(size_t, size_t); extern void free(void *); extern void *malloc(size_t); extern void *realloc(void *, size_t); extern void abort(void); extern int atexit(void (*)(void)); extern void exit(int); extern char *getenv(const char *); extern int system(const char *); extern void *bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); extern int abs(int); extern div_t div(int, int); extern long labs(long); extern ldiv_t ldiv(long, long); extern int mbtowc(wchar_t *, const char *, size_t); extern int mblen(const char *, size_t); extern int wctomb(char *, wchar_t); extern size_t mbstowcs(wchar_t *, const char *, size_t); extern size_t wcstombs(char *, const wchar_t *, size_t); struct mallinfo { size_t arena; size_t ordblks; size_t smblks; size_t hblks; size_t hblkhd; size_t usmblks; size_t fsmblks; size_t uordblks; size_t fordblks; size_t keepcost; }; extern long a64l(const char *); extern int dup2(int, int); extern char *ecvt(double, int, int *, int *); extern char *ecvtl(long double, int, int *, int *); extern char *fcvt(double, int, int *, int *); extern char *fcvtl(long double, int, int *, int *); extern char *getcwd(char *, size_t); extern char *getlogin(void); extern int getopt(int, char *const *, const char *); extern int getsubopt(char **, char *const *, char **); extern char *optarg; extern int optind, opterr, optopt; extern char *getpass(const char *); extern int getpw(int, char *); extern char *gcvt(double, int, char *); extern char *gcvtl(long double, int, char *); extern int isatty(int); extern void l3tol(long *, const char *, int); extern char *l64a(long); extern char *l64a_r(long, char *, size_t); extern void ltol3(char *, const long *, int); struct mallinfo mallinfo(void); extern void *memalign(size_t, size_t); extern char *mktemp(char *); extern int rand_r(unsigned int *); extern char *realpath(const char *, char *); extern void swab(const void *, void *, ssize_t); extern char *ttyname(int); extern int ttyslot(void); extern void *valloc(size_t); extern double wcstod(const wchar_t *, wchar_t **); extern float wcstof(const wchar_t *, wchar_t **); extern long wcstol(const wchar_t *, wchar_t **, int); long double wcstold(const wchar_t *, wchar_t **); unsigned long wcstoul(const wchar_t *, wchar_t **, int); extern int grantpt(int); extern char *initstate(unsigned , char * , int ); extern int mkstemp(char *); extern char *ptsname(int); extern long random(void); extern char *setstate(char *); extern void srandom(unsigned ); extern int unlockpt(int ); # 209 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/stdlib.h" 3 4 extern double drand48(void); extern double erand48(unsigned short *); extern long jrand48(unsigned short *); extern void lcong48(unsigned short *); extern long lrand48(void); extern long mrand48(void); extern long nrand48(unsigned short *); extern int putenv(char *); unsigned short *seed48(unsigned short *); extern void setkey(const char *); extern void srand48(long); # 344 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/stdlib.h" 3 4 } # 6 "ThrdExcp.cpp" 2 # 1 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/string.h" 1 3 4 #ident "@(#)/usr/include/string.h.sl 1.1 eiger 11/30/95 32002 NOVELL" extern "C" { extern void *memchr(const void *, int, size_t); extern void *memcpy(void *, const void *, size_t); extern void *memccpy(void *, const void *, int, size_t); extern void *memmove(void *, const void *, size_t); extern void *memset(void *, int, size_t); extern char *strchr(const char *, int); extern char *strcpy(char *, const char *); extern char *strdup(const char *); extern char *strncpy(char *, const char *, size_t); extern char *strcat(char *, const char *); extern char *strncat(char *, const char *, size_t); extern char *strpbrk(const char *, const char *); extern char *strrchr(const char *, int); extern char *strstr(const char *, const char *); extern char *strtok(char *, const char *); extern char *strtok_r(char *, const char *, char **); extern char *strerror(int); extern char *strlist(char *, const char *, ...); extern int memcmp(const void *, const void *, size_t); extern int strcmp(const char *, const char *); extern int strcoll(const char *, const char *); extern int strncmp(const char *, const char *, size_t); extern size_t strxfrm(char *, const char *, size_t); extern size_t strcspn(const char *, const char *); extern size_t strspn(const char *, const char *); extern size_t strlen(const char *); extern int ffs(int); # 104 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/string.h" 3 4 } # 7 "ThrdExcp.cpp" 2 # 1 "/usr/include/errno.h" 1 3 4 #ident "@(#)/usr/include/errno.h.sl 1.1 eiger 11/30/95 56406 NOVELL" # 1 "/usr/include/sys/errno.h" 1 3 4 #ident "@(#)/usr/include/sys/errno.h.sl 1.1 u211 09/27/96 44690 SCO" #ident "$Header: $" extern "C" { } # 13 "/usr/include/errno.h" 2 3 4 extern "C" { extern int *__thr_errno(void); } # 8 "ThrdExcp.cpp" 2 # 1 "/usr/include/thread.h" 1 3 4 #ident "@(#)/usr/include/thread.h.sl 1.1 eiger 11/30/95 63489 NOVELL" #ident "$Header: $" extern "C" { # 1 "/usr/include/sys/types.h" 1 3 4 #ident "@(#)/usr/include/sys/types.h.sl 1.1 u211 09/27/96 38840 SCO" #ident "$Header: $" extern "C" { typedef unsigned char uchar_t; typedef unsigned short ushort_t; typedef unsigned int uint_t; typedef unsigned long ulong_t; typedef unsigned long useconds_t; typedef char * addr_t; typedef char * caddr_t; typedef long daddr_t; typedef char * faddr_t; typedef long off_t; typedef short cnt_t; typedef ulong_t vaddr_t; typedef ulong_t paddr_t; typedef uint_t ppid_t; typedef uchar_t use_t; typedef short sysid_t; typedef short index_t; typedef enum boolean { B_FALSE, B_TRUE } boolean_t; typedef struct _label { int val[6]; } label_t; typedef struct _quad { long val[2]; } quad; typedef long id_t; typedef long lwpid_t; typedef int processorid_t; typedef int toid_t; typedef ulong_t pvec_t; typedef ulong_t lid_t; typedef lid_t level_t; typedef ulong_t major_t; typedef ulong_t minor_t; typedef unsigned long adtemask_t[8 ]; typedef ushort_t o_mode_t; typedef short o_dev_t; typedef ushort_t o_uid_t; typedef o_uid_t o_gid_t; typedef short o_nlink_t; typedef short o_pid_t; typedef ushort_t o_ino_t; typedef int key_t; typedef ulong_t mode_t; typedef long uid_t; typedef uid_t gid_t; typedef ulong_t nlink_t; typedef ulong_t dev_t; typedef ulong_t ino_t; typedef long pid_t; typedef long time_t; typedef long clock_t; # 231 "/usr/include/sys/types.h" 3 4 typedef struct { int r[1]; } * physadr; typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; # 261 "/usr/include/sys/types.h" 3 4 typedef long hostid_t; typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned int pl_t; typedef uchar_t k_pl_t; # 320 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/sys/select.h" 1 3 4 #ident "@(#)/usr/include/sys/select.h.sl 1.1 eiger 11/30/95 35135 NOVELL" #ident "$Header: $" extern "C" { typedef long fd_mask; typedef struct fd_set { fd_mask fds_bits[((( 1024 )+(( (sizeof(fd_mask) * 8 ) )-1))/( (sizeof(fd_mask) * 8 ) )) ]; } fd_set; } struct timeval; int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); # 322 "/usr/include/sys/types.h" 2 3 4 # 354 "/usr/include/sys/types.h" 3 4 } # 19 "/usr/include/thread.h" 2 3 4 # 1 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/signal.h" 1 3 4 #ident "@(#)/usr/include/signal.h.sl 1.1 u211 09/27/96 39165 SCO" extern "C" { typedef int sig_atomic_t; extern const char *const _sys_siglist[]; extern const int _sys_nsig; # 1 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/sys/signal.h" 1 3 4 #ident "@(#)/usr/include/sys/signal.h.sl 1.1 u211 09/27/96 40103 SCO" #ident "$Header: $" extern "C" { # 40 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/sys/signal.h" 3 4 # 109 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/sys/signal.h" 3 4 typedef struct { unsigned int sa_sigbits[4]; } sigset_t; struct sigaction { int sa_flags; void (*sa_handler)(); sigset_t sa_mask; int sa_resv[2]; }; typedef struct sigaltstack { void *ss_sp; size_t ss_size; int ss_flags; } stack_t; struct sigstack { void *ss_sp; int ss_onstack; }; # 262 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/sys/signal.h" 3 4 # 472 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/sys/signal.h" 3 4 } # 22 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/signal.h" 2 3 4 extern void (*signal(int, void (*)(int)))(int); extern int raise(int); extern int kill(pid_t, int); extern int sigaction(int, const struct sigaction *, struct sigaction *); extern int sigaddset(sigset_t *, int); extern int sigdelset(sigset_t *, int); extern int sigemptyset(sigset_t *); extern int sigfillset(sigset_t *); extern int sigismember(const sigset_t *, int); extern int sigpending(sigset_t *); extern int sigprocmask(int, const sigset_t *, sigset_t *); extern int sigsuspend(const sigset_t *); # 1 "/usr/include/sys/procset.h" 1 3 4 #ident "@(#)/usr/include/sys/procset.h.sl 1.1 u211 09/27/96 2910 SCO" #ident "$Header: $" extern "C" { # 32 "/usr/include/sys/procset.h" 3 4 typedef enum { P_PID, P_PPID, P_PGID, P_SID, P_CID, P_UID, P_GID, P_ALL, P_LWPID } idtype_t; typedef enum idop { POP_DIFF, POP_AND, POP_OR, POP_XOR } idop_t; typedef struct procset { idop_t p_op; idtype_t p_lidtype; id_t p_lid; idtype_t p_ridtype; id_t p_rid; } procset_t; } # 54 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/signal.h" 2 3 4 extern int gsignal(int); extern void (*sigset(int, void (*)(int)))(int); extern int sighold(int); extern int sigrelse(int); extern int sigignore(int); extern int sigpause(int); extern int (*ssignal(int, int (*)(int)))(int); extern int sigaltstack(const stack_t *, stack_t *); extern int sigsend(idtype_t, id_t, int); extern int sigsendset(const procset_t *, int); extern int sigwait(sigset_t *); extern void (*bsd_signal(int , void (*) (int)))(int); extern int killpg(pid_t, int); extern int siginterrupt(int, int); extern int sigstack(struct sigstack *, struct sigstack *); # 88 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/signal.h" 3 4 } # 20 "/usr/include/thread.h" 2 3 4 # 1 "/usr/include/sys/priocntl.h" 1 3 4 #ident "@(#)/usr/include/sys/priocntl.h.sl 1.1 eiger 11/30/95 57852 NOVELL" #ident "$Header: $" extern "C" { extern long __priocntl(int, idtype_t, id_t, int, void *); extern long __priocntlset(int, procset_t *, int, void *); extern long _priocntllist(int, lwpid_t *, int, int, void *); typedef struct pcinfo { id_t pc_cid; char pc_clname[16 ]; long pc_clinfo[(32 / sizeof(long)) ]; } pcinfo_t; typedef struct pcparms { id_t pc_cid; long pc_clparms[(32 / sizeof(long)) ]; } pcparms_t; typedef struct qpcparms { void *qpc_argp; pcparms_t qpc_pcparms; boolean_t qpc_classchg; } qpcparms_t; typedef struct ageparms { size_t maxrss; clock_t et_age_interval; clock_t init_agequantum; clock_t min_agequantum; clock_t max_agequantum; } ageparms_t; typedef struct pcadmin { id_t pc_cid; caddr_t pc_cladmin; } pcadmin_t; } # 21 "/usr/include/thread.h" 2 3 4 # 1 "/usr/include/sys/time.h" 1 3 4 #ident "@(#)/usr/include/sys/time.h.sl 1.1 u211 09/27/96 27454 SCO" #ident "$Header: $" extern "C" { # 41 "/usr/include/sys/time.h" 3 4 struct timeval { long tv_sec; long tv_usec; }; struct timezone { int tz_minuteswest; int tz_dsttime; }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; typedef struct timespec { time_t tv_sec; long tv_nsec; } timestruc_t; # 184 "/usr/include/sys/time.h" 3 4 int adjtime(struct timeval *, struct timeval *); int getitimer(int, struct itimerval *); int setitimer(int, struct itimerval *, struct itimerval *); int gettimeofday(struct timeval *, void *); int settimeofday(struct timeval *, struct timezone *); # 1 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/time.h" 1 3 4 #ident "@(#)/usr/include/time.h.sl 1.1 u211 09/27/96 60116 SCO" extern "C" { struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; }; extern clock_t clock(void); extern double difftime(time_t, time_t); extern time_t mktime(struct tm *); extern time_t time(time_t *); extern char *asctime(const struct tm *); extern char *ctime (const time_t *); struct tm *gmtime(const time_t *); struct tm *localtime(const time_t *); extern size_t strftime(char *, size_t, const char *, const struct tm *); extern void tzset(void); extern char *tzname[]; extern long timezone; extern int daylight; extern char *strptime(const char *, const char *, struct tm *); extern int cftime(char *, const char *, const time_t *); extern int ascftime(char *, const char *, const struct tm *); extern long altzone; struct tm *getdate(const char *); extern int getdate_err; extern char *asctime_r(const struct tm *, char *); extern char *ctime_r(const time_t *, char *); struct tm *localtime_r(const time_t *, struct tm *); struct tm *gmtime_r(const time_t *, struct tm *); # 137 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/time.h" 3 4 } # 197 "/usr/include/sys/time.h" 2 3 4 } # 22 "/usr/include/thread.h" 2 3 4 # 1 "/usr/include/ucontext.h" 1 3 4 #ident "@(#)/usr/include/ucontext.h.sl 1.1 u211 09/27/96 2376 SCO" extern "C" { # 1 "/usr/include/sys/ucontext.h" 1 3 4 #ident "@(#)/usr/include/sys/ucontext.h.sl 1.1 u211 09/27/96 38548 SCO" #ident "$Header: $" extern "C" { # 33 "/usr/include/sys/ucontext.h" 3 4 # 1 "/usr/include/sys/regset.h" 1 3 4 #ident "@(#)/usr/include/sys/regset.h.sl 1.1 u211 09/27/96 65219 SCO" #ident "$Header: $" extern "C" { # 27 "/usr/include/sys/regset.h" 3 4 # 1 "/usr/include/sys/fp.h" 1 3 4 #ident "@(#)/usr/include/sys/fp.h.sl 1.1 u211 09/27/96 27837 SCO" #ident "$Header: $" # 23 "/usr/include/sys/fp.h" 3 4 extern "C" { struct fpemul_state { char fp_emul[246]; char fp_epad[2]; }; struct fpemul_restart { struct fpemul_state fr_fpestate; unsigned fr_esp; unsigned fr_eip; }; struct fpemul_kstate { struct fpemul_state fpe_state; struct fpemul_restart fpe_restart; }; # 122 "/usr/include/sys/fp.h" 3 4 } # 29 "/usr/include/sys/regset.h" 2 3 4 typedef int greg_t; typedef greg_t gregset_t[19 ]; typedef struct fpregset { union { struct fp_chip_ste { int state[27]; int status; } fpchip_state; struct fpemul_state fp_emul_space; int f_fpregs[62]; } fp_reg_set; long f_wregs[33]; } fpregset_t; typedef struct dbregset { unsigned debugreg[8 ]; } dbregset_t; typedef struct regs { union { unsigned int eax; struct { unsigned short ax; } word; struct { unsigned char al; unsigned char ah; } byte; } eax; union { unsigned int ebx; struct { unsigned short bx; } word; struct { unsigned char bl; unsigned char bh; } byte; } ebx; union { unsigned int ecx; struct { unsigned short cx; } word; struct { unsigned char cl; unsigned char ch; } byte; } ecx; union { unsigned int edx; struct { unsigned short dx; } word; struct { unsigned char dl; unsigned char dh; } byte; } edx; union { unsigned int edi; struct { unsigned short di; } word; } edi; union { unsigned int esi; struct { unsigned short si; } word; } esi; unsigned int eflags; } regs; } # 36 "/usr/include/sys/ucontext.h" 2 3 4 # 65 "/usr/include/sys/ucontext.h" 3 4 typedef struct { gregset_t gregs; fpregset_t fpregs; } mcontext_t; typedef struct ucontext { ulong_t uc_flags; struct ucontext *uc_link; sigset_t uc_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; void *uc_privatedatap; long uc_filler[4]; } ucontext_t; } # 18 "/usr/include/ucontext.h" 2 3 4 extern int getcontext(ucontext_t *); extern int setcontext(const ucontext_t *); extern int swapcontext(ucontext_t *, const ucontext_t *); extern void makecontext(ucontext_t *, void(*)(), int, ...); } # 24 "/usr/include/thread.h" 2 3 4 typedef id_t thread_t; typedef struct __lwp_desc { lwpid_t lwp_id; struct __thread_desc *lwp_thread; FILE *tracefile; char *buf; pid_t curpid; void *lwp_reserved; } __lwp_desc_t; typedef struct __thread_desc { thread_t thr_id; int *thr_errp; void *thr_priv_datap; void *thr_reserved; int thr_errno; } __thread_desc_t; struct thread_map { ucontext_t thr_ucontext; thread_t thr_tid; void *thr_lwpp; int thr_state; long thr_usropts; sigset_t thr_psig; sigset_t thr_dbg_set; unsigned char thr_dbg_cancel; unsigned char thr_dbg_busy; unsigned char thr_dbg_startup; unsigned char thr_dbg_switch; void *(*thr_start_addr)(void *); void *thr_next; } ; enum thread_change { tc_invalid, tc_thread_create, tc_thread_exit, tc_switch_begin, tc_switch_complete, tc_cancel_complete, tc_thread_suspend, tc_thread_suspend_pending, tc_thread_continue } ; struct thread_debug { void **thr_map; void (*thr_brk)(struct thread_map *, enum thread_change); int thr_debug_on; } ; extern struct thread_debug _thr_debug; typedef struct { id_t policy; long policy_params[(32 / sizeof(long)) ]; } sched_param_t; struct ts_param { int prio; }; struct fifo_param { int prio; }; struct rr_param { int prio; }; typedef unsigned int thread_key_t; int thr_create(void *, size_t, void *(*)(void *), void *, long, thread_t *); int thr_join(thread_t, thread_t *, void **); void thr_exit(void *); thread_t thr_self(void); int thr_setconcurrency(int); int thr_getconcurrency(void); int thr_setscheduler(thread_t, const sched_param_t *); int thr_getscheduler(thread_t, sched_param_t *); void thr_get_rr_interval(timestruc_t *); int thr_setprio(thread_t, int); int thr_getprio(thread_t, int *); void thr_yield(void); int thr_suspend(thread_t); int thr_continue(thread_t); int thr_kill(thread_t, int); int thr_sigsetmask(int, const sigset_t *, sigset_t *); size_t thr_minstack(void); int thr_keycreate(thread_key_t *key, void (*destructor)(void *)); int thr_keydelete(thread_key_t key); int thr_setspecific(thread_key_t key, void *value); int thr_getspecific(thread_key_t key, void **retval); # 218 "/usr/include/thread.h" 3 4 } # 9 "ThrdExcp.cpp" 2 # 1 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/unistd.h" 1 3 4 #ident "@(#)/usr/include/unistd.h.sl 1.1 u211 09/27/96 48481 SCO" extern "C" { # 1 "/usr/include/sys/unistd.h" 1 3 4 #ident "@(#)/usr/include/sys/unistd.h.sl 1.1 u211 09/27/96 55565 SCO" #ident "$Header: $" extern "C" { } # 18 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/unistd.h" 2 3 4 extern int access(const char *, int); extern unsigned alarm(unsigned); extern int chdir(const char *); extern int chown(const char *, uid_t, gid_t); extern int close(int); extern char *cuserid(char *); extern int dup(int); extern int dup2(int, int); extern int execl(const char *, const char *, ...); extern int execle(const char *, const char *, ...); extern int execlp(const char *, const char *, ...); extern int execv(const char *, char *const *); extern int execve(const char *, char *const *, char *const *); extern int execvp(const char *, char *const *); extern void _exit(int); extern pid_t fork(void); extern long fpathconf(int, int); extern char *getcwd(char *, size_t); extern gid_t getegid(void); extern uid_t geteuid(void); extern gid_t getgid(void); extern int getgroups(int, gid_t *); extern char *getlogin(void); extern pid_t getpgrp(void); extern pid_t getpid(void); extern pid_t getppid(void); extern uid_t getuid(void); extern int isatty(int); extern int link(const char *, const char *); extern off_t lseek(int, off_t, int); extern long pathconf(const char *, int); extern int pause(void); extern int pipe(int *); extern ssize_t read(int, void *, size_t); extern int rmdir(const char *); extern int setgid(gid_t); extern int setpgid(pid_t, pid_t); extern pid_t setsid(void); extern int setuid(uid_t); extern unsigned sleep(unsigned); extern long sysconf(int); extern pid_t tcgetpgrp(int); extern int tcsetpgrp(int, pid_t); extern char *ttyname(int); extern int unlink(const char *); extern ssize_t write(int, const void *, size_t); extern size_t confstr(int, char *, size_t); extern int getopt(int, char *const*, const char *); extern char *optarg; extern int optind, opterr, optopt; extern int chroot(const char *); extern char *crypt(const char *, const char *); extern char *ctermid(char *); extern void encrypt(char *, int); extern int fsync(int); extern char *getpass(const char *); extern int nice(int); extern void swab(const void *, void *, ssize_t); extern int brk(void *); extern int fchown(int, uid_t, gid_t); extern int fchdir(int); extern int ftruncate(int, off_t); extern int getdtablesize(void); extern long gethostid(void); extern int gethostname(char *, size_t); extern int getpagesize(void); extern pid_t getpgid(pid_t); extern pid_t getsid(pid_t); extern char *getwd(char *); extern int lchown(const char *, uid_t, gid_t); extern int lockf(int, int, long); extern int readlink(const char *, char *, size_t); extern void *sbrk(int); extern pid_t setpgrp(void); extern int setregid(gid_t, gid_t); extern int setreuid(uid_t, uid_t); extern int symlink(const char *, const char *); extern void sync(void); extern int truncate(const char *, off_t); extern useconds_t ualarm(useconds_t, useconds_t); extern int usleep(useconds_t); extern pid_t vfork(void); extern int acct(const char *); extern void exit(int); extern int fattach(int, const char *); extern int fdetach(const char *); extern pid_t fork1(void); extern pid_t forkall(void); extern char *getlogin_r(char *, size_t); extern char *getpass_r(const char *, char *, size_t); extern char *gettxt(const char *, const char *); extern int ioctl(int, int, ...); extern int mincore(caddr_t, size_t, char *); extern ssize_t pread(int, void *, size_t, off_t); extern void profil(unsigned short *, size_t, int, unsigned); extern int ptrace(int, pid_t, int, int); extern ssize_t pwrite(int, const void *, size_t, off_t); extern int rename(const char *, const char *); extern int setgroups(int, const gid_t *); extern int stime(const time_t *); extern char *ttyname_r(int, char *, size_t); # 326 "/usr/local/gnu/lib/gcc-lib/i386-univel-sysv4.2MP/2.95.2/include/unistd.h" 3 4 } # 10 "ThrdExcp.cpp" 2 class SoilQuitExp {}; int debugQuit() { char funcname[]="debugQuit"; printf( "About to throw SoilQuitExp\n" ); throw SoilQuitExp(); } void *debugMyThread(void *myDataP) { char funcname[]="debugMyThread"; try{ printf( "About to call debugQuit\n" ); debugQuit(); printf( "After call to debugQuit\n" ); } catch (SoilQuitExp) { printf( "Caught SoilQuitExp\n" ); } } int main(int argc, char* argv[]) { char funcname[]="main"; thread_t thrID; printf( "About to create debugThread\n" ); if ( thr_create(0 , 0, debugMyThread, 0 , 0, &thrID) == 0 ) { printf( "Started debugThread %d \n", thrID); } else { printf( "ERROR: Could not start debugThread\n" ); } printf( "Sleeping for 10 seconds...\n" ); sleep(1); printf( "Done Sleeping exiting cleanly\n" ); exit(0); }