|
|
1.1 ! root 1: /* ! 2: * almost verbatim from common/manifest.h in the c compiler ! 3: */ ! 4: ! 5: /* type modifiers */ ! 6: ! 7: # define PTR 040 ! 8: # define FTN 0100 ! 9: # define ARY 0140 ! 10: ! 11: /* type packing constants */ ! 12: ! 13: # define MTMASK 03 ! 14: # define BTMASK 037 ! 15: # define BTSHIFT 5 ! 16: # define TSHIFT 2 ! 17: # define TMASK (MTMASK<<BTSHIFT) ! 18: # define TMASK1 (MTMASK<<(BTSHIFT+TSHIFT)) ! 19: # define TMASK2 (TMASK||MTMASK) ! 20: ! 21: /* macros */ ! 22: ! 23: # define ONEBIT(n) (1L<<(n)) ! 24: # define MODTYPE(x,y) x = (x&(~BTMASK))|y /* set basic type of x to y */ ! 25: # define BTYPE(x) (x&BTMASK) /* basic type of x */ ! 26: # define ISUNSIGNED(x) ((x)<=ULONG&&(x)>=UCHAR) ! 27: # define UNSIGNABLE(x) ((x)<=LONG&&(x)>=CHAR) ! 28: # define ENUNSIGN(x) ((x)+(UNSIGNED-INT)) ! 29: # define DEUNSIGN(x) ((x)+(INT-UNSIGNED)) ! 30: # define ISPTR(x) ((x&TMASK)==PTR) ! 31: # define ISFTN(x) ((x&TMASK)==FTN) /* is x a function type */ ! 32: # define ISARY(x) ((x&TMASK)==ARY) /* is x an array type */ ! 33: # define INCREF(x) (((x&~BTMASK)<<TSHIFT)|PTR|(x&BTMASK)) ! 34: # define DECREF(x) (((x>>TSHIFT)&~BTMASK)|(x&BTMASK)) ! 35: # define PKFIELD(s,o) (((o)<<6)|(s)) ! 36: # define UPKFSZ(v) ((v)&077) ! 37: # define UPKFOFF(v) ((v)>>6) ! 38: ! 39: #define MAXTYPE 16 /* largest meaningful type; currently == void */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.