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