|
|
1.1 ! root 1: /* m- file for intel 386. ! 2: Copyright (C) 1987 Free Software Foundation, Inc. ! 3: ! 4: This file is part of GNU Emacs. ! 5: ! 6: GNU Emacs is free software; you can redistribute it and/or modify ! 7: it under the terms of the GNU General Public License as published by ! 8: the Free Software Foundation; either version 1, or (at your option) ! 9: any later version. ! 10: ! 11: GNU Emacs is distributed in the hope that it will be useful, ! 12: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 14: GNU General Public License for more details. ! 15: ! 16: You should have received a copy of the GNU General Public License ! 17: along with GNU Emacs; see the file COPYING. If not, write to ! 18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 19: ! 20: ! 21: /* The following three symbols give information on ! 22: the size of various data types. */ ! 23: ! 24: #define SHORTBITS 16 /* Number of bits in a short */ ! 25: ! 26: #define INTBITS 32 /* Number of bits in an int */ ! 27: ! 28: #define LONGBITS 32 /* Number of bits in a long */ ! 29: ! 30: /* i386 is not big-endian: lowest numbered byte is least significant. */ ! 31: ! 32: /* #undef BIG_ENDIAN */ ! 33: ! 34: /* Define NO_ARG_ARRAY if you cannot take the address of the first of a ! 35: * group of arguments and treat it as an array of the arguments. */ ! 36: ! 37: /* #define NO_ARG_ARRAY */ ! 38: ! 39: /* Define WORD_MACHINE if addresses and such have ! 40: * to be corrected before they can be used as byte counts. */ ! 41: ! 42: /* #define WORD_MACHINE */ ! 43: ! 44: /* Define how to take a char and sign-extend into an int. ! 45: On machines where char is signed, this is a no-op. */ ! 46: ! 47: #define SIGN_EXTEND_CHAR(c) (c) ! 48: ! 49: /* Now define a symbol for the cpu type, if your compiler ! 50: does not define it automatically: ! 51: Ones defined so far include vax, m68000, ns16000, pyramid, ! 52: orion, tahoe, APOLLO and many others */ ! 53: ! 54: #define INTEL386 ! 55: ! 56: /* Use type int rather than a union, to represent Lisp_Object */ ! 57: ! 58: #define NO_UNION_TYPE ! 59: ! 60: /* crt0.c, if it is used, should use the i386-bsd style of entry. ! 61: with no extra dummy args. On USG and XENIX, ! 62: NO_REMAP says this isn't used. */ ! 63: ! 64: #define CRT0_DUMMIES bogus_fp, ! 65: ! 66: /* crt0.c should define a symbol `start' and do .globl with a dot. */ ! 67: ! 68: #define DOT_GLOBAL_START ! 69: ! 70: #ifdef XENIX ! 71: /* Data type of load average, as read out of kmem. */ ! 72: #define LOAD_AVE_TYPE short ! 73: ! 74: /* Convert that into an integer that is 100 for a load average of 1.0 */ ! 75: #define LOAD_AVE_CVT(x) (((double) (x)) * 100.0 / FSCALE) ! 76: ! 77: #define FSCALE 256.0 /* determined by experimentation... */ ! 78: #endif ! 79: ! 80: #ifdef USG5_4 /* Older USG systems do not support the load average. */ ! 81: /* Data type of load average, as read out of kmem. */ ! 82: ! 83: #define LOAD_AVE_TYPE long ! 84: ! 85: /* Convert that into an integer that is 100 for a load average of 1.0 */ ! 86: /* This is totally uncalibrated. */ ! 87: ! 88: #define LOAD_AVE_CVT(x) ((int) (((double) (x)) * 100.0 / FSCALE)) ! 89: #define FSCALE 256.0 ! 90: #endif ! 91: ! 92: #ifdef J386BSD ! 93: /* Data type of load average, as read out of kmem. */ ! 94: ! 95: #define LOAD_AVE_TYPE unsigned long ! 96: ! 97: /* Convert that into an integer that is 100 for a load average of 1.0. */ ! 98: #define LOAD_AVE_CVT(x) ((int) (((double) (x)) * 100.0 / FSCALE)) ! 99: ! 100: #endif /* J386BSD */ ! 101: ! 102: /* Define CANNOT_DUMP on machines where unexec does not work. ! 103: Then the function dump-emacs will not be defined ! 104: and temacs will do (load "loadup") automatically unless told otherwise. */ ! 105: ! 106: /* #define CANNOT_DUMP */ ! 107: ! 108: /* Define VIRT_ADDR_VARIES if the virtual addresses of ! 109: pure and impure space as loaded can vary, and even their ! 110: relative order cannot be relied on. ! 111: ! 112: Otherwise Emacs assumes that text space precedes data space, ! 113: numerically. */ ! 114: ! 115: /* #define VIRT_ADDR_VARIES */ ! 116: ! 117: #ifdef XENIX ! 118: #define VALBITS 26 ! 119: #define GCTYPEBITS 5 ! 120: ! 121: /* Define NO_REMAP if memory segmentation makes it not work well ! 122: to change the boundary between the text section and data section ! 123: when Emacs is dumped. If you define this, the preloaded Lisp ! 124: code will not be sharable; but that's better than failing completely. */ ! 125: ! 126: #define NO_REMAP ! 127: ! 128: #define STACK_DIRECTION -1 ! 129: ! 130: /* Since cannot purify, use standard Xenix 386 startup code. */ ! 131: ! 132: #define START_FILES /lib/386/Sseg.o pre-crt0.o /lib/386/Scrt0.o ! 133: ! 134: /* These really use terminfo. */ ! 135: ! 136: #define LIBS_TERMCAP /lib/386/Slibcurses.a \ ! 137: /lib/386/Slibtinfo.a /lib/386/Slibx.a ! 138: ! 139: /* Standard libraries for this machine. Since `-l' doesn't work in `ld'. */ ! 140: /* '__fltused' is unresolved w/o Slibcfp.a */ ! 141: #define LIB_STANDARD /lib/386/Slibcfp.a /lib/386/Slibc.a ! 142: #else /* not XENIX */ ! 143: ! 144: #ifdef USG ! 145: #ifdef USG5_4 ! 146: #define C_ALLOCA ! 147: #endif /* USG5_4 */ ! 148: #ifndef LIB_STANDARD ! 149: #if defined (__GNUC__) || defined (C_ALLOCA) ! 150: #define LIB_STANDARD -lc ! 151: #else ! 152: #define LIB_STANDARD -lPW -lc ! 153: #endif ! 154: #endif /* no LIB_STANDARD */ ! 155: #ifndef C_ALLOCA ! 156: #define HAVE_ALLOCA ! 157: #endif ! 158: #define NO_REMAP ! 159: #define TEXT_START 0 ! 160: #endif /* USG */ ! 161: #endif /* not XENIX */ ! 162: ! 163: #ifdef BSD ! 164: #define HAVE_ALLOCA ! 165: #endif /* BSD */ ! 166: ! 167: /* If compiling with GCC, let GCC implement alloca. */ ! 168: #if defined(__GNUC__) && !defined(alloca) ! 169: #define alloca(n) __builtin_alloca(n) ! 170: #define HAVE_ALLOCA ! 171: #endif ! 172: ! 173: #ifdef USG ! 174: #ifdef __STDC__ ! 175: #ifndef DONT_DEFINE_SIGNAL ! 176: /* Cast the function argument to avoid warnings. */ ! 177: #define signal(sig, func) (signal (sig, (void (*) (int)) (func))) ! 178: #endif ! 179: #endif ! 180: #endif ! 181: ! 182: #ifdef USG5_4 ! 183: #define DATA_SEG_BITS 0x08000000 ! 184: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.