|
|
1.1 root 1: /* @(#)basic.h 2.5 */
2: #define void int
3: #define bits unsigned /* makes bit fields definitions shorter */
4: typedef char FLAGT, *pFLAGT; /* also known as a boolean */
5: typedef unsigned int uint;
6:
7: #ifdef BSD41
8: typedef long SBT;
9: #else
10: typedef char * SBT;
11: #endif
12:
13: #ifdef REGULUS
14: /* I hope we don;t introduce a subtle bug by doing this..... */
15: #define ushort short
16: #define ulong long
17: #define uchar char
18: #define malloc alloc
19: extern char * alloc();
20: #else
21:
22: #ifdef TAHOE
23: #define ushort short
24: #else
25: typedef unsigned short ushort; /* Not needed for Tahoe */
26: #endif
27:
28: typedef unsigned char uchar;
29: typedef unsigned long ulong;
30: #endif
31:
32: #ifdef REGULUS
33: typedef ulong ADRT, *pADRT; /* used for addresses */
34: typedef long REGT;
35: #else
36: typedef uint ADRT, *pADRT; /* used for addresses */
37: typedef int REGT;
38: #endif
39: #define adrNil ((ADRT) -1)
40:
41: #define lengthen(a) ((long)((uint)(a)))
42: #define shorten(a) ((short)(a))
43: #define FOdd(x) (((int)(x)&01) == 1)
44: #define FEven(x) (((int)x&01) == 0)
45:
46: #define exportdefine #define /* used for building tags & .h files */
47: #define export /* used for building tags & .h files */
48: #define local /* used for building tags & .h files */
49:
50: #define AND &&
51: #define OR ||
52:
53: #define true 1
54: #define false 0
55:
56: #define nil ((char *)0)
57: #define sbNil ((char *)0)
58:
59: #define emptyset 0
60: #define SeFInt(x) (1<<(x)) /* generate set element from integer */
61: #define In(x, y) ((SeFInt(x) & (y)) != 0) /* test for word inclusion */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.