]> icculus.org git repositories - btb/d2x.git/blob - include/checker.h
portable file i/o utils
[btb/d2x.git] / include / checker.h
1 //checker.h added 05/17/99 Matt Mueller
2 //FD_* on linux use asm, but checker doesn't like it.  Borrowed these non-asm versions outta <selectbits.h>
3 #include <setjmp.h>
4
5 #ifdef __CHECKER__
6
7 #undef FD_ZERO(set)
8 #undef FD_SET(d, set)
9 #undef FD_CLR(d, set)
10 #undef FD_ISSET(d, set)
11
12 # define FD_ZERO(set)  \
13   do {                                                                        \
14               unsigned int __i;                                                         \
15                               for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i)        \
16                                                 ((__fd_mask *) set)[__i] = 0;                                           \
17                                                                   } while (0)
18 # define FD_SET(d, set)       ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
19 # define FD_CLR(d, set)       ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
20 # define FD_ISSET(d, set)     ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
21
22 //checker doesn't seem to handle jmp's correctly...
23 #undef setjmp(env)
24 #define setjmp(env) __chcksetjmp(env)
25 #undef longjmp(env,val)
26 #define longjmp(env,val) __chcklongjmp(env,val)
27
28 int __chcklongjmp(jmp_buf buf,int val);
29 int __chcksetjmp(jmp_buf buf);
30         
31 void chcksetwritable(char * p, int size);
32 void chcksetunwritable(char * p, int size);
33
34 #endif