diff options
| author | Jim Blandy | 1991-12-06 07:16:11 +0000 |
|---|---|---|
| committer | Jim Blandy | 1991-12-06 07:16:11 +0000 |
| commit | 30fe07a62d0d9e06d33cfc5acb32b4fcf213cd34 (patch) | |
| tree | 1d9a49564a16e06895ee8b0554b0570f19c50173 /src/m | |
| parent | 8785500682177e159758fa512365c8df54c85a9b (diff) | |
| download | emacs-30fe07a62d0d9e06d33cfc5acb32b4fcf213cd34.tar.gz emacs-30fe07a62d0d9e06d33cfc5acb32b4fcf213cd34.zip | |
Initial revision
Diffstat (limited to 'src/m')
| -rw-r--r-- | src/m/att3b.h | 166 | ||||
| -rw-r--r-- | src/m/ibmrs6000.h | 136 | ||||
| -rw-r--r-- | src/m/ibmrt-aix.h | 186 | ||||
| -rw-r--r-- | src/m/ibmrt.h | 139 |
4 files changed, 627 insertions, 0 deletions
diff --git a/src/m/att3b.h b/src/m/att3b.h new file mode 100644 index 00000000000..c9c3dbc8722 --- /dev/null +++ b/src/m/att3b.h | |||
| @@ -0,0 +1,166 @@ | |||
| 1 | /* Machine-dependent configuration for GNU Emacs for AT&T 3b machines. | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | Modified by David Robinson (daver@csvax.caltech.edu) 6/6/86 | ||
| 5 | |||
| 6 | This file is part of GNU Emacs. | ||
| 7 | |||
| 8 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 9 | it under the terms of the GNU General Public License as published by | ||
| 10 | the Free Software Foundation; either version 1, or (at your option) | ||
| 11 | any later version. | ||
| 12 | |||
| 13 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | GNU General Public License for more details. | ||
| 17 | |||
| 18 | You should have received a copy of the GNU General Public License | ||
| 19 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 20 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 21 | |||
| 22 | |||
| 23 | /* The following line tells the configuration script what sort of | ||
| 24 | operating system this machine is likely to run. | ||
| 25 | USUAL-OPSYS="usg5-2-2" */ | ||
| 26 | |||
| 27 | /* The following three symbols give information on | ||
| 28 | the size of various data types. */ | ||
| 29 | |||
| 30 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 31 | |||
| 32 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 33 | |||
| 34 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 35 | |||
| 36 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 37 | is the most significant byte. */ | ||
| 38 | |||
| 39 | #define BIG_ENDIAN | ||
| 40 | |||
| 41 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 42 | * group of arguments and treat it as an array of the arguments. */ | ||
| 43 | |||
| 44 | /* #define NO_ARG_ARRAY */ | ||
| 45 | |||
| 46 | /* Define WORD_MACHINE if addresses and such have | ||
| 47 | * to be corrected before they can be used as byte counts. */ | ||
| 48 | |||
| 49 | /* #define WORD_MACHINE */ | ||
| 50 | |||
| 51 | /* Define how to take a char and sign-extend into an int. | ||
| 52 | On machines where char is signed, this is a no-op. */ | ||
| 53 | /* The 3b20 doesn't sign extend characters OR ints, so | ||
| 54 | right shifting an int loses the sign bit */ | ||
| 55 | #define SIGN_EXTEND_CHAR(c) (((sign_extend_temp=(c)) & 0x80) \ | ||
| 56 | ? (sign_extend_temp | 0xFFFFFF00) \ | ||
| 57 | : (sign_extend_temp)) | ||
| 58 | |||
| 59 | /* Now define a symbol for the cpu type, if your compiler | ||
| 60 | does not define it automatically */ | ||
| 61 | #define ATT3B | ||
| 62 | |||
| 63 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 64 | /* This is desirable for most machines. */ | ||
| 65 | |||
| 66 | #define NO_UNION_TYPE | ||
| 67 | |||
| 68 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 69 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 70 | are always unsigned. | ||
| 71 | |||
| 72 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 73 | |||
| 74 | #define EXPLICIT_SIGN_EXTEND | ||
| 75 | |||
| 76 | /* Data type of load average, as read out of kmem. */ | ||
| 77 | /* #define LOAD_AVE_TYPE long */ | ||
| 78 | |||
| 79 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 80 | |||
| 81 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ | ||
| 82 | |||
| 83 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 84 | Then the function dump-emacs will not be defined | ||
| 85 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 86 | /* #define CANNOT_DUMP */ | ||
| 87 | |||
| 88 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 89 | pure and impure space as loaded can vary, and even their | ||
| 90 | relative order cannot be relied on. | ||
| 91 | |||
| 92 | Otherwise Emacs assumes that text space precedes data space, | ||
| 93 | numerically. */ | ||
| 94 | |||
| 95 | /* #define VIRT_ADDR_VARIES */ /* Karl Kleinpaste says this isn't needed. */ | ||
| 96 | |||
| 97 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 98 | and the one written in C should be used instead. | ||
| 99 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 100 | working alloca function and it should be used. | ||
| 101 | Define neither one if an assembler-language alloca | ||
| 102 | in the file alloca.s should be used. */ | ||
| 103 | |||
| 104 | /* SysV has alloca in the PW library */ | ||
| 105 | |||
| 106 | #define LIB_STANDARD -lPW -lc | ||
| 107 | #define HAVE_ALLOCA | ||
| 108 | |||
| 109 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 110 | to change the boundary between the text section and data section | ||
| 111 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 112 | code will not be sharable; but that's better than failing completely. */ | ||
| 113 | |||
| 114 | #define NO_REMAP | ||
| 115 | |||
| 116 | /* #define LD_SWITCH_MACHINE -N */ | ||
| 117 | |||
| 118 | /* Use Terminfo, not Termcap. */ | ||
| 119 | |||
| 120 | #define TERMINFO | ||
| 121 | |||
| 122 | /* -O has been observed to make correct C code in Emacs not work. | ||
| 123 | So don't try to use it. */ | ||
| 124 | |||
| 125 | #if u3b2 || u3b5 || u3b15 | ||
| 126 | #define C_OPTIMIZE_SWITCH | ||
| 127 | #endif | ||
| 128 | |||
| 129 | /* Define our page size. */ | ||
| 130 | |||
| 131 | #define NBPC 2048 | ||
| 132 | |||
| 133 | /* The usual definition of XINT, which involves shifting, does not | ||
| 134 | sign-extend properly on this machine. */ | ||
| 135 | |||
| 136 | #define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \ | ||
| 137 | ? (sign_extend_temp | 0xFF000000) \ | ||
| 138 | : (sign_extend_temp & 0x00FFFFFF)) | ||
| 139 | |||
| 140 | #ifdef emacs /* Don't do this when makeing xmakefile! */ | ||
| 141 | extern int sign_extend_temp; | ||
| 142 | #endif | ||
| 143 | |||
| 144 | #if u3b2 || u3b5 || u3b15 | ||
| 145 | |||
| 146 | /* On 3b2/5/15, data space has high order bit on. */ | ||
| 147 | #define VALMASK (((1<<VALBITS) - 1) | (1 << 31)) | ||
| 148 | #define XTYPE(a) ((enum Lisp_Type) (((a) >> VALBITS) & 0x7F)) | ||
| 149 | #define GCTYPEBITS 5 | ||
| 150 | #define XADDRFIX(a) ((a) |= 0X80000000) /* Because of high order */ | ||
| 151 | |||
| 152 | #endif /* 3b2, 3b5 or 3b15 */ | ||
| 153 | |||
| 154 | #define TEXT_START 0 | ||
| 155 | |||
| 156 | |||
| 157 | /* For alloca.c (not actually used, since HAVE_ALLOCA) */ | ||
| 158 | #define STACK_DIRECTION 1 | ||
| 159 | |||
| 160 | /* (short) negative-int doesn't sign-extend correctly */ | ||
| 161 | #define SHORT_CAST_BUG | ||
| 162 | |||
| 163 | /* 3B2s with WIN/3B have winsize defined in ptem.h */ | ||
| 164 | #if u3b2 | ||
| 165 | #define NEED_PTEM_H | ||
| 166 | #endif /* u3b2 */ | ||
diff --git a/src/m/ibmrs6000.h b/src/m/ibmrs6000.h new file mode 100644 index 00000000000..b84ff0437ba --- /dev/null +++ b/src/m/ibmrs6000.h | |||
| @@ -0,0 +1,136 @@ | |||
| 1 | /* R2 AIX machine/system dependent defines | ||
| 2 | Copyright (C) 1988 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 line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="aix3-1" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #define NO_ARG_ARRAY | ||
| 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) ((((int) (c)) << 24) >> 24) | ||
| 48 | |||
| 49 | /* Now define a symbol for the cpu type, if your compiler | ||
| 50 | does not define it automatically. */ | ||
| 51 | |||
| 52 | #define IBMR2AIX | ||
| 53 | |||
| 54 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 55 | /* This is desirable for most machines. */ | ||
| 56 | |||
| 57 | #define NO_UNION_TYPE | ||
| 58 | |||
| 59 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 60 | Then the function dump-emacs will not be defined | ||
| 61 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 62 | /* #define CANNOT_DUMP */ | ||
| 63 | |||
| 64 | #define UNEXEC unexaix.o | ||
| 65 | |||
| 66 | /* Define addresses, macros, change some setup for dump */ | ||
| 67 | |||
| 68 | #define NO_REMAP | ||
| 69 | |||
| 70 | #define TEXT_START 0x10000000 | ||
| 71 | #define TEXT_END 0 | ||
| 72 | #define DATA_START 0x20000000 | ||
| 73 | #define DATA_END 0 | ||
| 74 | |||
| 75 | /* The data segment in this machine always starts at address 0x20000000. | ||
| 76 | An address of data cannot be stored correctly in a Lisp object; | ||
| 77 | we always lose the high bits. We must tell XPNTR to add them back. */ | ||
| 78 | |||
| 79 | #define DATA_SEG_BITS 0x20000000 | ||
| 80 | |||
| 81 | #ifdef CANNOT_DUMP | ||
| 82 | /* Define shared memory segment symbols */ | ||
| 83 | |||
| 84 | #define PURE_SEG_BITS 0x30000000 | ||
| 85 | |||
| 86 | /* Use shared memory. */ | ||
| 87 | /* This is turned off because it does not always work. See etc/AIX.DUMP. */ | ||
| 88 | /* #define HAVE_SHM */ | ||
| 89 | #define SHMKEY 5305035 /* used for shared memory code segments */ | ||
| 90 | #endif /* CANNOT_DUMP */ | ||
| 91 | |||
| 92 | #define N_BADMAG(x) BADMAG(x) | ||
| 93 | #define N_TXTOFF(x) A_TEXTPOS(x) | ||
| 94 | #define N_SYMOFF(x) A_SYMPOS(x) | ||
| 95 | #define A_TEXT_OFFSET(HDR) sizeof(HDR) | ||
| 96 | /* #define ADJUST_EXEC_HEADER \ | ||
| 97 | unexec_text_start += sizeof(hdr); \ | ||
| 98 | unexec_data_start = ohdr.a_dbase | ||
| 99 | */ | ||
| 100 | #undef ADDR_CORRECT | ||
| 101 | #define ADDR_CORRECT(x) ((int)(x)) | ||
| 102 | |||
| 103 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 104 | and the one written in C should be used instead. | ||
| 105 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 106 | working alloca function and it should be used. | ||
| 107 | Define neither one if an assembler-language alloca | ||
| 108 | in the file alloca.s should be used. */ | ||
| 109 | |||
| 110 | #define C_ALLOCA | ||
| 111 | #define STACK_DIRECTION -1 /* tell alloca.c which way it grows */ | ||
| 112 | |||
| 113 | /* Specify the font for X to use. */ | ||
| 114 | |||
| 115 | #define X_DEFAULT_FONT "Rom14.500" | ||
| 116 | |||
| 117 | /* Here override various assumptions in ymakefile */ | ||
| 118 | |||
| 119 | #define OBJECTS_MACHINE hftctl.o | ||
| 120 | #define C_SWITCH_MACHINE -D_BSD | ||
| 121 | #define LIBS_MACHINE -lrts | ||
| 122 | #define START_FILES | ||
| 123 | #define HAVE_DUP2 | ||
| 124 | #define HAVE_GETTIMEOFDAY | ||
| 125 | #define HAVE_SYSVIPC | ||
| 126 | #define HAVE_SETSID | ||
| 127 | #define HAVE_GETWD | ||
| 128 | /*** BUILD 9008 - FIONREAD problem still exists in X-Windows. ***/ | ||
| 129 | #define BROKEN_FIONREAD | ||
| 130 | |||
| 131 | /* Don't try to include sioctl.h or ptem.h. */ | ||
| 132 | #undef NEED_SIOCTL | ||
| 133 | #undef NEED_PTEM_H | ||
| 134 | |||
| 135 | #undef LINKER | ||
| 136 | #define LINKER cc -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp | ||
diff --git a/src/m/ibmrt-aix.h b/src/m/ibmrt-aix.h new file mode 100644 index 00000000000..59cb819f84f --- /dev/null +++ b/src/m/ibmrt-aix.h | |||
| @@ -0,0 +1,186 @@ | |||
| 1 | /* RTPC AIX machine/system dependent defines | ||
| 2 | Copyright (C) 1988 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 line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #define NO_ARG_ARRAY | ||
| 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) ((((int) (c)) << 24) >> 24) | ||
| 48 | |||
| 49 | /* Now define a symbol for the cpu type, if your compiler | ||
| 50 | does not define it automatically. */ | ||
| 51 | |||
| 52 | #ifndef IBMAIX | ||
| 53 | #define IBMAIX | ||
| 54 | #endif | ||
| 55 | |||
| 56 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 57 | /* This is desirable for most machines. */ | ||
| 58 | |||
| 59 | #define NO_UNION_TYPE | ||
| 60 | |||
| 61 | /* No load average information appears in the AIX kernel. VRM has this | ||
| 62 | info, and if anyone desires they should fix fns.c to get it out of VRM */ | ||
| 63 | |||
| 64 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 65 | Then the function dump-emacs will not be defined | ||
| 66 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 67 | |||
| 68 | /* #define CANNOT_DUMP */ | ||
| 69 | |||
| 70 | /* Define addresses, macros, change some setup for dump */ | ||
| 71 | |||
| 72 | #undef COFF | ||
| 73 | #define NO_REMAP | ||
| 74 | #undef static | ||
| 75 | /* Since NO_REMAP, problem with statics doesn't exist */ | ||
| 76 | |||
| 77 | #define TEXT_START 0x10000000 | ||
| 78 | #define TEXT_END 0 | ||
| 79 | #define DATA_START 0x20000000 | ||
| 80 | #define DATA_END 0 | ||
| 81 | |||
| 82 | /* The data segment in this machine always starts at address 0x20000000. | ||
| 83 | An address of data cannot be stored correctly in a Lisp object; | ||
| 84 | we always lose the high bits. We must tell XPNTR to add them back. */ | ||
| 85 | |||
| 86 | #define DATA_SEG_BITS 0x20000000 | ||
| 87 | |||
| 88 | #define N_BADMAG(x) BADMAG(x) | ||
| 89 | #define N_TXTOFF(x) A_TEXTPOS(x) | ||
| 90 | #define N_SYMOFF(x) A_SYMPOS(x) | ||
| 91 | #define A_TEXT_OFFSET(HDR) sizeof(HDR) | ||
| 92 | #define ADJUST_EXEC_HEADER \ | ||
| 93 | unexec_text_start += sizeof(hdr); \ | ||
| 94 | unexec_data_start = ohdr.a_dbase | ||
| 95 | #undef ADDR_CORRECT | ||
| 96 | #define ADDR_CORRECT(x) ((int)(x)) | ||
| 97 | |||
| 98 | /* This is the offset of the executable's text, from the start of the file. */ | ||
| 99 | |||
| 100 | #define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr)) | ||
| 101 | |||
| 102 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 103 | and the one written in C should be used instead. | ||
| 104 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 105 | working alloca function and it should be used. | ||
| 106 | Define neither one if an assembler-language alloca | ||
| 107 | in the file alloca.s should be used. */ | ||
| 108 | |||
| 109 | #define C_ALLOCA | ||
| 110 | #define STACK_DIRECTION -1 /* tell alloca.c which way it grows */ | ||
| 111 | |||
| 112 | /* AIX has PTYs, so define here, along with macros needed to make them work. */ | ||
| 113 | |||
| 114 | #define HAVE_PTYS | ||
| 115 | #define PTY_ITERATION for (i=0; i<256; i++) | ||
| 116 | #define PTY_NAME_SPRINTF sprintf (ptyname, "/dev/ptc%d", i); | ||
| 117 | |||
| 118 | #define PTY_TTY_NAME_SPRINTF \ | ||
| 119 | { /* Check that server side not already open */ \ | ||
| 120 | if ((ioctl (*ptyv, PTYSTATUS, 0) & 0xFFFF) != 0) \ | ||
| 121 | { \ | ||
| 122 | close (*ptyv); \ | ||
| 123 | continue; \ | ||
| 124 | } \ | ||
| 125 | /* And finally to be sure we can open it later */ \ | ||
| 126 | sprintf (ptyname, "/dev/pts%d", i); \ | ||
| 127 | signal (SIGHUP,SIG_IGN); \ | ||
| 128 | } /* ignore hangup at process end */ | ||
| 129 | |||
| 130 | /* TIOCNOTTY doesn't occur on AIX, but the rest | ||
| 131 | of the conditionalized code in process.c does | ||
| 132 | the right thing if we fake this out. */ | ||
| 133 | #define TIOCNOTTY IOCTYPE | ||
| 134 | |||
| 135 | /* AIX has IPC. It also has sockets, and either can be used for client/server. | ||
| 136 | I would suggest the client/server code be changed to use HAVE_SOCKETS rather | ||
| 137 | than BSD as the conditional if sockets provide any advantages. */ | ||
| 138 | |||
| 139 | #define HAVE_SYSVIPC | ||
| 140 | |||
| 141 | /* AIX has sockets */ | ||
| 142 | |||
| 143 | #define HAVE_SOCKETS | ||
| 144 | /* #define SKTPAIR */ /* SKTPAIR works, but what is advantage over pipes? */ | ||
| 145 | |||
| 146 | /* Specify the font for X to use. */ | ||
| 147 | |||
| 148 | #define X_DEFAULT_FONT "Rom14.500" | ||
| 149 | |||
| 150 | /* Here override various assumptions in ymakefile */ | ||
| 151 | |||
| 152 | /* On AIX 2.2.1, use these definitions instead | ||
| 153 | #define C_SWITCH_MACHINE -I/usr/include -Nn2000 | ||
| 154 | #define LIBS_MACHINE -lX -lrts | ||
| 155 | */ | ||
| 156 | |||
| 157 | #define C_SWITCH_MACHINE -I/usr/include -I/usr/include/bsd -Nn2000 | ||
| 158 | #define LIBS_MACHINE -lXMenu -lX -lsock -lbsd -lrts | ||
| 159 | |||
| 160 | #define OBJECTS_MACHINE hftctl.o | ||
| 161 | #define START_FILES /lib/crt0.o | ||
| 162 | /* -lXMenu, -lX must precede -lsock, -lbsd */ | ||
| 163 | #define LD_SWITCH_MACHINE -n -T0x10000000 -K -e start | ||
| 164 | |||
| 165 | #if 0 /* I refuse to promulgate a recommendation that would make | ||
| 166 | users unable to debug - RMS. */ | ||
| 167 | /* delete the following line to foil optimization, enable debugging */ | ||
| 168 | #define C_DEBUG_SWITCH -O | ||
| 169 | #endif | ||
| 170 | |||
| 171 | |||
| 172 | /* Setup to do some things BSD way - these won't work previous to AIX 2.1.2 */ | ||
| 173 | |||
| 174 | #include </usr/include/bsd/BSDtoAIX.h> | ||
| 175 | #define BSTRING | ||
| 176 | #define HAVE_DUP2 | ||
| 177 | #define HAVE_GETTIMEOFDAY | ||
| 178 | #define HAVE_SELECT | ||
| 179 | #define HAVE_TIMEVAL | ||
| 180 | #define HAVE_VFORK | ||
| 181 | |||
| 182 | /* But don't use utimes() -- it causes SIGSEGV! Use utime() instead. */ | ||
| 183 | #define USE_UTIME | ||
| 184 | |||
| 185 | /* AIX defines FIONREAD, but it does not work. */ | ||
| 186 | #define BROKEN_FIONREAD | ||
diff --git a/src/m/ibmrt.h b/src/m/ibmrt.h new file mode 100644 index 00000000000..5b7d6a34d6b --- /dev/null +++ b/src/m/ibmrt.h | |||
| @@ -0,0 +1,139 @@ | |||
| 1 | /* RTPC machine dependent defines | ||
| 2 | Copyright (C) 1986 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 line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="bsd4-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #define NO_ARG_ARRAY | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | #define WORD_MACHINE | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) ((signed char)(c)) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically. */ | ||
| 56 | |||
| 57 | #define ibmrt | ||
| 58 | #define romp /* unfortunately old include files are hanging around. */ | ||
| 59 | |||
| 60 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 61 | /* This is desirable for most machines. */ | ||
| 62 | |||
| 63 | #define NO_UNION_TYPE | ||
| 64 | |||
| 65 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 66 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 67 | are always unsigned. | ||
| 68 | |||
| 69 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 70 | |||
| 71 | #define EXPLICIT_SIGN_EXTEND | ||
| 72 | |||
| 73 | /* Data type of load average, as read out of kmem. */ | ||
| 74 | |||
| 75 | #define LOAD_AVE_TYPE double /* For AIS (sysV) */ | ||
| 76 | |||
| 77 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 78 | |||
| 79 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) | ||
| 80 | |||
| 81 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 82 | Then the function dump-emacs will not be defined | ||
| 83 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 84 | |||
| 85 | /* #define CANNOT_DUMP */ | ||
| 86 | |||
| 87 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 88 | pure and impure space as loaded can vary, and even their | ||
| 89 | relative order cannot be relied on. | ||
| 90 | |||
| 91 | Otherwise Emacs assumes that text space precedes data space, | ||
| 92 | numerically. */ | ||
| 93 | |||
| 94 | #undef VIRT_ADDR_VARIES | ||
| 95 | |||
| 96 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 97 | and the one written in C should be used instead. | ||
| 98 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 99 | working alloca function and it should be used. | ||
| 100 | Define neither one if an assembler-language alloca | ||
| 101 | in the file alloca.s should be used. */ | ||
| 102 | |||
| 103 | #define HAVE_ALLOCA | ||
| 104 | |||
| 105 | /* The data segment in this machine starts at a fixed address. | ||
| 106 | An address of data cannot be stored correctly in a Lisp object; | ||
| 107 | we always lose the high bits. We must tell XPNTR to add them back. */ | ||
| 108 | |||
| 109 | #define DATA_SEG_BITS 0x10000000 | ||
| 110 | #define DATA_START 0x10000000 | ||
| 111 | |||
| 112 | /* The text segment always starts at a fixed address. | ||
| 113 | This way we don't need to have a label _start defined. */ | ||
| 114 | #define TEXT_START 0 | ||
| 115 | |||
| 116 | #define VALBITS 26 | ||
| 117 | #define GCTYPEBITS 5 | ||
| 118 | |||
| 119 | /* Taking a pointer to a char casting it as int pointer */ | ||
| 120 | /* and then taking the int which the int pointer points to */ | ||
| 121 | /* is practically guaranteed to give erroneous results */ | ||
| 122 | |||
| 123 | #define NEED_ERRNO | ||
| 124 | |||
| 125 | #define SKTPAIR | ||
| 126 | |||
| 127 | /* BSD has BSTRING. */ | ||
| 128 | |||
| 129 | #define BSTRING | ||
| 130 | |||
| 131 | /* Special switches to give the C compiler. */ | ||
| 132 | |||
| 133 | #define C_SWITCH_MACHINE -Dalloca=_Alloca | ||
| 134 | |||
| 135 | /* Don't attempt to relabel some of the data as text when dumping. | ||
| 136 | It does not work because their virtual addresses are not consecutive. | ||
| 137 | This enables us to use the standard crt0.o. */ | ||
| 138 | |||
| 139 | #define NO_REMAP | ||