xref: /original-bsd/old/dbx/defs.h (revision 100ae74e)
1 /*
2  * Copyright (c) 1983 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)defs.h	5.2 (Berkeley) 01/12/88
7  */
8 
9 /*
10  * Public definitions, common to all.
11  */
12 
13 #include <stdio.h>
14 
15 #ifdef sgi
16 #   define double long float
17 #   define atof _latof
18 #   define IRIS
19 #   define mc68000
20 #endif
21 
22 #define new(type)           ((type) malloc(sizeof(struct type)))
23 #define newarr(type, n)     ((type *) malloc((unsigned) (n) * sizeof(type)))
24 #define dispose(ptr)        { free((char *) ptr); ptr = 0; }
25 
26 #define public
27 #define private static
28 
29 #define ord(enumcon) ((unsigned int) enumcon)
30 #define nil 0
31 #define and &&
32 #define or ||
33 #define not !
34 #define div /
35 #define mod %
36 #define max(a, b)    ((a) > (b) ? (a) : (b))
37 #define min(a, b)    ((a) < (b) ? (a) : (b))
38 
39 #define assert(b) { \
40     if (not(b)) { \
41 	panic("assertion failed at line %d in file %s", __LINE__, __FILE__); \
42     } \
43 }
44 
45 #define badcaseval(v) { \
46     panic("unexpected value %d at line %d in file %s", v, __LINE__, __FILE__); \
47 }
48 
49 #define checkref(p) { \
50     if (p == nil) { \
51 	panic("reference through nil pointer at line %d in file %s", \
52 	    __LINE__, __FILE__); \
53     } \
54 }
55 
56 typedef int Integer;
57 typedef int integer;
58 typedef char Char;
59 typedef double Real;
60 typedef double real;
61 typedef enum { false, true } Boolean;
62 typedef Boolean boolean;
63 typedef char *String;
64 
65 #define strdup(s)       strcpy(malloc((unsigned) strlen(s) + 1), s)
66 #define streq(s1, s2)   (strcmp(s1, s2) == 0)
67 
68 typedef FILE *File;
69 typedef int Fileid;
70 typedef String Filename;
71 
72 #define get(f, var) fread((char *) &(var), sizeof(var), 1, f)
73 #define put(f, var) fwrite((char *) &(var), sizeof(var), 1, f)
74 
75 #undef FILE
76 
77 extern long atol();
78 extern double atof();
79 extern char *malloc();
80 extern String strcpy(), index(), rindex();
81 extern int strlen();
82 
83 extern String cmdname;
84 extern String errfilename;
85 extern short errlineno;
86 extern int debug_flag[];
87