|
|
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.