|
|
1.1 ! root 1: /* "@(#)cdefs.h 4.1 10/9/80" */ ! 2: /* type modifiers */ ! 3: ! 4: # define PTR 020 ! 5: # define FTN 040 ! 6: # define ARY 060 ! 7: ! 8: /* type packing constants */ ! 9: ! 10: # define TMASK 060 ! 11: # define TMASK1 0300 ! 12: # define TMASK2 0360 ! 13: # define BTMASK 017 ! 14: # define BTSHIFT 4 ! 15: # define TSHIFT 2 ! 16: ! 17: /* macros */ ! 18: ! 19: # define BTYPE(x) (x&BTMASK) /* basic type of x */ ! 20: # define ISUNSIGNED(x) ((x)<=ULONG&&(x)>=UCHAR) ! 21: # define UNSIGNABLE(x) ((x)<=LONG&&(x)>=CHAR) ! 22: # define ENUNSIGN(x) ((x)+(UNSIGNED-INT)) ! 23: # define DEUNSIGN(x) ((x)+(INT-UNSIGNED)) ! 24: # define ISPTR(x) ((x&TMASK)==PTR) ! 25: # define ISFTN(x) ((x&TMASK)==FTN) /* is x a function type */ ! 26: # define ISARY(x) ((x&TMASK)==ARY) /* is x an array type */ ! 27: # define INCREF(x) (((x&~BTMASK)<<TSHIFT)|PTR|(x&BTMASK)) ! 28: # define DECREF(x) (((x>>TSHIFT)&~BTMASK&0x3fff)|(x&BTMASK)) ! 29: /* pack and unpack field descriptors (size and offset) */ ! 30: # define PKFIELD(s,o) ((o<<6)|s) ! 31: # define UPKFSZ(v) (v&077) ! 32: # define UPKFOFF(v) (v>>6) ! 33:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.