date and time created 84/06/23 10:59:16 by sam
[unix-history] / usr / src / old / dbx / defs.h
CommitLineData
cbb6f020
SL
1/*
2 * Public definitions, common to all.
3 */
4
5#include <stdio.h>
6
7#define new(type) ((type) malloc(sizeof(struct type)))
8#define newarr(type, n) ((type *) malloc((unsigned) (n) * sizeof(type)))
9#define dispose(ptr) { free((char *) ptr); ptr = 0; }
10
11#define public
12#define private static
13
14#define ord(enumcon) ((unsigned int) enumcon)
15#define nil 0
16#define and &&
17#define or ||
18#define not !
19#define div /
20#define mod %
21#define max(a, b) ((a) > (b) ? (a) : (b))
22#define min(a, b) ((a) < (b) ? (a) : (b))
23
24#define assert(b) { \
25 if (not(b)) { \
26 panic("assertion failed at line %d in file %s", __LINE__, __FILE__); \
27 } \
28}
29
30#define badcaseval(v) { \
31 panic("unexpected value %d at line %d in file %s", v, __LINE__, __FILE__); \
32}
33
34#define checkref(p) { \
35 if (p == nil) { \
36 panic("reference through nil pointer at line %d in file %s", \
37 __LINE__, __FILE__); \
38 } \
39}
40
41typedef int Integer;
2fd0f574 42typedef int integer;
cbb6f020
SL
43typedef char Char;
44typedef double Real;
2fd0f574 45typedef double real;
cbb6f020 46typedef enum { false, true } Boolean;
2fd0f574 47typedef Boolean boolean;
cbb6f020
SL
48typedef char *String;
49
50#define strdup(s) strcpy(malloc((unsigned) strlen(s) + 1), s)
51#define streq(s1, s2) (strcmp(s1, s2) == 0)
52
53typedef FILE *File;
54typedef int Fileid;
55typedef String Filename;
56
57#define get(f, var) fread((char *) &(var), sizeof(var), 1, f)
58#define put(f, var) fwrite((char *) &(var), sizeof(var), 1, f)
59
60#undef FILE
61
62extern long atol();
63extern double atof();
64extern char *malloc();
65extern String strcpy(), index(), rindex();
66extern int strlen();
67
68extern String cmdname;
69extern String errfilename;
70extern short errlineno;
71extern int debug_flag[];