|
|
1.1 root 1: /* As per your license agreement, your distribution is not to be moved or copied outside the Designated Site
2: * without specific permission from Plum Hall Inc.
3: */
4:
5: #ifndef DEFS_H
6: #define DEFS_H
7:
8: #include "flags.h"
9:
10: /* In your flags.h, you should
11: * #define FREESTANDING 1
12: * if you are testing a freestanding system
13: */
14:
15: #include "compil.h"
16:
17:
18: #ifdef __cplusplus
19: #define ANSI 1
20: #endif /* C++ impementations assumed also ANSI C except sometimes */
21:
22: #if !ANSI || !LIB_TEST
23: #include "machin.h"
24: #endif
25:
26: /* THE REMAINING DEFINITIONS SHOULD NOT BE MODIFIED */
27: #define TRUE 1
28: #define FALSE 0
29: /* Where possible, we will try to make the compiler have
30: * as many registers as possible tied up. This usually
31: * forces more error-prone paths.
32: */
33: #define REGISTERS register int r1,r2,r3,r4,r5;register char *r6,*r7,*r8,*r9,*r10
34: #define USEREGISTERS r1=r2=r3=r4=r5=0;r6=r7=r8=r9=r10=0
35: extern char *Filename; /* will always get set to the current source file */
36:
37: #define ENTRY(s) entry_fn(s)
38: #if !VOID_OK
39: #define void char
40: #endif
41:
42: #if !ANSI
43: #define const
44: #endif
45:
46: #if HAS_PROTOTYPES
47: #define PARMS(x) x
48: #else
49: #define PARMS(X) ()
50: #endif /* HAS_PROTOTYPES */
51:
52: int aequals PARMS((int, const void *, const void *));
53: char *arbhex PARMS((char *, const char *, int));
54: generic_ptr avalue PARMS((generic_ptr));
55: void begin_case PARMS((const char *));
56: int checkthat PARMS((int, int));
57: int complain PARMS((int));
58: double dabs PARMS((double));
59: void dbprint PARMS((const char *));
60: int dequals PARMS((int, double, double));
61: int do_nothing PARMS((void *, ...));
62: double dpowu PARMS((double, unsigned));
63: double dvalue PARMS((double));
64: void end_case PARMS((const char *));
65: void entry_fn PARMS((const char *));
66: int faequals PARMS((int, int (*)(), int (*)()));
67: int fequals PARMS((int, double, double));
68: float fvalue PARMS((double));
69: int iabs PARMS((int));
70: int iequals PARMS((int, int, int));
71: void ignore PARMS((const void *));
72: int inotequals PARMS((int, int, int));
73: int ivalue PARMS((int));
74: int ldequals PARMS((int, long double, long double));
75: int lequals PARMS((int, long, long));
76: char *ltostr PARMS((char *, long, unsigned));
77: long lvalue PARMS((long));
78: int mem_cmp PARMS((const void *, const void *, int));
79: void pr_err PARMS((const char *));
80: void pr_l PARMS((long, unsigned));
81: void pr_ok PARMS((const char *));
82: void pr_skip PARMS((const char *));
83: void pr_ul PARMS((ULONG, unsigned));
84: int report PARMS((const char *));
85: int scheck PARMS((int, int, int, int));
86: int stequals PARMS((int, const char*, const char*));
87: int st_ncmp PARMS(( const char *, const char *, int)); /* NOT str_n.. */
88: char *st_ncpy PARMS(( char *, const char *, int)); /* NOT str_n.. */
89: char *str_cat PARMS(( char *, const char *));
90: int str_cspn PARMS(( char *, char *));
91: int str_cmp PARMS((const char *, const char *));
92: char *str_cpye PARMS((char *, const char *));
93: int str_len PARMS((const char *));
94: char *str_rev PARMS((char *));
95: const char *str_str PARMS((const char *, const char *));
96: void trace PARMS((const char *, int));
97: int ulequals PARMS((int, ULONG, ULONG));
98: char *ultostr PARMS((char *, ULONG, unsigned));
99:
100: #define ENTRY(s) entry_fn(s)
101:
102: #define ieq(i1, i2) iequals(__LINE__, i1, i2)
103: #define inoteq(i1, i2) inotequals(__LINE__, i1, i2)
104: #define aeq(a1, a2) aequals(__LINE__, a1, a2)
105: #define faeq(a1, a2) faequals(__LINE__, a1, a2)
106: #define leq(L1, L2) lequals(__LINE__, L1, L2)
107: #define deq(d1, d2) dequals(__LINE__, d1, d2)
108: #define feq(d1, d2) fequals(__LINE__, d1, d2)
109: #define chk(i1) checkthat(__LINE__, i1)
110: #define steq(a1, a2) stequals(__LINE__, a1, a2)
111: #define schk(i1, i2, i3) scheck(__LINE__, i1, i2, i3)
112: #define boo() complain(__LINE__)
113: #define ldeq(ld1, ld2) ldequals(__LINE__, ld1, ld2)
114:
115: #if NEW_STYLE_FN_DEF
116: #define FN_DEF1(a1, d1) (d1)
117: #define FN_DEF1V(a1, d1) (d1, ...)
118: #define FN_DEF2(a1, a2, d1, d2) (d1, d2)
119: #define FN_DEF3(a1, a2, a3, d1, d2, d3) (d1, d2, d3)
120: #define FN_DEF4(a1, a2, a3, a4, d1, d2, d3, d4) (d1, d2, d3, d4)
121: #else /* !NEW_STYLE_FN_DEF */
122: #define FN_DEF1(a1, d1) (a1) d1;
123: #define FN_DEF1V(a1, d1) (a1) d1;
124: #define FN_DEF2(a1, a2, d1, d2) (a1, a2) d1; d2;
125: #define FN_DEF3(a1, a2, a3, d1, d2, d3) (a1, a2, a3) d1; d2; d3;
126: #define FN_DEF4(a1, a2, a3, a4, d1, d2, d3, d4) (a1, a2, a3, a4) d1; d2; d3; d4;
127: #endif /* NEW_STYLE_FN_DEF */
128:
129: #if !ANSI
130: #ifndef DBL_DIG
131: #define DBL_DIG DIGITS_MAX
132: #endif
133: #ifndef FLT_DIG
134: #define FLT_DIG FDIGITS_MAX
135: #endif
136: #ifndef LDBL_DIG
137: #define LDBL_DIG DIGITS_MAX
138: #endif
139: #ifndef DBL_MAX_10_EXP
140: #define DBL_MAX_10_EXP 37 /* a portable minimum value */
141: #endif
142: #ifndef DBL_MIN_10_EXP
143: #define DBL_MIN_10_EXP -37 /* a portable minimum value */
144: #endif
145: #ifndef LDBL_MIN_10_EXP
146: #define LDBL_MIN_10_EXP -37 /* a portable minimum value */
147: #endif
148: #endif /* of !ANSI */
149: #endif /* of DEFS_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.