aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1991-12-13 18:49:49 +0000
committerJim Blandy1991-12-13 18:49:49 +0000
commit20c428fd9d239eca0a835e3b0fe2629e789ce562 (patch)
treec9dc47c923acc0f7db3dd699bd7e38e7b20893cc /src
parent20a8832d8461fec6001e0f9d09bbb4731c585a84 (diff)
downloademacs-20c428fd9d239eca0a835e3b0fe2629e789ce562.tar.gz
emacs-20c428fd9d239eca0a835e3b0fe2629e789ce562.zip
Initial revision
Diffstat (limited to 'src')
-rw-r--r--src/m/7300.h91
-rw-r--r--src/m/alliant.h147
-rw-r--r--src/m/altos.h77
-rw-r--r--src/m/amdahl.h171
-rw-r--r--src/m/apollo.h101
-rw-r--r--src/m/aviion.h150
-rw-r--r--src/m/celerity.h73
-rw-r--r--src/m/clipper.h117
-rw-r--r--src/m/cnvrgnt.h124
-rw-r--r--src/m/convex.h173
-rw-r--r--src/m/cydra5.h139
-rw-r--r--src/m/delta.h168
-rw-r--r--src/m/dual.h82
-rw-r--r--src/m/elxsi.h153
-rw-r--r--src/m/gec63.h83
-rw-r--r--src/m/gould.h208
-rw-r--r--src/m/hp800.h193
-rw-r--r--src/m/hp9000s300.h224
-rw-r--r--src/m/ibm370aix.h174
-rw-r--r--src/m/ibmps2-aix.h238
-rw-r--r--src/m/intel386.h182
-rw-r--r--src/m/iris4d.h193
-rw-r--r--src/m/irist.h155
-rw-r--r--src/m/isi-ov.h105
-rw-r--r--src/m/masscomp.h150
-rw-r--r--src/m/mega68.h61
-rw-r--r--src/m/mg1.h126
-rw-r--r--src/m/mips.h213
-rw-r--r--src/m/mips4.h33
-rw-r--r--src/m/news.h76
-rw-r--r--src/m/ns16000.h112
-rw-r--r--src/m/ns32000.h121
-rw-r--r--src/m/nu.h84
-rw-r--r--src/m/orion.h84
-rw-r--r--src/m/orion105.h90
-rw-r--r--src/m/plexus.h128
-rw-r--r--src/m/pmax.h22
-rw-r--r--src/m/pyramid.h76
-rw-r--r--src/m/sequent.h188
-rw-r--r--src/m/sparc.h119
-rw-r--r--src/m/sps7.h140
-rw-r--r--src/m/stride.h136
-rw-r--r--src/m/sun1.h88
-rw-r--r--src/m/sun2.h109
-rw-r--r--src/m/tahoe.h92
-rw-r--r--src/m/targon31.h117
-rw-r--r--src/m/tek4300.h98
-rw-r--r--src/m/template.h110
-rw-r--r--src/m/tower32.h134
-rw-r--r--src/m/tower32v3.h139
-rw-r--r--src/m/ustation.h158
-rw-r--r--src/m/vax.h132
-rw-r--r--src/m/wicat.h168
-rw-r--r--src/m/xps100.h118
-rw-r--r--src/s/aix3-1.h232
-rw-r--r--src/s/bsd4-3.h129
-rw-r--r--src/s/hpux.h260
-rw-r--r--src/s/hpux8.h13
-rw-r--r--src/s/iris3-6.h193
-rw-r--r--src/s/isc2-2.h13
-rw-r--r--src/s/rtu.h172
-rw-r--r--src/s/sunos4shr.h30
-rw-r--r--src/s/template.h143
-rw-r--r--src/s/usg5-3.h215
-rw-r--r--src/s/usg5-4.h163
65 files changed, 8506 insertions, 0 deletions
diff --git a/src/m/7300.h b/src/m/7300.h
new file mode 100644
index 00000000000..31606928a67
--- /dev/null
+++ b/src/m/7300.h
@@ -0,0 +1,91 @@
1/* machine description file for AT&T UNIX PC model 7300
2 Copyright (C) 1986 Free Software Foundation, Inc.
3 Modified for this machine by mtxinu!rtech!gonzo!daveb
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 1, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
20
21
22/* The following line tells the configuration script what sort of
23 operating system this machine is likely to run.
24 USUAL-OPSYS="usg5-2-2" */
25
26/* Supposedly now these machines have flexnames.
27
28/* # define SHORTNAMES */
29
30
31/* The following three symbols give information on
32 the size of various data types. */
33
34#define SHORTBITS 16 /* Number of bits in a short */
35
36#define INTBITS 32 /* Number of bits in an int */
37
38#define LONGBITS 32 /* Number of bits in a long */
39
40/* Define BIG_ENDIAN iff lowest-numbered byte in a word
41 is the most significant byte. */
42
43#define BIG_ENDIAN
44
45/* XINT must explicitly sign-extend */
46
47#define EXPLICIT_SIGN_EXTEND
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) (c)
53
54/* Use type int rather than a union, to represent Lisp_Object */
55
56#define NO_UNION_TYPE
57
58/* Now define a symbol for the cpu type, if your compiler
59 does not define it automatically:
60 vax, m68000, ns16000 are the ones defined so far. */
61
62# ifndef mc68k
63# define mc68k
64# endif
65#ifndef m68k
66#define m68k
67#endif
68
69/* Cause crt0.c to define errno. */
70
71#define NEED_ERRNO
72
73/* Data type of load average, as read out of kmem. */
74/* These are commented out since it is not supported by this machine. */
75
76/* #define LOAD_AVE_TYPE long */
77
78/* Convert that into an integer that is 100 for a load average of 1.0 */
79
80/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */
81
82#define SWITCH_ENUM_BUG
83
84/* These three lines were new in 18.50. They were said to permit
85 a demand-paged executable, but someone else says they don't work.
86 Someone else says they do. They didn't work because errno was an
87 initialized variable in crt0.c, and because of %splimit (also therein),
88 both of which have been fixed now. */
89#define SECTION_ALIGNMENT 0x03ff
90#define SEGMENT_MASK 0xffff
91#define LD_SWITCH_MACHINE -z
diff --git a/src/m/alliant.h b/src/m/alliant.h
new file mode 100644
index 00000000000..17ede6119e8
--- /dev/null
+++ b/src/m/alliant.h
@@ -0,0 +1,147 @@
1/* alliant.h Alliant machine running system version 2 or 3.
2 Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
3 Note that for version 1 of the Alliant system
4 you should use alliant1.h instead of this file.
5 Use alliant4.h for version 4.
6
7This file is part of GNU Emacs.
8
9GNU Emacs is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 1, or (at your option)
12any later version.
13
14GNU Emacs is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License
20along with GNU Emacs; see the file COPYING. If not, write to
21the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
22
23/* The following line tells the configuration script what sort of
24 operating system this machine is likely to run.
25 USUAL-OPSYS="bsd4-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#ifdef ALLIANT_1
45#define NO_ARG_ARRAY
46#endif
47
48/* Define WORD_MACHINE if addresses and such have
49 * to be corrected before they can be used as byte counts. */
50
51#undef WORD_MACHINE
52
53/* Define how to take a char and sign-extend into an int.
54 On machines where char is signed, this is a no-op. */
55
56#define SIGN_EXTEND_CHAR(c) (c)
57
58/* Now define a symbol for the cpu type, if your compiler
59 does not define it automatically:
60 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
61 are the ones defined so far. */
62
63#define ALLIANT
64
65/* Use type int rather than a union, to represent Lisp_Object */
66/* This is desirable for most machines. */
67
68#define NO_UNION_TYPE
69
70/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
71 the 24-bit bit field into an int. In other words, if bit fields
72 are always unsigned.
73
74 If you use NO_UNION_TYPE, this flag does not matter. */
75/* On Alliants, bitfields are unsigned. */
76
77#define EXPLICIT_SIGN_EXTEND
78
79/* No load average information available for Alliants. */
80
81#undef LOAD_AVE_TYPE
82#undef LOAD_AVE_CVT
83
84/* Define CANNOT_DUMP on machines where unexec does not work.
85 Then the function dump-emacs will not be defined
86 and temacs will do (load "loadup") automatically unless told otherwise. */
87
88#undef CANNOT_DUMP
89
90/* Define VIRT_ADDR_VARIES if the virtual addresses of
91 pure and impure space as loaded can vary, and even their
92 relative order cannot be relied on.
93
94 Otherwise Emacs assumes that text space precedes data space,
95 numerically. */
96
97#undef VIRT_ADDR_VARIES
98
99/* Define C_ALLOCA if this machine does not support a true alloca
100 and the one written in C should be used instead.
101 Define HAVE_ALLOCA to say that the system provides a properly
102 working alloca function and it should be used.
103 Define neither one if an assembler-language alloca
104 in the file alloca.s should be used. */
105
106#undef C_ALLOCA
107#define HAVE_ALLOCA
108
109#ifdef ALLIANT_1
110#define C_ALLOCA
111#undef HAVE_ALLOCA
112#endif /* ALLIANT_1 */
113
114/* Define NO_REMAP if memory segmentation makes it not work well
115 to change the boundary between the text section and data section
116 when Emacs is dumped. If you define this, the preloaded Lisp
117 code will not be sharable; but that's better than failing completely. */
118/* Actually, Alliant CONCENTRIX does paging "right":
119 data pages are copy-on-write, which means that the pure data areas
120 are shared automatically and remapping is not necessary. */
121
122#define NO_REMAP
123
124/* Alliant needs special crt0.o because system version is not reentrant */
125
126#define START_FILES crt0.o
127
128/* Alliant dependent code for dumping executing image.
129 See crt0.c code for alliant. */
130
131#define ADJUST_EXEC_HEADER {\
132extern int _curbrk, _setbrk;\
133_setbrk = _curbrk;\
134hdr.a_bss_addr = bss_start;\
135unexec_text_start = hdr.a_text_addr;}
136
137/* cc screws up on long names. Try making cpp replace them. */
138
139#ifdef ALLIANT_1
140#define Finsert_abbrev_table_description Finsert_abbrev_table_descrip
141#define internal_with_output_to_temp_buffer internal_with_output_to_tem
142#endif
143
144/* "vector" is a typedef in /usr/include/machine/reg.h, so its use as
145 a variable name causes errors when compiling under ANSI C. */
146
147#define vector xxvector
diff --git a/src/m/altos.h b/src/m/altos.h
new file mode 100644
index 00000000000..539f79dfb28
--- /dev/null
+++ b/src/m/altos.h
@@ -0,0 +1,77 @@
1/* altos machine description file Altos 3068 Unix System V Release 2
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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" */
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/* Vax is not big-endian: lowest numbered byte is least significant,
35 but 68000's are. */
36
37#define BIG_ENDIAN
38
39/* Define how to take a char and sign-extend into an int.
40 On machines where char is signed, this is a no-op. */
41
42#define SIGN_EXTEND_CHAR(c) (c)
43
44#define EXPLICIT_SIGN_EXTEND
45
46/* Use type int rather than a union, to represent Lisp_Object */
47
48#define NO_UNION_TYPE
49
50#define LIB_STANDARD -lc
51
52#ifdef __GNUC__
53#define alloca __builtin_alloca
54#define HAVE_ALLOCA
55#else
56#define C_ALLOCA /* we have -lPW and alloca but it's broken!
57 <vsedev!ron> */
58#endif
59
60#define SWITCH_ENUM_BUG
61
62#define NO_REMAP
63#define STACK_DIRECTION -1
64
65#undef TERMINFO
66
67#undef CANNOT_DUMP
68#undef SHORTNAMES
69#define TERMCAP
70
71#define LIBS_TERMCAP -ltermlib
72#define PURESIZE 220000
73#define ALTOS
74
75#ifdef __GNUC__
76#define COFF_ENCAPSULATE
77#endif
diff --git a/src/m/amdahl.h b/src/m/amdahl.h
new file mode 100644
index 00000000000..261d369c740
--- /dev/null
+++ b/src/m/amdahl.h
@@ -0,0 +1,171 @@
1/* amdahl machine description file
2 Copyright (C) 1987 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20/*
21This file for amdahl_uts created by modifying the template.h
22by Jishnu Mukerji 3/1/87
23
24The following line tells the configuration script what sort of
25operating system this machine is likely to run.
26USUAL-OPSYS="usg5-2-2"
27
28This file works with the Amdahl uts native C compiler. The 5.2u370
29compiler is so brain damaged that it is not even worth trying to use it.
30*/
31
32/* The following three symbols give information on
33 the size of various data types. */
34
35#define SHORTBITS 16 /* Number of bits in a short */
36
37#define INTBITS 32 /* Number of bits in an int */
38
39#define LONGBITS 32 /* Number of bits in a long */
40
41/* Define BIG_ENDIAN iff lowest-numbered byte in a word
42 is the most significant byte. */
43
44#define BIG_ENDIAN
45
46/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
47 * group of arguments and treat it as an array of the arguments. */
48
49#undef NO_ARG_ARRAY
50
51/* Define WORD_MACHINE if addresses and such have
52 * to be corrected before they can be used as byte counts. */
53
54#define WORD_MACHINE /* not actually used anywhere yet! */
55
56/* Define how to take a char and sign-extend into an int.
57 On machines where char is signed, this is a no-op. */
58
59#define SIGN_EXTEND_CHAR(c) (((sign_extend_temp=(c)) & 0x80) \
60 ? (sign_extend_temp | 0xFFFFFF00) \
61 : (sign_extend_temp))
62
63/* Now define a symbol for the cpu type, if your compiler
64 does not define it automatically:
65 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
66 are the ones defined so far. */
67
68/* uts gets defined automatically */
69/* However for clarity define amdahl_uts */
70#define amdahl_uts
71
72/* Use type int rather than a union, to represent Lisp_Object */
73/* This is desirable for most machines. */
74
75#define NO_UNION_TYPE
76
77/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
78 the 24-bit bit field into an int. In other words, if bit fields
79 are always unsigned.
80
81 If you use NO_UNION_TYPE, this flag does not matter. */
82
83#define EXPLICIT_SIGN_EXTEND
84
85/* Data type of load average, as read out of kmem. */
86
87/* #define LOAD_AVE_TYPE long*/
88
89/* Convert that into an integer that is 100 for a load average of 1.0 */
90
91/*#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)*/
92
93/* Define CANNOT_DUMP on machines where unexec does not work.
94 Then the function dump-emacs will not be defined
95 and temacs will do (load "loadup") automatically unless told otherwise. */
96
97/* #define CANNOT_DUMP
98
99/* Define VIRT_ADDR_VARIES if the virtual addresses of
100 pure and impure space as loaded can vary, and even their
101 relative order cannot be relied on.
102
103 Otherwise Emacs assumes that text space precedes data space,
104 numerically. */
105
106/* #define VIRT_ADDR_VARIES*/
107
108/* Define C_ALLOCA if this machine does not support a true alloca
109 and the one written in C should be used instead.
110 Define HAVE_ALLOCA to say that the system provides a properly
111 working alloca function and it should be used.
112 Define neither one if an assembler-language alloca
113 in the file alloca.s should be used. */
114
115#define C_ALLOCA
116/*#define HAVE_ALLOCA */
117
118#ifdef HAVE_ALLOCA
119#define LIB_STANDARD -lPW -lc
120#endif
121
122/* Define NO_REMAP if memory segmentation makes it not work well
123 to change the boundary between the text section and data section
124 when Emacs is dumped. If you define this, the preloaded Lisp
125 code will not be sharable; but that's better than failing completely. */
126
127/*#define NO_REMAP*/
128
129#define TERMINFO
130
131/* The usual definition of XINT, which involves shifting, does not
132 sign-extend properly on this machine. */
133
134#define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \
135 ? (sign_extend_temp | 0xFF000000) \
136 : (sign_extend_temp & 0x00FFFFFF))
137
138#ifdef emacs /* Don't do this when making xmakefile! */
139extern int sign_extend_temp;
140#endif
141
142/* The following needed to load the proper crt0.o and to get the
143 proper declaration of data_start in the #undef NO_REMAP case */
144
145#ifndef NO_REMAP
146#define START_FILES pre-crt0.o /lib/crt0.o
147#endif
148
149/* Perhaps this means that the optimizer isn't safe to use. */
150
151#define C_OPTIMIZE_SWITCH
152
153/* Put text and data on non-segment boundary; makes image smaller */
154
155#define LD_SWITCH_MACHINE -N
156
157/* When writing the 'xemacs' file, make text segment ro */
158#define EXEC_MAGIC 0410
159
160/* Mask for address bits within a memory segment */
161#define SEGSIZ 0x10000 /* Should this not be defined elsewhere ? */
162#define SEGMENT_MASK (SEGSIZ - 1)
163
164/* Tell alloca.c which direction stack grows. */
165#define STACK_DIRECTION -1
166
167/* Compensate for error in signal.h. */
168#if NSIG==19
169#undef NSIG
170#define NSIG 20
171#endif
diff --git a/src/m/apollo.h b/src/m/apollo.h
new file mode 100644
index 00000000000..7f2ba4c1678
--- /dev/null
+++ b/src/m/apollo.h
@@ -0,0 +1,101 @@
1/* machine description file for Apollo machine.
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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/* 68000 has lowest-numbered byte as most significant */
35
36#define BIG_ENDIAN
37
38/* Define how to take a char and sign-extend into an int.
39 On machines where char is signed, this is a no-op. */
40
41#define SIGN_EXTEND_CHAR(c) (c)
42
43/* Say this machine is a 68000 */
44
45/* #define m68000 */ /* Done by the C compiler */
46
47#define APOLLO
48
49/* Assume we use s-bsd4-3.h for system version 10. */
50
51#ifdef BSD4_3
52#define APOLLO_SR10
53#endif
54
55/* Use type int rather than a union, to represent Lisp_Object */
56
57#define NO_UNION_TYPE
58
59/* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT
60 since there is no /dev/kmem */
61
62/* Define CANNOT_DUMP because it is impossible to dump. */
63
64#define CANNOT_DUMP
65
66/* Define VIRT_ADDR_VARIES because the virtual addresses of
67 pure and impure space as loaded can vary, and even their
68 relative order cannot be relied on. */
69
70#define VIRT_ADDR_VARIES
71
72/* Define HAVE_ALLOCA because we use the system's version of alloca. */
73
74#define HAVE_ALLOCA
75
76/* DN460 has a 28 bit virtual address space, and 26 bits are often used */
77
78#define VALBITS 26
79#define GCTYPEBITS 5
80
81/* Prevent -lg from being used for debugging. Not needed. */
82
83#define LIBS_DEBUG
84
85/* Must use the system's termcap. It does special things. */
86
87#define LIBS_TERMCAP -ltermcap
88
89/* Must use the system's malloc and alloca. */
90
91#define SYSTEM_MALLOC
92
93/* No crt0 is needed, but control where environ is allocated. */
94
95#define START_FILES pre-crt0.o
96
97/* Apollo's bcopy said to lose on more than 16k bytes in SR9.5. */
98
99#ifndef APOLLO_SR10
100#undef BSTRING
101#endif
diff --git a/src/m/aviion.h b/src/m/aviion.h
new file mode 100644
index 00000000000..fa116db1ff4
--- /dev/null
+++ b/src/m/aviion.h
@@ -0,0 +1,150 @@
1/* machine description file for Data General AViiON.
2 Copyright (C) 1985, 1986, 1991 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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/* Define BIG_ENDIAN iff lowest-numbered byte in a word
31 is the most significant byte. */
32
33#define BIG_ENDIAN
34
35/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
36 * group of arguments and treat it as an array of the arguments. */
37
38#define NO_ARG_ARRAY
39
40/* Define WORD_MACHINE if addresses and such have
41 * to be corrected before they can be used as byte counts. */
42
43#define WORD_MACHINE
44
45/* Define how to take a char and sign-extend into an int.
46 On machines where char is signed, this is a no-op. */
47
48#define SIGN_EXTEND_CHAR(c) (c)
49
50/* Define DATA_SEG_BITS if pointers need to be corrected with
51 a segment field. */
52
53#ifdef FIX_ADDRESS
54#define DATA_SEG_BITS 0xef000000
55#endif
56
57/* Now define a symbol for the cpu type, if your compiler
58 does not define it automatically:
59 Ones defined so far include vax, m68000, ns16000, pyramid,
60 orion, tahoe, APOLLO and many others */
61
62#ifndef m88k
63#define m88k
64#endif
65
66/* Use type int rather than a union, to represent Lisp_Object */
67/* This is desirable for most machines. */
68
69#define NO_UNION_TYPE
70
71/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
72 the 24-bit bit field into an int. In other words, if bit fields
73 are always unsigned.
74
75 If you use NO_UNION_TYPE, this flag does not matter. */
76
77#define EXPLICIT_SIGN_EXTEND
78
79/* Data type of load average, as read out of kmem. */
80
81/* #define LOAD_AVE_TYPE long */
82
83/* Convert that into an integer that is 100 for a load average of 1.0 */
84
85/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */
86
87/* Define CANNOT_DUMP on machines where unexec does not work.
88 Then the function dump-emacs will not be defined
89 and temacs will do (load "loadup") automatically unless told otherwise. */
90
91/* #define CANNOT_DUMP */
92
93/* Define VIRT_ADDR_VARIES if the virtual addresses of
94 pure and impure space as loaded can vary, and even their
95 relative order cannot be relied on.
96
97 Otherwise Emacs assumes that text space precedes data space,
98 numerically. */
99
100/* #define VIRT_ADDR_VARIES */
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 HAVE_ALLOCA
111#define alloca(x) __builtin_alloca(x)
112
113/* Define NO_REMAP if memory segmentation makes it not work well
114 to change the boundary between the text section and data section
115 when Emacs is dumped. If you define this, the preloaded Lisp
116 code will not be sharable; but that's better than failing completely. */
117
118#define NO_REMAP
119
120/* Use 26 bits instead of 24 for internal pointer values */
121
122#define VALBITS 26
123#define GCTYPEBITS 5
124
125/* Define ADDR_CORRECT(ADDR) to be a macro to correct an int which is
126 the bit pattern of a pointer to a byte into an int which is the
127 number of a byte.
128
129 This macro has a default definition which is usually right.
130 This default definition is a no-op on most machines (where a
131 pointer looks like an int) but not on all machines. */
132
133#define ADDR_CORRECT(ADDR) ((int)ADDR)
134
135/* Cast pointers to this type to compare them. */
136
137#define PNTR_COMPARISON_TYPE void *
138
139/* Some machines that use COFF executables require that each section
140 start on a certain boundary *in the COFF file*. Such machines should
141 define SECTION_ALIGNMENT to a mask of the low-order bits that must be
142 zero on such a boundary. This mask is used to control padding between
143 segments in the COFF file.
144
145 If SECTION_ALIGNMENT is not defined, the segments are written
146 consecutively with no attempt at alignment. This is right for
147 unmodified system V. */
148
149#define SECTION_ALIGNMENT 0x7
150
diff --git a/src/m/celerity.h b/src/m/celerity.h
new file mode 100644
index 00000000000..7dced85d78e
--- /dev/null
+++ b/src/m/celerity.h
@@ -0,0 +1,73 @@
1/* machine description file for Celerity.
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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/* XINT must explicitly sign extend */
40
41#define EXPLICIT_SIGN_EXTEND
42
43/* Define how to take a char and sign-extend into an int.
44 On machines where char is signed, this is a no-op. */
45
46#define SIGN_EXTEND_CHAR(c) (c)
47
48/* celerity preprocessor defines "accel", however the following is clearer */
49#define celerity
50
51/* #define NO_UNION_TYPE would be preferable,
52 but it does not work, and the reason is not yet known. */
53
54#define NO_UNION_TYPE
55
56/* Data type of load average, as read out of kmem. */
57
58#define LOAD_AVE_TYPE double
59
60/* Convert that into an integer that is 100 for a load average of 1.0 */
61
62#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
63
64/* A machine-specific loader switch is needed. */
65
66#define LD_SWITCH_MACHINE -k100000
67
68/* alloca is provided by the system. */
69
70#define HAVE_ALLOCA
71
72/* (short) negative-int doesn't sign-extend correctly */
73#define SHORT_CAST_BUG
diff --git a/src/m/clipper.h b/src/m/clipper.h
new file mode 100644
index 00000000000..6614f52890c
--- /dev/null
+++ b/src/m/clipper.h
@@ -0,0 +1,117 @@
1/* machine description file for clipper
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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/* Define BIG_ENDIAN iff lowest-numbered byte in a word
31 is the most significant byte. */
32
33/* #define BIG_ENDIAN */
34
35/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
36 * group of arguments and treat it as an array of the arguments. */
37
38#define NO_ARG_ARRAY
39
40/* Define WORD_MACHINE if addresses and such have
41 * to be corrected before they can be used as byte counts. */
42
43/* #define WORD_MACHINE */
44
45/* Define how to take a char and sign-extend into an int.
46 On machines where char is signed, this is a no-op. */
47
48#define SIGN_EXTEND_CHAR(c) ((((int) (c)) << 24) >> 24)
49/* #define SIGN_EXTEND_CHAR(c) (c) */
50
51/* Now define a symbol for the cpu type, if your compiler
52 does not define it automatically */
53
54#define clipper 1
55
56/* Use type int rather than a union, to represent Lisp_Object */
57
58#define NO_UNION_TYPE
59
60/* crt0.c should define a symbol `start' and do .globl with a dot. */
61
62#define DOT_GLOBAL_START
63
64/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
65 the 24-bit bit field into an int. In other words, if bit fields
66 are always unsigned.
67
68 If you use NO_UNION_TYPE, this flag does not matter. */
69
70/* #define EXPLICIT_SIGN_EXTEND */
71
72/* USG systems I know of running on Vaxes do not actually
73 support the load average, so disable it for them. */
74
75/* Data type of load average, as read out of kmem. */
76
77#define LOAD_AVE_TYPE double
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) ((x) * 100.0))
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#define C_ALLOCA
105
106/* Define NO_REMAP if memory segmentation makes it not work well
107 to change the boundary between the text section and data section
108 when Emacs is dumped. If you define this, the preloaded Lisp
109 code will not be sharable; but that's better than failing completely. */
110
111/* #define NO_REMAP */
112
113#ifdef USG
114#define TEXT_START 0
115#endif /* USG */
116
117#define LD_TEXT_START_ADDR 8000
diff --git a/src/m/cnvrgnt.h b/src/m/cnvrgnt.h
new file mode 100644
index 00000000000..dcbeb3c6d35
--- /dev/null
+++ b/src/m/cnvrgnt.h
@@ -0,0 +1,124 @@
1/* machine description file for convergent S series.
2 Copyright (C) 1989 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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/* Define BIG_ENDIAN iff lowest-numbered byte in a word
31 is the most significant byte. */
32
33#define BIG_ENDIAN
34
35/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
36 * group of arguments and treat it as an array of the arguments. */
37
38/* #define NO_ARG_ARRAY */
39
40/* Define WORD_MACHINE if addresses and such have
41 * to be corrected before they can be used as byte counts. */
42
43/* #define WORD_MACHINE */
44
45/* Define how to take a char and sign-extend into an int.
46 On machines where char is signed, this is a no-op. */
47
48#define SIGN_EXTEND_CHAR(c) (c)
49
50/* Now define a symbol for the cpu type, if your compiler
51 does not define it automatically. */
52
53#define m68000
54
55/* Use type int rather than a union, to represent Lisp_Object.
56 This is desirable for most machines. */
57
58#define NO_UNION_TYPE
59
60/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
61 the 24-bit bit field into an int. In other words, if bit fields
62 are always unsigned.
63
64 If you use NO_UNION_TYPE, this flag does not matter. */
65
66#define EXPLICIT_SIGN_EXTEND
67
68/* Data type of load average, as read out of kmem.
69 These are commented out since it is not supported by this machine. */
70
71#define LOAD_AVE_TYPE double
72
73/* Convert that into an integer that is 100 for a load average of 1.0 */
74
75#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
76
77/* Define CANNOT_DUMP on machines where unexec does not work.
78 Then the function dump-emacs will not be defined
79 and temacs will do (load "loadup") automatically unless told otherwise. */
80
81/* #define CANNOT_DUMP */
82
83/* Define VIRT_ADDR_VARIES if the virtual addresses of
84 pure and impure space as loaded can vary, and even their
85 relative order cannot be relied on.
86
87 Otherwise Emacs assumes that text space precedes data space,
88 numerically. */
89
90#undef VIRT_ADDR_VARIES
91
92/* Define C_ALLOCA if this machine does not support a true alloca
93 and the one written in C should be used instead.
94 Define HAVE_ALLOCA to say that the system provides a properly
95 working alloca function and it should be used.
96 Define neither one if an assembler-language alloca
97 in the file alloca.s should be used. */
98
99#define C_ALLOCA
100#undef HAVE_ALLOCA
101
102/* Define NO_REMAP if memory segmentation makes it not work well
103 to change the boundary between the text section and data section
104 when Emacs is dumped. If you define this, the preloaded Lisp
105 code will not be sharable; but that's better than failing completely. */
106
107#define NO_REMAP
108
109/* Change some things to avoid bugs in compiler. */
110
111#define SWITCH_ENUM_BUG
112
113/* fork(2) and vfork() are the same here. */
114
115#define HAVE_VFORK
116
117/* grows towards lower addresses. */
118
119#define STACK_DIRECTION -1
120
121/* some errno.h's don't actually allocate the variable itself.
122 Cause crt0.c to define errno. */
123
124#define NEED_ERRNO
diff --git a/src/m/convex.h b/src/m/convex.h
new file mode 100644
index 00000000000..e6bfbecd273
--- /dev/null
+++ b/src/m/convex.h
@@ -0,0 +1,173 @@
1/* machine description file for convex C1.
2 Copyright (C) 1987 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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-3" */
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 * Maybe it would be better to simply correct the code. */
42
43#define NO_ARG_ARRAY
44
45/* Define WORD_MACHINE if addresses and such have
46 * to be corrected before they can be used as byte counts. */
47
48/* #define WORD_MACHINE */
49
50/* Define how to take a char and sign-extend into an int.
51 On machines where char is signed, this is a no-op. */
52
53#define SIGN_EXTEND_CHAR(c) (c)
54
55/* Now define a symbol for the cpu type, if your compiler
56 does not define it automatically. */
57
58/* convex already defined... */
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/* crt0.c should use the vax-bsd style of entry, with no dummy args. */
66
67#define CRT0_DUMMIES
68
69/* crt0.c should define a symbol `start' and do .globl with a dot. */
70
71#define DOT_GLOBAL_START
72
73/* Data type of load average, as read out of kmem. */
74
75#define LOAD_AVE_TYPE double
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) ((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/*#define 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 C_ALLOCA*/
104#define HAVE_ALLOCA
105
106/* Define NO_REMAP if memory segmentation makes it not work well
107 to change the boundary between the text section and data section
108 when Emacs is dumped. If you define this, the preloaded Lisp
109 code will not be sharable; but that's better than failing completely. */
110
111/* #define NO_REMAP */
112
113/* Addresses on the Convex have the high bit set. */
114#define DATA_SEG_BITS (1 << (INTBITS-1))
115
116/* Right shift is logical shift.
117 And the usual way of handling such machines, which involves
118 copying the number into sign_extend_temp, does not work
119 for reasons as yet unknown. */
120
121#define XINT(a) sign_extend_lisp_int (a)
122
123/* Convex uses a special version of unexec. */
124
125#define UNEXEC unexconvex.o
126
127/* you gotta define 'COFF' for post 6.1 unexec. */
128
129#define COFF
130#define TEXT_START 0x80001000
131
132/* Posix stuff for Convex OS 8.1 and up. */
133
134#define C_SWITCH_MACHINE -pcc
135#define LD_SWITCH_MACHINE \
136 -e__start -L /usr/lib \
137 '-A__iob=___ap$$iob' '-A_use_libc_sema=___ap$$use_libc_sema'
138
139/* Use setsid when starting up inferiors. */
140#define HAVE_SETSID
141
142/* Use <dirent.h>. */
143#define SYSV_SYSTEM_DIR
144#define HAVE_CLOSEDIR
145
146#ifdef _POSIX_SOURCE
147
148/* These symbols have been undefined to advance the state of the art. */
149
150#define S_IFMT _S_IFMT
151#define S_IFDIR _S_IFDIR
152
153#define S_IREAD _S_IREAD
154#define S_IWRITE _S_IWRITE
155#define S_IEXEC _S_IEXEC
156
157#endif
158
159/* Ptys may start below ptyp0; call a routine to hunt for where. */
160
161#undef FIRST_PTY_LETTER
162#define FIRST_PTY_LETTER first_pty_letter()
163
164#if 0
165/*
166 * Force a K&R compilation and libraries with the Convex V 4.0 C compiler
167 */
168#define C_SWITCH_MACHINE -pcc
169#define LIB_STANDARD -lc_old
170#define LIBS_MACHINE -lC2_old
171#define LD_SWITCH_MACHINE -X -NL -fn -Enoposix -A__iob=___ap\$$iob \
172 -A_use_libc_sema=___ap\$$use_libc_sema -L /usr/lib
173#endif
diff --git a/src/m/cydra5.h b/src/m/cydra5.h
new file mode 100644
index 00000000000..772e9b6fcb0
--- /dev/null
+++ b/src/m/cydra5.h
@@ -0,0 +1,139 @@
1/* machine description file for Cydrome's CYDRA 5 mini super computer
2 Copyright (C) 1988 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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-3" */
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#undef 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#undef 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) (c)
53
54/* Now define a symbol for the cpu type, if your compiler
55 does not define it automatically:
56 Ones defined so far include vax, m68000, ns16000, pyramid,
57 orion, tahoe, APOLLO and many others */
58
59/* Use type int rather than a union, to represent Lisp_Object */
60/* This is desirable for most machines. */
61
62#define NO_UNION_TYPE
63
64/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
65 the 24-bit bit field into an int. In other words, if bit fields
66 are always unsigned.
67
68 If you use NO_UNION_TYPE, this flag does not matter. */
69
70#define EXPLICIT_SIGN_EXTEND
71
72/* Data type of load average, as read out of kmem. */
73
74#define LOAD_AVE_TYPE long
75
76/* Convert that into an integer that is 100 for a load average of 1.0 */
77
78#define LOAD_AVE_CVT(x) x
79
80/* Define CANNOT_DUMP on machines where unexec does not work.
81 Then the function dump-emacs will not be defined
82 and temacs will do (load "loadup") automatically unless told otherwise. */
83
84/*#define CANNOT_DUMP*/
85
86/* Define VIRT_ADDR_VARIES if the virtual addresses of
87 pure and impure space as loaded can vary, and even their
88 relative order cannot be relied on.
89
90 Otherwise Emacs assumes that data space precedes text space,
91 numerically. */
92
93#undef VIRT_ADDR_VARIES
94
95/* Define C_ALLOCA if this machine does not support a true alloca
96 and the one written in C should be used instead.
97 Define HAVE_ALLOCA to say that the system provides a properly
98 working alloca function and it should be used.
99 Define neither one if an assembler-language alloca
100 in the file alloca.s should be used. */
101
102#define C_ALLOCA
103#undef HAVE_ALLOCA
104
105/* The data segment in this machine always starts at address 0x10000000.
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 0x20000000
110#define DATA_START 0x20000000
111
112/* Define NO_REMAP if memory segmentation makes it not work well
113 to change the boundary between the text section and data section
114 when Emacs is dumped. If you define this, the preloaded Lisp
115 code will not be sharable; but that's better than failing completely. */
116
117#define NO_REMAP
118#define BROKEN_FIONREAD /* We son't even have it */
119#define LIBS_MACHINE -lsocket -lnsl
120
121/* Stack grows downward in memory. */
122#define STACK_DIRECTION -1
123
124/* The data section in a coff file must be aligned in the file. */
125#define DATA_SECTION_ALIGNMENT 0xFFF
126
127/* Compiler won't allow switch (x) when x is an enum. */
128#define SWITCH_ENUM_BUG
129
130
131/* Explain how pty filenames work. */
132
133#define PTY_ITERATION for (i = 47; i >= 0; i--)
134#define PTY_NAME_SPRINTF sprintf (ptyname, "/dev/pty%03x", i);
135#define PTY_TTY_NAME_SPRINTF sprintf (ptyname, "/dev/ptm%03x", i);
136
137/* We can't do interrupt-driven input, so don't let user try. */
138
139#undef SIGIO
diff --git a/src/m/delta.h b/src/m/delta.h
new file mode 100644
index 00000000000..8dda4fd213d
--- /dev/null
+++ b/src/m/delta.h
@@ -0,0 +1,168 @@
1/* machine description file for the Motorola delta running System V.3.
2 tested on sys1147 (mvme147 - based system).
3 Copyright (C) 1986 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY. No author or distributor
9accepts responsibility to anyone for the consequences of using it
10or for whether it serves any particular purpose or works at all,
11unless he says so in writing. Refer to the GNU Emacs General Public
12License for full details.
13
14Everyone is granted permission to copy, modify and redistribute
15GNU Emacs, but only under the conditions described in the
16GNU Emacs General Public License. A copy of this license is
17supposed to have been given to you along with GNU Emacs so you
18can know your rights and responsibilities. It should be in a
19file named COPYING. Among other things, the copyright notice
20and this notice must be preserved on all copies. */
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-3" */
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
54#define SIGN_EXTEND_CHAR(c) (c)
55
56/* Now define a symbol for the cpu type, if your compiler
57 does not define it automatically:
58 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
59 are the ones defined so far. */
60#define m68000
61#define NO_REMAP
62
63#define HAVE_SYSVIPC
64
65#define HAVE_PTYS
66#define SYSV_PTYS
67
68/* Use type int rather than a union, to represent Lisp_Object */
69/* This is desirable for most machines. */
70
71#define NO_UNION_TYPE
72#define SWITCH_ENUM_BUG
73/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
74 the 24-bit bit field into an int. In other words, if bit fields
75 are always unsigned.
76
77 If you use NO_UNION_TYPE, this flag does not matter. */
78
79#define EXPLICIT_SIGN_EXTEND
80
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
87/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */
88
89/* Define CANNOT_DUMP on machines where unexec does not work.
90 Then the function dump-emacs will not be defined
91 and temacs will do (load "loadup") automatically unless told otherwise. */
92
93/* #define CANNOT_DUMP */
94
95/* Define VIRT_ADDR_VARIES if the virtual addresses of
96 pure and impure space as loaded can vary, and even their
97 relative order cannot be relied on.
98
99 Otherwise Emacs assumes that data space precedes text space,
100 numerically. */
101
102/* #define VIRT_ADDR_VARIES */
103
104/* Define C_ALLOCA if this machine does not support a true alloca
105 and the one written in C should be used instead.
106 Define HAVE_ALLOCA to say that the system provides a properly
107 working alloca function and it should be used.
108 Define neither one if an assembler-language alloca
109 in the file alloca.s should be used. */
110
111/*#define C_ALLOCA */
112/*#define HAVE_ALLOCA */
113
114#ifdef __GNUC__
115/* easy. use builtin one. also be sure that no other ones are tried out. */
116# define alloca __builtin_alloca
117# define HAVE_ALLOCA
118# undef C_ALLOCA
119#else
120# ifdef C_ALLOCA
121# define STACK_DIRECTION (-1) /* C_ALLOCA needs to know about stack. */
122# else /* C_ALLOCA */
123# ifndef HAVE_ALLOCA
124# define BAT_ALLOCA /* if not in library, alloca.s needs this. */
125# endif /* HAVE_ALLOCA */
126# endif /* C_ALLOCA */
127#endif /* __GNUC__ */
128
129/* The standard C library is -lcieee, not -lc.
130 Also use the PW library, which contains alloca.
131 DO NOT USE -lPW. That version of alloca is broken, at last until version
132 SVR3V5.1 . -riku@field.fi */
133
134#define LIB_STANDARD -lc
135
136#define LIBS_TERMCAP -lcurses
137
138/* define this if you want to use X11 */
139#undef HAVE_X_WINDOWS
140
141#ifdef HAVE_X_WINDOWS
142/* debug switches enabled because of some difficulties w/X11 */
143# define C_DEBUG_SWITCH -g
144# define OBJECTS_MACHINE -lg
145# define C_OPTIMIZE_SWITCH
146# define CANNOT_DUMP
147/*# define XDEBUG*/
148# define X11
149/* X library implements these. */
150# define BSTRING
151/* X library is in 'nonstandard' location. */
152# define LD_SWITCH_MACHINE -L/usr/lib/X11/
153#else
154/* No sufficient justification for this. */
155/* # define C_DEBUG_SWITCH */
156# define C_OPTIMIZE_SWITCH -O
157#endif /* HAVE_X_WINDOWS */
158
159/* enable batdevice-dependent code to compile. */
160#define BAT68K
161
162#define HAVE_SOCKETS
163
164/* crt0.c should use the vax-bsd style of entry, with no dummy args. */
165
166
167/* emacs's magic number isn't temacs's;
168 temacs is writeable text (the default!). */
diff --git a/src/m/dual.h b/src/m/dual.h
new file mode 100644
index 00000000000..0af8db5940e
--- /dev/null
+++ b/src/m/dual.h
@@ -0,0 +1,82 @@
1/* machine description file for Dual machines using unisoft port.
2 Copyright (C) 1985 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20/* The following line tells the configuration script what sort of
21 operating system this machine is likely to run.
22 USUAL-OPSYS="note"
23
24NOTE-START
25Dual running System V (-machine=dual -opsystem=usg5-2)
26
27 As of 17.46, this works except for a few changes
28 needed in unexec.c.
29
30Dual running Uniplus (-machine=dual -opsystem=unipl5-2)
31
32 Works, as of 17.51.
33NOTE-END */
34
35
36/* The following three symbols give information on
37 the size of various data types. */
38
39#define SHORTBITS 16 /* Number of bits in a short */
40
41#define INTBITS 32 /* Number of bits in an int */
42
43#define LONGBITS 32 /* Number of bits in a long */
44
45/* Define BIG_ENDIAN iff lowest-numbered byte in a word
46 is the most significant byte. */
47
48#define BIG_ENDIAN
49
50/* XINT must explicitly sign-extend */
51
52#define EXPLICIT_SIGN_EXTEND
53
54/* Define how to take a char and sign-extend into an int.
55 On machines where char is signed, this is a no-op. */
56
57#define SIGN_EXTEND_CHAR(c) (c)
58
59/* Use type int rather than a union, to represent Lisp_Object */
60
61#define NO_UNION_TYPE
62
63/* Now define a symbol for the cpu type, if your compiler
64 does not define it automatically:
65 vax, m68000, ns16000 are the ones defined so far. */
66
67#ifndef m68000
68#define m68000
69#endif
70
71/* Data type of load average, as read out of kmem. */
72/* These are commented out since it does not really work in uniplus */
73
74/* #define LOAD_AVE_TYPE long */
75
76/* Convert that into an integer that is 100 for a load average of 1.0 */
77
78/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */
79
80/* Change some things to avoid bugs in compiler */
81
82#define SWITCH_ENUM_BUG 1
diff --git a/src/m/elxsi.h b/src/m/elxsi.h
new file mode 100644
index 00000000000..9f79c7919a6
--- /dev/null
+++ b/src/m/elxsi.h
@@ -0,0 +1,153 @@
1/* machine description file for Elxsi machine (running enix).
2 Copyright (C) 1986 Free Software Foundation, Inc.
3 Adapted by John Salmon
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 1, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
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" */
24
25/* This file was modified by Matt Crawford <matt@tank.uchicago.edu>
26 to work under Elxsi's 12.0 release of BSD unix. */
27
28/* The following three symbols give information on
29 the size of various data types. */
30
31#define SHORTBITS 16 /* Number of bits in a short */
32
33#define INTBITS 32 /* Number of bits in an int */
34
35#define LONGBITS 32 /* Number of bits in a long */
36
37/* Define BIG_ENDIAN iff lowest-numbered byte in a word
38 is the most significant byte. */
39
40/*#define BIG_ENDIAN*/
41
42/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
43 * group of arguments and treat it as an array of the arguments. */
44
45/*#define NO_ARG_ARRAY */
46
47/* Define WORD_MACHINE if addresses and such have
48 * to be corrected before they can be used as byte counts. */
49
50/*#define WORD_MACHINE */
51
52/* Define how to take a char and sign-extend into an int.
53 On machines where char is signed, this is a no-op. */
54
55#define SIGN_EXTEND_CHAR(c) ((int)c)
56
57/* Now define a symbol for the cpu type, if your compiler
58 does not define it automatically:
59 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
60 are the ones defined so far. */
61
62#ifndef elxsi
63#define elxsi
64#endif
65
66/* Use type int rather than a union, to represent Lisp_Object */
67/* This is desirable for most machines. */
68
69#define NO_UNION_TYPE
70
71/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
72 the 24-bit bit field into an int. In other words, if bit fields
73 are always unsigned.
74
75 If you use NO_UNION_TYPE, this flag does not matter. */
76
77#define EXPLICIT_SIGN_EXTEND
78
79
80/* Name of kernel load average variable */
81
82#undef LDAV_SYMBOL
83#define LDAV_SYMBOL "avenrun"
84
85/* Data type of load average, as read out of kmem. */
86
87#define LOAD_AVE_TYPE double
88
89/* Convert that into an integer that is 100 for a load average of 1.0 */
90
91#define LOAD_AVE_CVT(x) (int) ((x) * 100.0)
92
93/* Define CANNOT_DUMP on machines where unexec does not work.
94 Then the function dump-emacs will not be defined
95 and temacs will do (load "loadup") automatically unless told otherwise.
96
97 The Elxsi can in principle dump, but the necessary changes to
98 unexec, which involve byte-swapping, were too ugly to install.
99 If someone submits simple code that supports dumping on the Elxsi,
100 it can be installed and CANNOT_DUMP can be turned off. */
101
102/* #define CANNOT_DUMP */
103
104/* Define VIRT_ADDR_VARIES if the virtual addresses of
105 pure and impure space as loaded can vary, and even their
106 relative order cannot be relied on.
107
108 Otherwise Emacs assumes that text space precedes data space,
109 numerically. */
110
111/* #define VIRT_ADDR_VARIES */
112
113/* Define C_ALLOCA if this machine does not support a true alloca
114 and the one written in C should be used instead.
115 Define HAVE_ALLOCA to say that the system provides a properly
116 working alloca function and it should be used.
117 Define neither one if an assembler-language alloca
118 in the file alloca.s should be used. */
119
120#define C_ALLOCA
121/*#define HAVE_ALLOCA */
122
123/* Define NO_REMAP if memory segmentation makes it not work well
124 to change the boundary between the text section and data section
125 when Emacs is dumped. If you define this, the preloaded Lisp
126 code will not be sharable; but that's better than failing completely. */
127/*#define NO_REMAP*/
128
129/* This is a guess for an alternate solution to whatever
130 problem motivated defining _sobuf in sysdep,c with extern char *_sobuf. */
131#define _sobuf xsobuf
132
133/* Address of start of text segment as loaded. */
134
135#define TEXT_START 0x800
136
137/* Tell crt0.c not to define environ. */
138
139#define DONT_NEED_ENVIRON
140
141/* The elxsi has no debugger, so might as well optimize instead
142 of trying to make a symbol table. */
143
144#define C_DEBUG_SWITCH -O
145
146/* Elxsi uses COFF under both Sys V and BSD environments */
147
148#define COFF
149
150#define ADJUST_EXEC_HEADER {\
151extern int _init_brk;\
152_init_brk = bss_start;\
153}
diff --git a/src/m/gec63.h b/src/m/gec63.h
new file mode 100644
index 00000000000..4f8fe4a09e0
--- /dev/null
+++ b/src/m/gec63.h
@@ -0,0 +1,83 @@
1/* machine description file for gec63
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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" */
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/* GEC63 is big-endian: lowest numbered byte is most significant. */
35
36#define BIG_ENDIAN
37
38/* Define how to take a char and sign-extend into an int.
39 On machines where char is signed, this is a no-op. */
40
41#define SIGN_EXTEND_CHAR(c) (((c)<<24)>>24)
42
43/* Say this machine is a 68000 */
44
45#define gec63
46
47/* Use an int to represent Lisp_Object */
48
49#define NO_UNION_TYPE
50
51/* GEC63 has alloca in the PW/ux63 library. */
52#define LIB_STANDARD -lPW -lc
53#define HAVE_ALLOCA
54
55/* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT
56 since there is no /dev/kmem */
57
58#undef ADDR_CORRECT(x)
59#define NO_ARG_ARRAY
60
61#undef TERMCAP
62#define TERMINFO
63
64/* Define sizes of portions of a Lisp_Object. */
65#define VALBITS 22
66#define GCTYPEBITS 5
67
68#define VALAMASK (((1<<VALBITS) - 1)| 0xF0000000L)
69
70#define XTYPE(a) ((enum Lisp_Type) (((a) >> VALBITS) & GCTYPEMASK))
71#define XSETTYPE(a, b) ((a) = ((a) & VALAMASK) + ((int)(b) << VALBITS))
72
73#define XPNTR(a) ((a) & VALAMASK)
74#define XSETPNTR(a, b) ((a) = ((a) & ~VALAMASK) + ((b) & VALAMASK))
75
76#define XSET(var, type, ptr) \
77 ((var) = ((int)(type) << VALBITS) + ((int) (ptr) & VALAMASK))
78
79/* Move some garbage-collector flag bits to different bit positions. */
80#define ARRAY_MARK_FLAG (1 << 27)
81#define DONT_COPY_FLAG (1 << 26)
82
83#define NO_REMAP
diff --git a/src/m/gould.h b/src/m/gould.h
new file mode 100644
index 00000000000..a9e675286a4
--- /dev/null
+++ b/src/m/gould.h
@@ -0,0 +1,208 @@
1/* machine description file for Gould PowerNodes with UTX/32 2.0 and 2.1.
2 (See MACHINES for older versions.)
3
4* NOTE: If you are running a pre-release of UTX/32 2.1 you should #define
5* RELEASE2_1 in config.h. This may also be necessary with un-updated
6* official releases of 2.1
7
8 Copyright (C) 1986 Free Software Foundation, Inc.
9
10This file is part of GNU Emacs.
11
12GNU Emacs is free software; you can redistribute it and/or modify
13it under the terms of the GNU General Public License as published by
14the Free Software Foundation; either version 1, or (at your option)
15any later version.
16
17GNU Emacs is distributed in the hope that it will be useful,
18but WITHOUT ANY WARRANTY; without even the implied warranty of
19MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20GNU General Public License for more details.
21
22You should have received a copy of the GNU General Public License
23along with GNU Emacs; see the file COPYING. If not, write to
24the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
25
26
27/* The following line tells the configuration script what sort of
28 operating system this machine is likely to run.
29 USUAL-OPSYS="note"
30
31NOTE-START
32Gould Power Node (-machine=gould -opsystem=bsd4-2 or bsd4-3)
33(gould.h; s-bsd4-2.h or s-bsd4-3.h)
34
35 18.36 worked on versions 1.2 and 2.0 of the operating system.
36
37 On UTX/32 2.0, use -opsystem=bsd4-3
38
39 On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling
40 lib-src/sorted-doc tickles a compiler bug: remove the -g flag to cc in the
41 makefile.
42
43 UTX/32 1.3 has a bug in the bcopy library routine. Fix it by
44 #undef BSTRING in gould.h.
45
46 Version 19 incorporates support for releases 2.1 and later of UTX/32.
47 A site running a pre-release of 2.1 should #define RELEASE2_1 in config.h.
48NOTE-END */
49
50/* The following three symbols give information on
51 the size of various data types. */
52
53#define SHORTBITS 16 /* Number of bits in a short */
54
55#define INTBITS 32 /* Number of bits in an int */
56
57#define LONGBITS 32 /* Number of bits in a long */
58
59/* Define BIG_ENDIAN iff lowest-numbered byte in a word
60 is the most significant byte. */
61
62#define BIG_ENDIAN
63
64/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
65 * group of arguments and treat it as an array of the arguments. */
66
67#define NO_ARG_ARRAY
68
69/* Define WORD_MACHINE if addresses and such have
70 * to be corrected before they can be used as byte counts. */
71
72/* #define WORD_MACHINE */
73
74/* Define how to take a char and sign-extend into an int.
75 On machines where char is signed, this is a no-op. */
76
77#define SIGN_EXTEND_CHAR(c) (c)
78
79/* Now define a symbol for the cpu type, if your compiler
80 does not define it automatically */
81
82#ifndef GOULD
83#define GOULD
84#endif
85
86/* sel is an old preprocessor name on gould machines
87 - it is no longer needed and interferes with a variable in xmenu.c */
88#undef sel
89
90/* Use type int rather than a union, to represent Lisp_Object */
91/* This is desirable for most machines. */
92
93#define NO_UNION_TYPE
94
95/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
96 the 24-bit bit field into an int. In other words, if bit fields
97 are always unsigned.
98
99 If you use NO_UNION_TYPE, this flag does not matter. */
100
101#define EXPLICIT_SIGN_EXTEND
102
103/* Data type of load average, as read out of kmem. */
104
105#define LOAD_AVE_TYPE double
106
107/* Convert that into an integer that is 100 for a load average of 1.0 */
108
109#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)
110
111/* Define CANNOT_DUMP on machines where unexec does not work.
112 Then the function dump-emacs will not be defined
113 and temacs will do (load "loadup") automatically unless told otherwise. */
114
115/* #define CANNOT_DUMP */
116
117/* Define VIRT_ADDR_VARIES if the virtual addresses of
118 pure and impure space as loaded can vary, and even their
119 relative order cannot be relied on.
120
121 Otherwise Emacs assumes that text space precedes data space,
122 numerically. */
123
124#define VIRT_ADDR_VARIES
125
126/* Define C_ALLOCA if this machine does not support a true alloca
127 and the one written in C should be used instead.
128 Define HAVE_ALLOCA to say that the system provides a properly
129 working alloca function and it should be used.
130 Define neither one if an assembler-language alloca
131 in the file alloca.s should be used. */
132
133#define C_ALLOCA
134#define STACK_DIRECTION -1 /* grows towards lower addresses on Gould UTX/32 */
135
136/* No need to extend the user stack. */
137
138/* If this is a 2.1 system, COFF will be predefined by cpp. If it's */
139/* pre-2.1 COFF won't be defined, which is as it should be. */
140
141#ifdef COFF
142
143#define HEADER_INCL_IN_TEXT
144#define COFF_BSD_SYMBOLS
145
146/* Seems to be necessary with coff */
147#define NO_REMAP
148
149#ifndef GOULD_NP1
150/* gould-np1.h includes this file */
151/* keep the old value - don't skip over the headers */
152#define KEEP_OLD_TEXT_SCNPTR
153#define KEEP_OLD_PADDR
154#ifndef RELEASE2_1
155#define ADJUST_TEXTBASE
156#endif /*RELEASE2_1*/
157#endif /* GOULD_NP1 */
158
159#ifdef IN_UNEXEC
160/* make Gould NP and PN COFF look like USG COFF */
161/* PN COFF */
162#define aouthdr old_exec
163/* PN COFF doesn't have a data_start or a_dtbase field in its */
164/* optional header, so substitute a junk field */
165#define a_dtbase a_ccvers
166/* Gould COFF */
167#define magic a_magic
168#define tsize a_text
169#define dsize a_data
170#define bsize a_bss
171#define entry a_entry
172#define text_start a_txbase
173#define data_start a_dtbase
174#endif /* IN_UNEXEC */
175
176/* Define how to search all pty names.
177 * This is for UTX 2.1 and greater on PN and all NP versions. It is only
178 * accident that this happens to correspond to the same versions of UTX
179 * as COFF does, but we'll take advantage of that here.
180 */
181
182/*#define USE_PTY_PAIR*/
183
184#endif /* COFF */
185
186/* -g is sometimes broken on the Gould. */
187
188#define C_DEBUG_SWITCH
189
190/* Comparing pointers as unsigned ints tickles a bug in older compilers. */
191
192#define PNTR_COMPARISON_TYPE int
193
194/* The GOULD machine counts the a.out file header as part of the text. */
195
196#define A_TEXT_OFFSET(HDR) sizeof (HDR)
197
198/* Machine-dependent action when about to dump an executable file. */
199
200#ifndef COFF
201#define ADJUST_EXEC_HEADER \
202 unexec_text_start = hdr.a_txbase + sizeof (hdr);
203#endif
204
205/* We use the system's crt0.o. Somehow it avoids losing
206 with `environ' the way most standard crt0.o's do. */
207
208#define START_FILES pre-crt0.o /lib/crt0.o
diff --git a/src/m/hp800.h b/src/m/hp800.h
new file mode 100644
index 00000000000..4b068261dcf
--- /dev/null
+++ b/src/m/hp800.h
@@ -0,0 +1,193 @@
1/* machine description file for hp9000 series 800 machines.
2 Copyright (C) 1987 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="hpux" */
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#undef 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) (c)
53
54/* Now define a symbol for the cpu type, if your compiler
55 does not define it automatically:
56 Ones defined so far include vax, m68000, ns16000, pyramid,
57 orion, tahoe, APOLLO and many others */
58#ifndef hp9000s800
59# define hp9000s800
60#endif
61
62/* Use type int rather than a union, to represent Lisp_Object */
63/* This is desirable for most machines. */
64
65#define NO_UNION_TYPE
66
67/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
68 the 24-bit bit field into an int. In other words, if bit fields
69 are always unsigned.
70
71 If you use NO_UNION_TYPE, this flag does not matter. */
72
73#define EXPLICIT_SIGN_EXTEND
74
75/* Data type of load average, as read out of kmem. */
76
77#define LOAD_AVE_TYPE double
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) (x * 100.0))
82
83
84/* Define CANNOT_DUMP on machines where unexec does not work.
85 Then the function dump-emacs will not be defined
86 and temacs will do (load "loadup") automatically unless told otherwise. */
87
88#undef CANNOT_DUMP
89
90/* Define VIRT_ADDR_VARIES if the virtual addresses of
91 pure and impure space as loaded can vary, and even their
92 relative order cannot be relied on.
93
94 Otherwise Emacs assumes that text space precedes data space,
95 numerically. */
96
97#define VIRT_ADDR_VARIES
98
99/* Define C_ALLOCA if this machine does not support a true alloca
100 and the one written in C should be used instead.
101 Define HAVE_ALLOCA to say that the system provides a properly
102 working alloca function and it should be used.
103 Define neither one if an assembler-language alloca
104 in the file alloca.s should be used. */
105
106#define C_ALLOCA
107/* #define HAVE_ALLOCA */
108
109/* the data segment on this machine always starts at address 0x40000000. */
110
111#define DATA_SEG_BITS 0x40000000
112
113#define VALBITS 26
114#define GCTYPEBITS 5
115
116#define DATA_START 0x40000000
117#define TEXT_START 0x00000000
118
119#define STACK_DIRECTION 1
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/* This machine requires completely different unexec code
129 which lives in a separate file. Specify the file name. */
130
131#define UNEXEC unexhp9k800.o
132
133#define LIBS_MACHINE
134#define LIBS_DEBUG
135
136/* Define NEED_BSDTTY if you have such. */
137
138#define NEED_BSDTTY
139
140/* The standard definitions of these macros would work ok,
141 but these are faster because the constants are short. */
142
143
144#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS)
145
146#define XSET(var, type, ptr) \
147 ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS))
148
149#define XSETINT(a, b) XSET(a, XTYPE(a), b)
150#define XSETUINT(a, b) XSET(a, XTYPE(a), b)
151#define XSETPNTR(a, b) XSET(a, XTYPE(a), b)
152#define XMARKBIT(a) ((a) < 0)
153#define XSETMARKBIT(a,b) ((a) = ((b) ? (a)|MARKBIT : (a) & ~MARKBIT))
154
155#if 0 /* Loses when sign bit of type field is set. */
156#define XUNMARK(a) ((a) = (((a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS))
157#endif
158
159/* The symbol in the kernel where the load average is found
160 is named _avenrun. At this time there are two major flavors
161 of hp-ux (there is the s800 and s300 (s200) flavors). The
162 differences are thusly moved to the corresponding machine description file.
163*/
164
165/* no underscore please */
166#define LDAV_SYMBOL "avenrun"
167#define CPTIME_SYMBOL "cp_time"
168#define DKXFER_SYMBOL "dk_xfer"
169
170#if 0 /* Supposedly no longer true. */
171/* In hpux, for unknown reasons, S_IFLNK is defined even though
172 symbolic links do not exist.
173 Make sure our conditionals based on S_IFLNK are not confused.
174
175 Here we assume that stat.h is included before config.h
176 so that we can override it here. */
177
178#undef S_IFLNK
179#endif
180
181/* Define the BSTRING functions in terms of the sysV functions. */
182
183#define bcopy(a,b,s) memcpy (b,a,s)
184#define bzero(a,s) memset (a,0,s)
185#define bcmp memcmp
186
187/* On USG systems these have different names. */
188
189#define index strchr
190#define rindex strrchr
191
192/* Include the file bsdtty.h, since this machine has job control. */
193#define NEED_BSDTTY
diff --git a/src/m/hp9000s300.h b/src/m/hp9000s300.h
new file mode 100644
index 00000000000..1e6c232096f
--- /dev/null
+++ b/src/m/hp9000s300.h
@@ -0,0 +1,224 @@
1/* machine description file for hp9000 series 200 or 300 on either HPUX or BSD.
2 Copyright (C) 1985 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26HP 9000 series 200 or 300 (-machine=hp9000s300)
27
28 These machines are 68000-series CPUs running HP-UX
29 (a derivative of sysV with some BSD features) or BSD 4.3 ported by Utah.
30
31 If you're running HP-UX, specify `-opsystem=hpux'.
32
33 If you're running Utah's BSD port, don't use this -machine option;
34 instead, specify `-machine=hp300bsd' and `-opsystem=bsd4-3'.
35NOTE-END */
36
37/* Define this symbol if you are running a version of HP-UX
38 which predates version 6.5 */
39
40/* #define NOMULTIPLEJOBS */
41
42/* Define this symbol if you are running a version of HP-UX
43 which predates version 6.01 */
44
45/* #define HPUX_5 */
46
47/* The following three symbols give information on
48 the size of various data types. */
49
50#define SHORTBITS 16 /* Number of bits in a short */
51
52#define INTBITS 32 /* Number of bits in an int */
53
54#define LONGBITS 32 /* Number of bits in a long */
55
56/* Define BIG_ENDIAN iff lowest-numbered byte in a word
57 is the most significant byte. */
58
59#define BIG_ENDIAN
60
61/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
62 * group of arguments and treat it as an array of the arguments. */
63
64/* #define NO_ARG_ARRAY */
65
66/* Define WORD_MACHINE if addresses and such have
67 * to be corrected before they can be used as byte counts. */
68
69/* #define WORD_MACHINE */
70
71/* Define how to take a char and sign-extend into an int.
72 On machines where char is signed, this is a no-op. */
73
74#define SIGN_EXTEND_CHAR(c) (c)
75
76/* Now define a symbol for the cpu type, if your compiler
77 does not define it automatically. */
78
79#ifndef hp9000s300
80#define hp9000s300
81#endif
82
83/* Use type int rather than a union, to represent Lisp_Object */
84/* This is desirable for most machines. */
85
86#define NO_UNION_TYPE
87
88/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
89 the 24-bit bit field into an int. In other words, if bit fields
90 are always unsigned.
91
92 If you use NO_UNION_TYPE, this flag does not matter. */
93
94#define EXPLICIT_SIGN_EXTEND
95
96/* Define CANNOT_DUMP on machines where unexec does not work.
97 Then the function dump-emacs will not be defined
98 and temacs will do (load "loadup") automatically unless told otherwise. */
99
100/* #define CANNOT_DUMP */
101
102/* Define VIRT_ADDR_VARIES if the virtual addresses of
103 pure and impure space as loaded can vary, and even their
104 relative order cannot be relied on.
105
106 Otherwise Emacs assumes that text space precedes data space,
107 numerically. */
108
109/* #define VIRT_ADDR_VARIES */
110
111/* For University of Utah 4.3bsd implemetation on HP300s.
112 The #ifndef __GNUC__ definitions are required for the "standard" cc,
113 a very old, brain-dead version of PCC. */
114
115#ifdef BSD4_3
116/* Tell crt0.c that this is an ordinary 68020. */
117#undef hp9000s300
118#define CRT0_DUMMIES bogus_a6,
119
120#define HAVE_ALLOCA
121
122#ifndef __GNUC__
123#define LIBS_DEBUG /* don't have -lg that works */
124#define C_DEBUG_SWITCH /* don't support -g */
125#endif
126
127#undef LOAD_AVE_TYPE
128#undef LOAD_AVE_CVT
129#define LOAD_AVE_TYPE long
130#define LOAD_AVE_CVT(x) ((int) (((double) (x)) / 2048.0 * 100.0))
131
132#endif /* BSD4_3 */
133
134#ifndef BSD4_3
135/* The following definitions are for HPUX only. */
136
137/* The symbol in the kernel where the load average is found
138 is named _avenrun on this machine. */
139
140#define LDAV_SYMBOL "_avenrun"
141
142/* Data type of load average, as read out of kmem. */
143
144#define LOAD_AVE_TYPE double
145
146/* Convert that into an integer that is 100 for a load average of 1.0 */
147
148#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
149
150/* This library is needed with -g, on the 200/300 only. */
151
152#if !defined(__GNUC__) || defined(__HPUX_ASM__)
153#define LIBS_DEBUG /usr/lib/end.o
154#endif
155
156/* The symbol FIONREAD is defined, but the feature does not work
157 on the 200/300. */
158
159#define BROKEN_FIONREAD
160
161/* In older versions of hpux, for unknown reasons, S_IFLNK is defined
162 even though symbolic links do not exist.
163 Make sure our conditionals based on S_IFLNK are not confused.
164
165 Here we assume that stat.h is included before config.h
166 so that we can override it here.
167
168 Version 6 of HP-UX has symbolic links. */
169
170#ifdef HPUX_5
171#undef S_IFLNK
172#endif
173
174/* Define the BSTRING functions in terms of the sysV functions.
175 Version 6 of HP-UX supplies these in the BSD library. */
176
177#ifdef HPUX_5
178#define bcopy(a,b,s) memcpy (b,a,s)
179#define bzero(a,s) memset (a,0,s)
180#define bcmp memcmp
181#endif
182
183/* On USG systems these have different names.
184 Version 6 of HP-UX supplies these in the BSD library. */
185
186#ifdef HPUX_5
187#define index strchr
188#define rindex strrchr
189#endif
190
191/* Define C_SWITCH_MACHINE to be +X if you want the s200/300
192 * Emacs to run on both 68010 and 68020 based hp-ux's.
193 *
194 * Define OLD_HP_ASSEMBLER if you have an ancient assembler
195 *
196 * Define HPUX_68010 if you are using the new assembler but
197 * compiling for a s200 (upgraded) or s310. 68010 based
198 * processor without 68881.
199 */
200
201/* These switches increase the size of some internal C compiler tables.
202 They are required for compiling the X11 interface files. */
203
204#ifndef HPUX_5
205#ifndef __GNUC__
206#define C_SWITCH_MACHINE -Wc,-Nd4000,-Ns3000
207#endif
208#endif
209
210#endif /* not BSD4_3 */
211
212/* Define NEED_BSDTTY if you have such. */
213
214#ifndef NOMULTIPLEJOBS
215#define NEED_BSDTTY
216#endif
217
218#ifndef NOT_C_CODE
219#ifndef NO_SHORTNAMES
220#include <sys/wait.h>
221#define WAITTYPE int
222#endif
223#define WRETCODE(w) (((w) >> 8) & 0377)
224#endif
diff --git a/src/m/ibm370aix.h b/src/m/ibm370aix.h
new file mode 100644
index 00000000000..49f06e5106f
--- /dev/null
+++ b/src/m/ibm370aix.h
@@ -0,0 +1,174 @@
1/* ibm370.h
2 For IBM 3090 type systems running AIX370.
3 Concocted by Scott Schwartz <schwartz@cs.psu.edu>
4 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY. No author or distributor
10accepts responsibility to anyone for the consequences of using it
11or for whether it serves any particular purpose or works at all,
12unless he says so in writing. Refer to the GNU Emacs General Public
13License for full details.
14
15Everyone is granted permission to copy, modify and redistribute
16GNU Emacs, but only under the conditions described in the
17GNU Emacs General Public License. A copy of this license is
18supposed to have been given to you along with GNU Emacs so you
19can know your rights and responsibilities. It should be in a
20file named COPYING. Among other things, the copyright notice
21and this notice must be preserved on all copies. */
22
23
24/* The following three symbols give information on
25 the size of various data types. */
26
27#define SHORTBITS 16 /* Number of bits in a short */
28
29#define INTBITS 32 /* Number of bits in an int */
30
31#define LONGBITS 32 /* Number of bits in a long */
32
33/* Define BIG_ENDIAN iff lowest-numbered byte in a word
34 is the most significant byte. */
35
36#define BIG_ENDIAN
37
38/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
39 * group of arguments and treat it as an array of the arguments. */
40
41#define NO_ARG_ARRAY
42
43/* Define WORD_MACHINE if addresses and such have
44 * to be corrected before they can be used as byte counts. */
45
46/* #define WORD_MACHINE */
47
48/* Define how to take a char and sign-extend into an int.
49 On machines where char is signed, this is a no-op. */
50
51#define SIGN_EXTEND_CHAR(c) (((c) & 0x80) ? ((c) | 0xffffff80) : (c))
52
53/* Now define a symbol for the cpu type, if your compiler
54 does not define it automatically:
55 Ones defined so far include vax, m68000, ns16000, pyramid,
56 orion, tahoe, APOLLO and many others */
57/* high-c defines _AIX370 */
58
59/* Use type int rather than a union, to represent Lisp_Object */
60/* This is desirable for most machines. */
61
62#define NO_UNION_TYPE
63
64/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
65 the 24-bit bit field into an int. In other words, if bit fields
66 are always unsigned.
67
68 If you use NO_UNION_TYPE, this flag does not matter. */
69
70#define EXPLICIT_SIGN_EXTEND
71
72/* Data type of load average, as read out of kmem. */
73
74#define LOAD_AVE_TYPE double
75
76/* Convert that into an integer that is 100 for a load average of 1.0 */
77
78/* XXX */
79#define LOAD_AVE_CVT(x) (int)(((double) (x)) * 100.0 / 1.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#define CANNOT_UNEXEC
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
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/* #define C_ALLOCA */
105#define HAVE_ALLOCA
106
107#ifndef NO_SHORTNAMES
108#include <alloca.h>
109#include <setjmp.h>
110#endif
111
112/* Define NO_REMAP if memory segmentation makes it not work well
113 to change the boundary between the text section and data section
114 when Emacs is dumped. If you define this, the preloaded Lisp
115 code will not be sharable; but that's better than failing completely. */
116
117#define NO_REMAP
118
119/* Don't try to include sioctl.h. */
120#undef NEED_SIOCTL
121/* That probably means we shouldn't try ptem.h either. */
122#undef NEED_PTEM_H
123
124/* Note we do not define IBMAIX, since the `hft' features
125 don't exist on this machine. */
126
127#define LIBS_DEBUG -lg
128#ifndef LD_SWITCH_SYSTEM
129#define LD_SWITCH_SYSTEM
130#endif
131
132#define LIBS_SYSTEM -lbsd
133
134/* The symbol in the kernel where the load average is found
135 is named _avenrun. */
136
137#undef LDAV_SYMBOL
138#define LDAV_SYMBOL "_avenrun"
139
140/* define MAIL_USE_FLOCK if the mailer uses flock
141 to interlock access to /usr/spool/mail/$USER.
142 The alternative is that a lock file named
143 /usr/spool/mail/$USER.lock. */
144#define MAIL_USE_FLOCK
145
146/* Define CLASH_DETECTION if you want lock files to be written
147 so that Emacs can tell instantly when you try to modify
148 a file that someone else has modified in his Emacs. */
149#define CLASH_DETECTION
150
151#define BSTRING
152
153/* First pty name is /dev/ptyp0. */
154#define FIRST_PTY_LETTER 'p'
155
156/*
157 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
158 * Look in <sys/time.h> for a timeval structure.
159 */
160#define HAVE_TIMEVAL
161
162/*
163 * Define HAVE_SELECT if the system supports the `select' system call.
164 */
165#define HAVE_SELECT
166
167/*
168 * Define HAVE_PTYS if the system supports pty devices.
169 */
170#define HAVE_PTYS
171
172/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
173
174#define HAVE_SOCKETS
diff --git a/src/m/ibmps2-aix.h b/src/m/ibmps2-aix.h
new file mode 100644
index 00000000000..1503d3e3c93
--- /dev/null
+++ b/src/m/ibmps2-aix.h
@@ -0,0 +1,238 @@
1/* machine description file for ibm ps/2 aix386.
2 Copyright (C) 1989 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26 Use -opsystem=usg5-3 on AIX 1.2.
27 -opsystem=usg5-2-2 should work on either AIX 1.1 or 1.2, but may not
28 work with certain new X window managers, and may be suboptimal.
29NOTE-END */
30
31/* The following three symbols give information on
32 the size of various data types. */
33
34#define SHORTBITS 16 /* Number of bits in a short */
35
36#define INTBITS 32 /* Number of bits in an int */
37
38#define LONGBITS 32 /* Number of bits in a long */
39
40/* i386 is not big-endian: lowest numbered byte is least significant. */
41
42/* #undef BIG_ENDIAN */
43
44/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
45 * group of arguments and treat it as an array of the arguments. */
46
47/* #define NO_ARG_ARRAY */
48
49/* Define WORD_MACHINE if addresses and such have
50 * to be corrected before they can be used as byte counts. */
51
52/* #define WORD_MACHINE */
53
54/* Define how to take a char and sign-extend into an int.
55 On machines where char is signed, this is a no-op. */
56
57#define SIGN_EXTEND_CHAR(c) ((signed char) (c))
58
59/* Now define a symbol for the cpu type, if your compiler
60 does not define it automatically:
61 Ones defined so far include vax, m68000, ns16000, pyramid,
62 orion, tahoe, APOLLO and many others */
63
64#define INTEL386
65#define aix386
66#undef SYSTEM_TYPE
67#define SYSTEM_TYPE "ibm-aix-386"
68
69#define IBMAIX
70
71/* Use type int rather than a union, to represent Lisp_Object */
72
73#define NO_UNION_TYPE
74
75/* crt0.c, if it is used, should use the i386-bsd style of entry.
76 with no extra dummy args. On USG and XENIX,
77 NO_REMAP says this isn't used. */
78
79#define CRT0_DUMMIES bogus_fp,
80
81/* crt0.c should define a symbol `start' and do .globl with a dot. */
82
83#define DOT_GLOBAL_START
84
85/* USG systems do not actually support the load average,
86so disable it for them. */
87
88/* Define CANNOT_DUMP on machines where unexec does not work.
89 Then the function dump-emacs will not be defined
90 and temacs will do (load "loadup") automatically unless told otherwise. */
91
92/* #define CANNOT_DUMP */
93
94/* Define VIRT_ADDR_VARIES if the virtual addresses of
95 pure and impure space as loaded can vary, and even their
96 relative order cannot be relied on.
97
98 Otherwise Emacs assumes that text space precedes data space,
99 numerically. */
100
101/* #define VIRT_ADDR_VARIES */
102
103/* Define addresses, macros, change some setup for dump */
104
105#define NO_REMAP
106#undef static
107 /* Since NO_REMAP, problem with statics doesn't exist */
108
109#ifdef USG5_3
110#define TEXT_START 0x00000000
111#else
112#define TEXT_START 0x00400000
113#define TEXT_END 0
114#define DATA_START 0x00800000
115#define DATA_END 0
116
117/* The data segment in this machine always starts at address 0x00800000.
118 An address of data cannot be stored correctly in a Lisp object;
119 we always lose the high bits. We must tell XPNTR to add them back. */
120
121#define DATA_SEG_BITS 0x00800000
122#endif
123
124#if 0 /* I refuse to promulgate a recommendation that would make
125 users unable to debug - RMS. */
126/* delete the following line to foil optimization, enable debugging */
127#define C_DEBUG_SWITCH -O
128#endif
129
130#define BSTRING
131#define HAVE_DUP2
132#define HAVE_GETTIMEOFDAY
133#define HAVE_SELECT
134#define HAVE_TIMEVAL
135#define HAVE_VFORK
136
137/*
138 * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir
139 * library functions. Almost, but not quite the same as
140 * the 4.2 functions
141 */
142#define SYSV_SYSTEM_DIR
143
144/*
145 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
146 * The 4.2 opendir, etc., library functions.
147 */
148#undef NONSYSTEM_DIR_LIBRARY
149
150/* But don't use utimes() -- it causes SIGSEGV! Use utime() instead. */
151#define USE_UTIME
152
153/* AIX defines FIONREAD, but it does not work. */
154#define BROKEN_FIONREAD
155
156/* Data type of load average, as read out of kmem. */
157
158#define LOAD_AVE_TYPE long /* For AIX (sysV) */
159
160/* Convert that into an integer that is 100 for a load average of 1.0 */
161
162#define LOAD_AVE_CVT(x) (int) (((double) (x)/65535.0) * 100.0)
163
164/* This page was added in June 1990. It may be incorrect for some versions
165 of aix, so delete it if it causes trouble. */
166
167/* AIX has sigsetmask() */
168#undef sigsetmask
169
170/* AIX386 has BSD4.3 PTYs */
171
172#define HAVE_PTYS
173
174/* AIX has IPC. It also has sockets, and either can be used for client/server.
175 I would suggest the client/server code be changed to use HAVE_SOCKETS rather
176 than BSD as the conditional if sockets provide any advantages. */
177
178#define HAVE_SYSVIPC
179
180/* AIX has sockets */
181
182#define HAVE_SOCKETS
183/* #define SKTPAIR */ /* SKTPAIR works, but what is advantage over pipes? */
184
185/* Specify the font for X to use. */
186
187#define X_DEFAULT_FONT "8x13"
188
189/* AIX has a wait.h. */
190
191#define HAVE_WAIT_HEADER
192
193/* sioctl.h should not be included, says bytheway@cs.utah.edu. */
194#undef NEED_SIOCTL
195/* I'm guessing that that means it doesn't want ptem.h either. */
196#undef NEED_PTEM_H
197
198/* aix has `union wait' */
199#define HAVE_UNION_WAIT
200
201/* Here override various assumptions in ymakefile */
202
203/* Define C_ALLOCA if this machine does not support a true alloca
204 and the one written in C should be used instead.
205 Define HAVE_ALLOCA to say that the system provides a properly
206 working alloca function and it should be used.
207 Define neither one if an assembler-language alloca
208 in the file alloca.s should be used. */
209
210#ifdef __GNUC__
211#define HAVE_ALLOCA
212#define alloca(n) __builtin_alloca(n)
213#define LIB_STANDARD /usr/local/lib/gcc-gnulib -lbsd -lrts -lc
214/* -g fails to work, so it is omitted. */
215/* tranle says that -fstrength-reduce does not help. */
216#define C_DEBUG_SWITCH -O -fwritable-strings
217#else
218#define C_ALLOCA
219#define STACK_DIRECTION -1 /* tell alloca.c which way it grows */
220#define LIBS_MACHINE -lbsd -lrts
221#endif
222
223#define OBJECTS_MACHINE hftctl.o
224#define LD_SWITCH_MACHINE -T0x00400000 -K -e start
225
226#ifdef USG5_3
227#define XICCC
228#define HAVE_GETWD
229#define HAVE_RENAME
230#undef LD_SWITCH_MACHINE
231#define LD_SWITCH_MACHINE -T0x0 -K -e start
232
233/* Things defined in s-usg5-3.h that need to be overridden. */
234#undef NOMULTIPLEJOBS
235#undef BROKEN_TIOCGETC
236#undef LIBX10_SYSTEM
237#undef LIBX11_SYSTEM
238#endif
diff --git a/src/m/intel386.h b/src/m/intel386.h
new file mode 100644
index 00000000000..de07923f9a0
--- /dev/null
+++ b/src/m/intel386.h
@@ -0,0 +1,182 @@
1/* machine description file for intel 386.
2 Copyright (C) 1987 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26Intel 386 (-machine=intel386 or -machine=is386.h)
27
28 The possibilities for -opsystem are: bsd4-2, usg5-2-2, usg5-3,
29 isc2-2, 386-ix, esix, or xenix.
30
31 18.58 should support a wide variety of operating systems.
32 Use isc2-2 for Interactive 386/ix version 2.2.
33 Use 386ix for prior versions.
34 Use esix for Esix. It isn't clear what to do on an SCO system.
35
36 -machine=is386 is used for an Integrated Solutions 386 machine.
37 It may also be correct for Microport systems.
38
39Cubix QBx/386 (-machine=intel386 -opsystem=usg5-3)
40
41 Changes merged in 19.1. Systems before 2/A/0 may fail to compile etags.c
42 due to a compiler bug.
43
44Prime EXL (-machine=intel386 -opsystem=usg5-3)
45
46 Minor changes merged in 19.1.
47NOTE-END */
48
49/* The following three symbols give information on
50 the size of various data types. */
51
52#define SHORTBITS 16 /* Number of bits in a short */
53
54#define INTBITS 32 /* Number of bits in an int */
55
56#define LONGBITS 32 /* Number of bits in a long */
57
58/* i386 is not big-endian: lowest numbered byte is least significant. */
59
60/* #undef BIG_ENDIAN */
61
62/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
63 * group of arguments and treat it as an array of the arguments. */
64
65/* #define NO_ARG_ARRAY */
66
67/* Define WORD_MACHINE if addresses and such have
68 * to be corrected before they can be used as byte counts. */
69
70/* #define WORD_MACHINE */
71
72/* Define how to take a char and sign-extend into an int.
73 On machines where char is signed, this is a no-op. */
74
75#define SIGN_EXTEND_CHAR(c) (c)
76
77/* Now define a symbol for the cpu type, if your compiler
78 does not define it automatically:
79 Ones defined so far include vax, m68000, ns16000, pyramid,
80 orion, tahoe, APOLLO and many others */
81
82#define INTEL386
83
84/* Use type int rather than a union, to represent Lisp_Object */
85
86#define NO_UNION_TYPE
87
88/* crt0.c, if it is used, should use the i386-bsd style of entry.
89 with no extra dummy args. On USG and XENIX,
90 NO_REMAP says this isn't used. */
91
92#define CRT0_DUMMIES bogus_fp,
93
94/* crt0.c should define a symbol `start' and do .globl with a dot. */
95
96#define DOT_GLOBAL_START
97
98#ifdef XENIX
99/* Data type of load average, as read out of kmem. */
100#define LOAD_AVE_TYPE short
101
102/* Convert that into an integer that is 100 for a load average of 1.0 */
103#define LOAD_AVE_CVT(x) ((int) (((double) (x)) * 100.0 / FSCALE))
104
105#define FSCALE 256.0 /* determined by experimentation... */
106#endif
107
108#ifdef USG5_4 /* Older USG systems do not support the load average. */
109/* Data type of load average, as read out of kmem. */
110
111#define LOAD_AVE_TYPE long
112
113/* Convert that into an integer that is 100 for a load average of 1.0 */
114/* This is totally uncalibrated. */
115
116#define LOAD_AVE_CVT(x) ((int) ((double) (x)) * 100.0 / FSCALE)
117#define FSCALE 256.0
118*endif
119
120/* Define CANNOT_DUMP on machines where unexec does not work.
121 Then the function dump-emacs will not be defined
122 and temacs will do (load "loadup") automatically unless told otherwise. */
123
124/* #define CANNOT_DUMP */
125
126/* Define VIRT_ADDR_VARIES if the virtual addresses of
127 pure and impure space as loaded can vary, and even their
128 relative order cannot be relied on.
129
130 Otherwise Emacs assumes that text space precedes data space,
131 numerically. */
132
133/* #define VIRT_ADDR_VARIES */
134
135#ifdef XENIX
136#define VALBITS 26
137#define GCTYPEBITS 5
138
139/* Define NO_REMAP if memory segmentation makes it not work well
140 to change the boundary between the text section and data section
141 when Emacs is dumped. If you define this, the preloaded Lisp
142 code will not be sharable; but that's better than failing completely. */
143
144#define NO_REMAP
145
146#define STACK_DIRECTION -1
147
148/* Since cannot purify, use standard Xenix 386 startup code. */
149
150#define START_FILES /lib/386/Sseg.o pre-crt0.o /lib/386/Scrt0.o
151
152/* These really use terminfo. */
153
154#define LIBS_TERMCAP /lib/386/Slibcurses.a \
155 /lib/386/Slibtinfo.a /lib/386/Slibx.a
156
157/* Standard libraries for this machine. Since `-l' doesn't work in `ld'. */
158/* '__fltused' is unresolved w/o Slibcfp.a */
159#define LIB_STANDARD /lib/386/Slibcfp.a /lib/386/Slibc.a
160#else /* not XENIX */
161
162#ifdef USG
163#define LIB_STANDARD -lPW -lc
164#define HAVE_ALLOCA
165#define NO_REMAP
166#define TEXT_START 0
167#endif /* USG */
168#endif /* not XENIX */
169
170#ifdef BSD
171#define HAVE_ALLOCA
172#endif /* BSD */
173 BSD */
174
175/* If compiling with GCC, let GCC implement alloca. */
176#if defined(__GNUC__) && !defined(alloca)
177#define alloca(n) __builtin_alloca(n)
178#define HAVE_ALLOCA
179#endif
180
181/* Search these directories just in case; I'm told they might be needed. */
182#define C_SWITCH_MACHINE -I/usr/X/include -I/usr/netinclude
diff --git a/src/m/iris4d.h b/src/m/iris4d.h
new file mode 100644
index 00000000000..89d022f765d
--- /dev/null
+++ b/src/m/iris4d.h
@@ -0,0 +1,193 @@
1/* machine description file for Iris-4D machines. Use with s-iris3-6.h
2 Copyright (C) 1987 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="irix3-3" */
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#undef 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 Ones defined so far include vax, m68000, ns16000, pyramid,
57 orion, tahoe, APOLLO and many others */
58
59#ifndef mips
60#define mips
61#endif
62
63#ifndef IRIS_4D
64#define IRIS_4D
65#endif
66
67/* Use type int rather than a union, to represent Lisp_Object */
68/* This is desirable for most machines. */
69
70#define NO_UNION_TYPE
71
72/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
73 the 24-bit bit field into an int. In other words, if bit fields
74 are always unsigned.
75
76 If you use NO_UNION_TYPE, this flag does not matter. */
77
78#define EXPLICIT_SIGN_EXTEND
79
80/* Data type of load average, as read out of kmem. */
81
82#define LOAD_AVE_TYPE long /* This doesn't quite work on the 4D */
83
84/* Convert that into an integer that is 100 for a load average of 1.0 */
85
86#define LOAD_AVE_CVT(x) (int)(((double)(x)*100)/1024.0)
87
88/* s-iris3-6.h uses /vmunix */
89
90#undef KERNEL_FILE
91#define KERNEL_FILE "/unix"
92
93/* Define CANNOT_DUMP on machines where unexec does not work.
94 Then the function dump-emacs will not be defined
95 and temacs will do (load "loadup") automatically unless told otherwise. */
96
97#undef CANNOT_DUMP
98
99/* Define VIRT_ADDR_VARIES if the virtual addresses of
100 pure and impure space as loaded can vary, and even their
101 relative order cannot be relied on.
102
103 Otherwise Emacs assumes that text space precedes data space,
104 numerically. */
105
106/* #define VIRT_ADDR_VARIES */
107
108/* Define C_ALLOCA if this machine does not support a true alloca
109 and the one written in C should be used instead.
110 Define HAVE_ALLOCA to say that the system provides a properly
111 working alloca function and it should be used.
112 Define neither one if an assembler-language alloca
113 in the file alloca.s should be used. */
114
115#define C_ALLOCA
116/* #define HAVE_ALLOCA */
117
118/* Define NO_REMAP if memory segmentation makes it not work well
119 to change the boundary between the text section and data section
120 when Emacs is dumped. If you define this, the preloaded Lisp
121 code will not be sharable; but that's better than failing completely. */
122
123#define NO_REMAP
124
125/* This machine requires completely different unexec code
126 which lives in a separate file. Specify the file name. */
127
128#define UNEXEC unexmips.o
129
130#define TEXT_START 0x400000
131
132/*
133 * DATA_SEG_BITS forces that bit to be or'd in with any pointers which
134 * are trying to access pure strings (as gnu-emacs only allows 24 bits
135 * for the value field of a LISP_OBJECT).
136 */
137
138#define DATA_START 0x10000000
139#define DATA_SEG_BITS 0x10000000
140
141#undef LIBS_MACHINE
142/* -lsun in case using Yellow Pages for passwords. */
143#define LIBS_MACHINE -lsun -lmld
144#define LIBS_DEBUG
145
146/* Define this if you have a fairly recent system,
147 in which crt1.o and crt1.n should be used. */
148#define HAVE_CRTN
149
150#ifdef HAVE_CRTN
151/* Must define START-FILES so that the linker can find /usr/lib/crt0.o. */
152#define START_FILES pre-crt0.o /usr/lib/crt1.o
153#define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o
154#else
155#define START_FILES pre-crt0.o /usr/lib/crt0.o
156/* The entry-point label (start of text segment) is `start', not `__start'. */
157#define DEFAULT_ENTRY_ADDRESS start
158#define LIB_STANDARD -lbsd -lc
159#endif
160
161/* Use terminfo instead of termcap. */
162
163#define TERMINFO
164
165/* sioctl.h should be included where appropriate. */
166
167#define NEED_SIOCTL
168
169/* Letter to use in finding device name of first pty,
170 if system supports pty's. 'a' means it is /dev/ptya0 */
171
172#undef FIRST_PTY_LETTER
173#define FIRST_PTY_LETTER 'q'
174
175/* Define STACK_DIRECTION for alloca.c */
176
177#define STACK_DIRECTION -1
178
179/* The standard definitions of these macros would work ok,
180 but these are faster because the constants are short. */
181
182#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS)
183
184#define XSET(var, type, ptr) \
185 ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS))
186
187#define XSETINT(a, b) XSET(a, XTYPE(a), b)
188#define XSETUINT(a, b) XSET(a, XTYPE(a), b)
189#define XSETPNTR(a, b) XSET(a, XTYPE(a), b)
190
191#define XMARKBIT(a) ((a) < 0)
192#define XSETMARKBIT(a,b) ((a) = ((a) & ~MARKBIT) | ((b) ? MARKBIT : 0))
193#define XUNMARK(a) ((a) = (((unsigned)(a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS))
diff --git a/src/m/irist.h b/src/m/irist.h
new file mode 100644
index 00000000000..11c58e25417
--- /dev/null
+++ b/src/m/irist.h
@@ -0,0 +1,155 @@
1/* machine description file for Silicon Graphics Iris 2500 Turbos;
2 also possibly for non-turbo Irises with system release 2.5.
3 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 1, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
20
21
22/* The following line tells the configuration script what sort of
23 operating system this machine is likely to run.
24 USUAL-OPSYS="note"
25NOTE-START
26Version 18 said to work; use -opsystem=irist3-5 for system version 2.5
27and -opsystem=iris3-6 for system versions 3.6 and up.
28NOTE-END */
29
30#if 0
31 Message-Id: <8705050653.AA20004@orville.arpa>
32 Subject: gnu emacs 18.41 on iris [23].5 machines
33 Date: 04 May 87 23:53:11 PDT (Mon)
34 From: raible@orville.arpa
35
36 Aside from the SIGIOT, I know of only one bug, a real strange one:
37 I wrote a utimes interface, which copies elements from timevals
38 to utimbufs. This code is known good. The problem is that in
39 emacs, the utime doesn't seem to take effect (i.e. doesn't change the
40 dates at all) unless I call report_file_error *after* the utime returns!
41
42 if (utime (name, &utb) < 0)
43 return;
44 else
45 /* XXX XXX XXX */
46 /* For some reason, if this is taken out, then the utime above breaks! */
47 /* (i.e. it doesn't set the time. This just makes no sense... */
48 /* Eric - May 4, 1987 */
49 report_file_error ("Worked just find\n", Qnil);
50
51 Without any sort of debugger that works on emacs (I know... but I don't have
52 *time* right now to start with gdb), it was quite time consuming to track
53 it down to this.
54
55 But since this code is only used for an optional 4th argument to one command
56 (copy-file), it would say that it is non-critical...
57#endif /* 0 */
58
59/* The following three symbols give information on
60 the size of various data types. */
61
62#define SHORTBITS 16 /* Number of bits in a short */
63
64#define INTBITS 32 /* Number of bits in an int */
65
66#define LONGBITS 32 /* Number of bits in a long */
67
68/* Define BIG_ENDIAN iff lowest-numbered byte in a word
69 is the most significant byte. */
70
71#define BIG_ENDIAN
72
73/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
74 * group of arguments and treat it as an array of the arguments. */
75
76/* #define NO_ARG_ARRAY */
77
78/* Define WORD_MACHINE if addresses and such have
79 * to be corrected before they can be used as byte counts. */
80
81/* #define WORD_MACHINE */
82
83/* Define how to take a char and sign-extend into an int.
84 On machines where char is signed, this is a no-op. */
85
86#define SIGN_EXTEND_CHAR(c) (c)
87
88/* Now define a symbol for the cpu type, if your compiler
89 does not define it automatically:
90 Ones defined so far include vax, m68000, ns16000, pyramid,
91 orion, tahoe, APOLLO and many others */
92
93#ifndef m68000
94#define m68000
95#endif
96
97/* Use type int rather than a union, to represent Lisp_Object */
98/* This is desirable for most machines. */
99
100#define NO_UNION_TYPE
101
102/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
103 the 24-bit bit field into an int. In other words, if bit fields
104 are always unsigned.
105
106 If you use NO_UNION_TYPE, this flag does not matter. */
107
108#define EXPLICIT_SIGN_EXTEND
109
110/* Data type of load average, as read out of kmem. */
111
112#define LOAD_AVE_TYPE long
113
114/* Convert that into an integer that is 100 for a load average of 1.0 */
115
116#define FSCALE 1.0
117#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
118
119/* Define CANNOT_DUMP on machines where unexec does not work.
120 Then the function dump-emacs will not be defined
121 and temacs will do (load "loadup") automatically unless told otherwise. */
122
123/* #define CANNOT_DUMP */
124
125/* Define VIRT_ADDR_VARIES if the virtual addresses of
126 pure and impure space as loaded can vary, and even their
127 relative order cannot be relied on.
128
129 Otherwise Emacs assumes that text space precedes data space,
130 numerically. */
131
132/* #define VIRT_ADDR_VARIES */
133
134/* Define C_ALLOCA if this machine does not support a true alloca
135 and the one written in C should be used instead.
136 Define HAVE_ALLOCA to say that the system provides a properly
137 working alloca function and it should be used.
138 Define neither one if an assembler-language alloca
139 in the file alloca.s should be used. */
140
141/* #define C_ALLOCA */
142#define HAVE_ALLOCA
143
144/* Define NO_REMAP if memory segmentation makes it not work well
145 to change the boundary between the text section and data section
146 when Emacs is dumped. If you define this, the preloaded Lisp
147 code will not be sharable; but that's better than failing completely. */
148
149/* #define NO_REMAP */
150
151/* There is an inconsistency between the sgi assembler, linker which barfs
152 on these. */
153
154#define internal_with_output_to_temp_buffer stupid_long_name1
155#define Finsert_abbrev_table_description stupid_long_name2
diff --git a/src/m/isi-ov.h b/src/m/isi-ov.h
new file mode 100644
index 00000000000..2f30f7f2606
--- /dev/null
+++ b/src/m/isi-ov.h
@@ -0,0 +1,105 @@
1/* machine description file for ISI 68000's
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26Use `-opsystem=bsd4-2' or `-opsystem=bsd4-3'.
27NOTE-END */
28
29#define ISI68K
30
31/* The following three symbols give information on
32 the size of various data types. */
33
34#define SHORTBITS 16 /* Number of bits in a short */
35
36#define INTBITS 32 /* Number of bits in an int */
37
38#define LONGBITS 32 /* Number of bits in a long */
39
40/* 68000 has lowest-numbered byte as most significant */
41
42#define BIG_ENDIAN
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/* Say this machine is a 68000 */
50
51#define m68000
52
53/* Use type int rather than a union, to represent Lisp_Object */
54
55#define NO_UNION_TYPE
56
57/* XINT must explicitly sign-extend */
58
59#define EXPLICIT_SIGN_EXTEND
60
61/* Data type of load average, as read out of kmem. */
62
63#ifdef BSD4_3
64#define LOAD_AVE_TYPE long
65#else
66#define LOAD_AVE_TYPE double
67#endif BSD4_3
68
69/* Convert that into an integer that is 100 for a load average of 1.0 */
70
71#ifdef BSD4_3
72#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
73#else
74#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
75#endif
76
77/* Mask for address bits within a memory segment */
78
79#define SEGMENT_MASK 0x1ffff
80
81/* use the -20 switch to get the 68020 code */
82/* #define C_SWITCH_MACHINE -20 */
83
84/* Use the version of the library for the 68020
85 because the standard library requires some special hacks in crt0
86 which the GNU crt0 does not have. */
87
88#define LIB_STANDARD -lmc
89
90/* macros to make unexec work right */
91
92#define A_TEXT_OFFSET(HDR) sizeof(HDR)
93#define A_TEXT_SEEK(HDR) sizeof(HDR)
94
95/* A few changes for the newer systems. */
96
97#ifdef BSD4_3
98#define HAVE_ALLOCA
99/* The following line affects crt0.c. */
100#undef m68k
101
102#undef LIB_STANDARD
103#define LIB_STANDARD -lmc -lc
104#define C_DEBUG_SWITCH -20 -O -X23
105#endif
diff --git a/src/m/masscomp.h b/src/m/masscomp.h
new file mode 100644
index 00000000000..f0970ed4a53
--- /dev/null
+++ b/src/m/masscomp.h
@@ -0,0 +1,150 @@
1/* machine description file for Masscomp 5000 series running RTU, ucb universe.
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="rtu" */
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#undef 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#undef 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) (c)
53
54/* Now define a symbol for the cpu type, if your compiler
55 does not define it automatically:
56 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
57 are the ones defined so far. */
58/* Masscomp predefines mc68000. */
59#define m68000 mc68000
60
61/* Use type int rather than a union, to represent Lisp_Object */
62/* This is desirable for most machines. */
63
64#define NO_UNION_TYPE
65
66/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
67 the 24-bit bit field into an int. In other words, if bit fields
68 are always unsigned.
69
70 If you use NO_UNION_TYPE, this flag does not matter. */
71
72#undef EXPLICIT_SIGN_EXTEND
73
74/* Data type of load average, as read out of kmem. */
75
76#define LOAD_AVE_TYPE double
77
78/* Convert that into an integer that is 100 for a load average of 1.0 */
79
80#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
81
82/* Define CANNOT_DUMP on machines where unexec does not work.
83 Then the function dump-emacs will not be defined
84 and temacs will do (load "loadup") automatically unless told otherwise. */
85
86#undef 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#undef VIRT_ADDR_VARIES
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/* On return from a subroutine, the 68020 compiler restores old contents of
105 register variables relative to sp, so alloca() screws up such routines.
106 The following definitions should work on all Masscomps. On the MC-5500
107 (a 68000) one can #undef C_ALLOCA and #define HAVE_ALLOCA. */
108#ifdef mc500
109#undef C_ALLOCA
110#define HAVE_ALLOCA
111#else
112#define C_ALLOCA
113#undef HAVE_ALLOCA
114#endif
115
116/* Define NO_REMAP if memory segmentation makes it not work well
117 to change the boundary between the text section and data section
118 when Emacs is dumped. If you define this, the preloaded Lisp
119 code will not be sharable; but that's better than failing completely. */
120
121#undef NO_REMAP
122
123/* crt0.c should use the vax-bsd style of entry, with a dummy arg. */
124
125#define CRT0_DUMMIES bogus_fp,
126
127/* Name of file the to look in
128 for the kernel symbol table (for load average) */
129
130#define KERNEL_FILE "/unix"
131
132/* This triggers some stuff to avoid a compiler bug */
133
134#define MASSC_REGISTER_BUG
135
136/* Prevent -lg from being used for debugging. Not implemented? */
137
138#define LIBS_DEBUG
139
140/*
141 * Define HAVE_TERMIO if the system provides sysV-style ioctls
142 * for terminal control.
143 */
144
145#define HAVE_TERMIO
146
147/* Adjust a header field for the executable file about to be dumped. */
148
149#define ADJUST_EXEC_HEADER \
150 hdr.a_stamp = STAMP13; /* really want the latest stamp, whatever it is */
diff --git a/src/m/mega68.h b/src/m/mega68.h
new file mode 100644
index 00000000000..976f1bf6230
--- /dev/null
+++ b/src/m/mega68.h
@@ -0,0 +1,61 @@
1/* machine description file for Megatest 68000's.
2 Copyright (C) 1985 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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/* 68000 has lowest-numbered byte as most significant */
35
36#define BIG_ENDIAN
37
38/* XINT must explicitly sign-extend */
39
40#define EXPLICIT_SIGN_EXTEND
41
42/* Define how to take a char and sign-extend into an int.
43 On machines where char is signed, this is a no-op. */
44
45#define SIGN_EXTEND_CHAR(c) (c)
46
47/* Say this machine is a 68000 */
48
49#define m68000
50
51/* Use type int rather than a union, to represent Lisp_Object */
52
53#define NO_UNION_TYPE
54
55/* Data type of load average, as read out of kmem. */
56
57#define LOAD_AVE_TYPE double
58
59/* Convert that into an integer that is 100 for a load average of 1.0 */
60
61#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
diff --git a/src/m/mg1.h b/src/m/mg1.h
new file mode 100644
index 00000000000..0ad56aeef38
--- /dev/null
+++ b/src/m/mg1.h
@@ -0,0 +1,126 @@
1/* machine description file for Whitechapel Computer Works MG1 (ns16000 based).
2 Copyright (C) 1985 Free Software Foundation, Inc.
3 MG-1 version by L.M.McLoughlin
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 1, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
20
21
22/* The following line tells the configuration script what sort of
23 operating system this machine is likely to run.
24 USUAL-OPSYS="note"
25
26NOTE-START
27We are in the dark about what operating system runs on the Whitechapel
28systems. Consult share-lib/MACHINES for information on which
29operating systems Emacs has already been ported to; one of them might
30work. If you find an existing system name that works or write your
31own configuration files, please let the Free Software Foundation in on
32your work; we'd like to distribute this information.
33NOTE-END */
34
35/* The following three symbols give information on
36 the size of various data types. */
37
38#define SHORTBITS 16 /* Number of bits in a short */
39
40#define INTBITS 32 /* Number of bits in an int */
41
42#define LONGBITS 32 /* Number of bits in a long */
43
44/* Define BIG_ENDIAN iff lowest-numbered byte in a word
45 is the most significant byte. */
46/* ns16000 is not big-endian: lowest numbered byte is least significant. */
47#undef BIG_ENDIAN
48
49/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
50 * group of arguments and treat it as an array of the arguments. */
51/* ns16000 call sequence used on mg1 means that &arg = the args as an array */
52#undef NO_ARG_ARRAY
53
54/* Define WORD_MACHINE if addresses and such have
55 * to be corrected before they can be used as byte counts. */
56/* ns16000 addresses are byte addresses */
57#undef WORD_MACHINE
58
59/* Define how to take a char and sign-extend into an int.
60 On machines where char is signed, this is a no-op. */
61
62#define SIGN_EXTEND_CHAR(c) (c)
63
64/* Now define a symbol for the cpu type, if your compiler
65 does not define it automatically:
66 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
67 are the ones defined so far. */
68/* Say this machine is a 16000 and an mg1, cpp says its a 32000 */
69#define ns16000
70#define mg1
71
72/* Use type int rather than a union, to represent Lisp_Object */
73/* This is desirable for most machines. */
74/* Not sure on mg-1 but this shouldn't hurt! */
75#define NO_UNION_TYPE
76
77/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
78 the 24-bit bit field into an int. In other words, if bit fields
79 are always unsigned.
80
81 If you use NO_UNION_TYPE, this flag does not matter. */
82
83#define EXPLICIT_SIGN_EXTEND
84
85/* Data type of load average, as read out of kmem. */
86/* mg1 its an unsigned long */
87#define LOAD_AVE_TYPE unsigned long
88
89/* Convert that into an integer that is 100 for a load average of 1.0 */
90#define FSCALE 1000.0
91#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
92
93/* Define CANNOT_DUMP on machines where unexec does not work.
94 Then the function dump-emacs will not be defined
95 and temacs will do (load "loadup") automatically unless told otherwise. */
96/* ns16000's have an unexec, so should the mg-1 */
97#undef CANNOT_DUMP
98
99/* Define VIRT_ADDR_VARIES if the virtual addresses of
100 pure and impure space as loaded can vary, and even their
101 relative order cannot be relied on.
102
103 Otherwise Emacs assumes that text space precedes data space,
104 numerically. */
105/* hmmmm... not sure. copied sequent.h */
106#undef VIRT_ADDR_VARIES
107
108/* Define C_ALLOCA if this machine does not support a true alloca
109 and the one written in C should be used instead.
110 Define HAVE_ALLOCA to say that the system provides a properly
111 working alloca function and it should be used.
112 Define neither one if an assembler-language alloca
113 in the file alloca.s should be used. */
114/* hmmmm... again not sure. so copied sequent.h again! */
115#undef C_ALLOCA
116#undef HAVE_ALLOCA
117
118/* Define NO_REMAP if memory segmentation makes it not work well
119 to change the boundary between the text section and data section
120 when Emacs is dumped. If you define this, the preloaded Lisp
121 code will not be sharable; but that's better than failing completely. */
122/* mapping seems screwy */
123#define NO_REMAP
124
125/* Avoids a compiler bug */
126/* borrowed from sequent.h */
diff --git a/src/m/mips.h b/src/m/mips.h
new file mode 100644
index 00000000000..d797540c4ca
--- /dev/null
+++ b/src/m/mips.h
@@ -0,0 +1,213 @@
1/* machine description file for Mips machines.
2 Copyright (C) 1987, 1990 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26Use -opsystem=usg5-2-2 normally, or -opsystem=bsd4-3 with the BSD
27world.
28NOTE-END */
29
30/* The following three symbols give information on
31 the size of various data types. */
32
33#define SHORTBITS 16 /* Number of bits in a short */
34
35#define INTBITS 32 /* Number of bits in an int */
36
37#define LONGBITS 32 /* Number of bits in a long */
38
39/* Define BIG_ENDIAN iff lowest-numbered byte in a word
40 is the most significant byte. */
41
42#define BIG_ENDIAN
43
44/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
45 * group of arguments and treat it as an array of the arguments. */
46
47#define NO_ARG_ARRAY
48
49/* Define WORD_MACHINE if addresses and such have
50 * to be corrected before they can be used as byte counts. */
51
52#undef WORD_MACHINE
53
54/* Define how to take a char and sign-extend into an int.
55 On machines where char is signed, this is a no-op. */
56
57#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
58
59/* Now define a symbol for the cpu type, if your compiler
60 does not define it automatically:
61 Ones defined so far include vax, m68000, ns16000, pyramid,
62 orion, tahoe, APOLLO and many others */
63#ifndef mips
64# define mips
65#endif
66
67/* Use type int rather than a union, to represent Lisp_Object */
68/* This is desirable for most machines. */
69
70#define NO_UNION_TYPE
71
72/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
73 the 24-bit bit field into an int. In other words, if bit fields
74 are always unsigned.
75
76 If you use NO_UNION_TYPE, this flag does not matter. */
77
78#define EXPLICIT_SIGN_EXTEND
79
80/* Data type of load average, as read out of kmem. */
81
82#define LOAD_AVE_TYPE long
83
84/* Convert that into an integer that is 100 for a load average of 1.0 */
85
86#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / 256.0)
87
88/* Define CANNOT_DUMP on machines where unexec does not work.
89 Then the function dump-emacs will not be defined
90 and temacs will do (load "loadup") automatically unless told otherwise. */
91
92#undef CANNOT_DUMP
93
94/* Define VIRT_ADDR_VARIES if the virtual addresses of
95 pure and impure space as loaded can vary, and even their
96 relative order cannot be relied on.
97
98 Otherwise Emacs assumes that text space precedes data space,
99 numerically. */
100
101/* #define VIRT_ADDR_VARIES */
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 HAVE_ALLOCA */
112
113/* Define NO_REMAP if memory segmentation makes it not work well
114 to change the boundary between the text section and data section
115 when Emacs is dumped. If you define this, the preloaded Lisp
116 code will not be sharable; but that's better than failing completely. */
117
118#define NO_REMAP
119
120/* This machine requires completely different unexec code
121 which lives in a separate file. Specify the file name. */
122
123#define UNEXEC unexmips.o
124
125/* Describe layout of the address space in an executing process. */
126
127#define TEXT_START 0x400000
128#define DATA_START 0x800000
129
130/* Alter some of the options used when linking. */
131
132#ifdef BSD
133
134/* Supposedly the dec machine doesn't have this library.
135 #define LIBS_MACHINE -lmld */
136
137#define LD_SWITCH_MACHINE -D 800000
138#define LIBS_DEBUG
139
140#else
141
142#define LIBS_MACHINE -lmld
143#define LD_SWITCH_MACHINE -D 800000 -g3
144#define START_FILES pre-crt0.o /usr/lib/crt1.o
145#define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o
146#define LIBS_TERMCAP -lcurses
147
148#define C_SWITCH_SYSTEM -I/usr/include/bsd
149#define C_DEBUG_SWITCH -O -g3
150
151#if defined(HAVE_X_WINDOWS) && defined(HAVE_X11)
152#define HAVE_VFORK /* Graciously provided by libX.a */
153#endif
154#endif
155
156/* The standard definitions of these macros would work ok,
157 but these are faster because the constants are short. */
158
159#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS)
160
161#define XSET(var, type, ptr) \
162 ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS))
163
164#define XSETINT(a, b) XSET(a, XTYPE(a), b)
165#define XSETUINT(a, b) XSET(a, XTYPE(a), b)
166#define XSETPNTR(a, b) XSET(a, XTYPE(a), b)
167
168#define XUNMARK(a) ((a) = (((unsigned)(a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS))
169#ifdef USG
170
171/* Cancel certain parts of standard sysV support. */
172#undef NONSYSTEM_DIR_LIBRARY
173#define SYSV_SYSTEM_DIR
174#undef static
175
176/* Don't try to use SIGIO or FIONREAD even though they are defined. */
177#undef SIGIO
178#define BROKEN_FIONREAD
179
180/* Describe special kernel features. */
181
182#define HAVE_SYSVIPC
183
184#define HAVE_TIMEVAL
185#if defined(emacs)
186#include <bsd/sys/time.h>
187#endif
188
189/* #define HAVE_SELECT
190 The `select' in the system won't work for pipes,
191 so don't use it. */
192
193#define HAVE_DUP2
194#define HAVE_GETWD
195#define HAVE_GETTIMEOFDAY
196
197#define HAVE_PTYS
198#define HAVE_SOCKETS
199
200#undef NOMULTIPLEJOBS
201#define utimes utime /* Someone should check this. */
202
203/* ??? */
204#define IRIS
205
206#endif
207
208#ifdef BSD
209#define COFF
210#define TERMINFO
211#undef MAIL_USE_FLOCK /* Someone should check this. */
212#undef HAVE_UNION_WAIT
213#endif /* BSD */
diff --git a/src/m/mips4.h b/src/m/mips4.h
new file mode 100644
index 00000000000..91cda937841
--- /dev/null
+++ b/src/m/mips4.h
@@ -0,0 +1,33 @@
1/* machine description file for Mips running RISCOS version 4. */
2
3#include "mips.h"
4
5/* The following line tells the configuration script what sort of
6 operating system this machine is likely to run.
7 USUAL-OPSYS="note"
8
9NOTE-START
10Use -opsystem=usg5-2-2 normally, or -opsystem=bsd4-3 with the BSD
11world.
12NOTE-END */
13
14/* Define MIPS2 if you have an R6000 or R4000. */
15/* #define MIPS2 */
16
17#ifdef MIPS2
18#define C_DEBUG_SWITCH -systype bsd43 -O -Olimit 791 -g3 -mips2
19#else
20#define C_DEBUG_SWITCH -systype bsd43 -O -Olimit 791 -g3
21#endif
22
23#ifdef TERMINFO
24#undef TERMINFO
25#endif
26
27#define START_FILES pre-crt0.o /lib/crt1.o
28#define LIB_STANDARD -lmld -lc /lib/crtn.o
29
30
31#define COFF
32#undef LD_SWITCH_MACHINE
33#define LD_SWITCH_MACHINE -systype bsd43 -g3 -D 800000
diff --git a/src/m/news.h b/src/m/news.h
new file mode 100644
index 00000000000..618477c171e
--- /dev/null
+++ b/src/m/news.h
@@ -0,0 +1,76 @@
1/* machine description file for Sony's NEWS workstations, NEWS-OS 3.0.
2 Copyright (C) 1985, 1986, 1989 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26Use -opsystem=bsd4-2, or -opsystem=bsd4-3 for system release 3.
27NOTE-END */
28
29/* Say this machine is a 68000 */
30
31#ifndef m68000
32#define m68000
33#endif
34
35/* The following three symbols give information on
36 the size of various data types. */
37
38#define SHORTBITS 16 /* Number of bits in a short */
39
40#define INTBITS 32 /* Number of bits in an int */
41
42#define LONGBITS 32 /* Number of bits in a long */
43
44/* 68000 has lowest-numbered byte as most significant */
45
46#define BIG_ENDIAN
47
48/* One CRT0 Dummy variable */
49
50#define CRT0_DUMMIES one_dummy,
51
52/* Define how to take a char and sign-extend into an int.
53 On machines where char is signed, this is a no-op. */
54
55#define SIGN_EXTEND_CHAR(c) (c)
56
57/* Use type int rather than a union, to represent Lisp_Object */
58
59#define NO_UNION_TYPE
60
61/* The News machine has alloca. */
62
63#define HAVE_ALLOCA
64
65/* Data type of load average, as read out of kmem. */
66
67#define LOAD_AVE_TYPE double
68
69/* Convert that into an integer that is 100 for a load average of 1.0 */
70
71#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
72
73/* Must use the system's termcap. It does special things. */
74
75#define LIBS_TERMCAP -ltermcap
76
diff --git a/src/m/ns16000.h b/src/m/ns16000.h
new file mode 100644
index 00000000000..3aa798ddad5
--- /dev/null
+++ b/src/m/ns16000.h
@@ -0,0 +1,112 @@
1/* machine description file for ns16000.
2 Copyright (C) 1985 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26For the Encore, use `-opsystem=umax'.
27For a Tektronix 16000 box (a 6130, perhaps?), use `-opsystem=bsd4-2'.
28Use `-machine=ns16000' for both.
29NOTE-END */
30
31/* The following three symbols give information on
32 the size of various data types. */
33
34#define SHORTBITS 16 /* Number of bits in a short */
35
36#define INTBITS 32 /* Number of bits in an int */
37
38#define LONGBITS 32 /* Number of bits in a long */
39
40/* 16000 is little-endian (lowest-numbered byte is least significant) */
41
42/* #define BIG_ENDIAN */ /* So don't define this. */
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/* Say this machine is a 16000 */
50
51#define ns16000 1
52
53/* Use type int rather than a union, to represent Lisp_Object */
54
55#define NO_UNION_TYPE
56
57/* Data type of load average, as read out of kmem. */
58
59#ifndef USG
60#define LOAD_AVE_TYPE double
61#endif
62
63/* Convert that into an integer that is 100 for a load average of 1.0 */
64
65#ifndef USG
66#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
67#endif
68
69#ifdef USG
70
71/* Control assembler syntax used in alloca.s. */
72#define NS5
73
74/* On early NS systems ulimit was buggy. If set emacs uses this value
75 * for the maximum sbrk value instead of getting it from ulimit.
76 */
77#define ULIMIT_BREAK_VALUE 0x7E0000
78
79/* Early NS compilers have this bug. I believe it has been fixed in later
80 * releases.
81 */
82#define SHORT_CAST_BUG
83
84#define SEGMENT_MASK (NBPS - 1)
85
86/* Variables to get crt0.c to come out correctly */
87#define CRT0_DUMMIES bogus_fp,
88#define DOT_GLOBAL_START
89
90/* Control how emacsclient communicates. */
91#define HAVE_SYSVIPC
92
93/* Set this to /bin/mail unless you have a better mail posting program */
94#define MAIL_PROGRAM_NAME "/usr/local/bin/remail"
95
96/* Tell sysdep.c not to define bzero, etc. */
97#undef BSTRING
98#define BSTRING
99
100/* Macro definitions to emulate BSD functions with SysV ones */
101#undef bcopy
102#undef bzero
103#undef bcmp
104
105#define bcopy(a,b,s) memcpy(b,a,s)
106#define bzero(a,s) memset(a,0,s)
107#define bcmp memcmp
108
109/* This avoids problems with uninitialized static variables going in .data. */
110#define static
111
112#endif /* USG */
diff --git a/src/m/ns32000.h b/src/m/ns32000.h
new file mode 100644
index 00000000000..bca1825e406
--- /dev/null
+++ b/src/m/ns32000.h
@@ -0,0 +1,121 @@
1/* machine description file for Netional Semiconductor 32000, running Genix.
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is distributed in the hope that it will be useful,
7but WITHOUT ANY WARRANTY. No author or distributor
8accepts responsibility to anyone for the consequences of using it
9or for whether it serves any particular purpose or works at all,
10unless he says so in writing. Refer to the GNU Emacs General Public
11License for full details.
12
13Everyone is granted permission to copy, modify and redistribute
14GNU Emacs, but only under the conditions described in the
15GNU Emacs General Public License. A copy of this license is
16supposed to have been given to you along with GNU Emacs so you
17can know your rights and responsibilities. It should be in a
18file named COPYING. Among other things, the copyright notice
19and this notice must be preserved on all copies. */
20
21
22/* The following line tells the configuration script what sort of
23 operating system this machine is likely to run.
24 USUAL-OPSYS="usg5-2" */
25
26/* The following three symbols give information on
27 the size of various data types. */
28
29#define SHORTBITS 16 /* Number of bits in a short */
30
31#define INTBITS 32 /* Number of bits in an int */
32
33#define LONGBITS 32 /* Number of bits in a long */
34
35/* Define BIG_ENDIAN iff lowest-numbered byte in a word
36 is the most significant byte. */
37
38/* #define BIG_ENDIAN */
39
40/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
41 * group of arguments and treat it as an array of the arguments. */
42
43/* #define NO_ARG_ARRAY */
44
45/* Define WORD_MACHINE if addresses and such have
46 * to be corrected before they can be used as byte counts. */
47
48/* #define WORD_MACHINE */
49
50/* Define how to take a char and sign-extend into an int.
51 On machines where char is signed, this is a no-op. */
52
53#define SIGN_EXTEND_CHAR(c) (c)
54
55/* Now define a symbol for the cpu type, if your compiler
56 does not define it automatically:
57 Ones defined so far include vax, m68000, ns16000, pyramid,
58 orion, tahoe, APOLLO and many others */
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 long */
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 / FSCALE) */
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/* #define 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 C_ALLOCA */
104/* #define HAVE_ALLOCA */
105
106/* Define NO_REMAP if memory segmentation makes it not work well
107 to change the boundary between the text section and data section
108 when Emacs is dumped. If you define this, the preloaded Lisp
109 code will not be sharable; but that's better than failing completely. */
110
111/* #define NO_REMAP */
112
113#define TEXT_START 0
114
115#define STACK_DIRECTION -1
116
117#define EXEC_MAGIC 0410
118
119#define PURESIZE 140000
120
121#define START_FILES pre-crt0.o /lib/crt0.o
diff --git a/src/m/nu.h b/src/m/nu.h
new file mode 100644
index 00000000000..ef12ccc2037
--- /dev/null
+++ b/src/m/nu.h
@@ -0,0 +1,84 @@
1/* machine description file for TI Nu machines using system V.
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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" */
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/* XINT must explicitly sign-extend */
40
41#define EXPLICIT_SIGN_EXTEND
42
43/* Define how to take a char and sign-extend into an int.
44 On machines where char is signed, this is a no-op. */
45
46#define SIGN_EXTEND_CHAR(c) (c)
47
48/* Use type int rather than a union, to represent Lisp_Object */
49
50#define NO_UNION_TYPE
51
52/* Now define a symbol for the cpu type, if your compiler
53 does not define it automatically:
54 vax, m68000, ns16000 are the ones defined so far. */
55
56#ifndef m68000
57#define m68000
58#endif
59
60#ifndef NU
61#define NU
62#endif
63
64/* Data type of load average, as read out of kmem. */
65/* These are commented out since it does not really work in uniplus */
66
67/* #define LOAD_AVE_TYPE long */
68
69/* Convert that into an integer that is 100 for a load average of 1.0 */
70
71/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */
72
73/* Change some things to avoid bugs in compiler */
74
75#define SWITCH_ENUM_BUG 1
76
77/* The NU machine has a compiler that can handle long names. */
78
79#undef SHORTNAMES
80
81/* Specify alignment requirement for start of text and data sections
82 in the executable file. */
83
84#define SECTION_ALIGNMENT pagemask
diff --git a/src/m/orion.h b/src/m/orion.h
new file mode 100644
index 00000000000..fec8a0c2b5e
--- /dev/null
+++ b/src/m/orion.h
@@ -0,0 +1,84 @@
1/* machine description file for HLH Orion.
2 Copyright (C) 1985 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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#undef BIG_ENDIAN
38
39/* Now define a symbol for the cpu type, if your compiler
40 does not define it automatically. */
41
42#ifndef orion
43#define orion
44#endif
45
46/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
47 * group of arguments and treat it as an array of the arguments. */
48
49#define NO_ARG_ARRAY
50
51/* Define WORD_MACHINE if addresses and such have
52 * to be corrected before they can be used as byte counts. */
53
54#define WORD_MACHINE
55
56/* Define how to take a char and sign-extend into an int.
57 On machines where char is signed, this is a no-op. */
58
59#define SIGN_EXTEND_CHAR(c) ((((int) (c)) << 24) >> 24)
60
61/* Use type int rather than a union, to represent Lisp_Object */
62/* This is desirable for most machines. */
63
64#define NO_UNION_TYPE
65
66/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend */
67
68#define EXPLICIT_SIGN_EXTEND
69
70/* Data type of load average, as read out of kmem. */
71
72#define LOAD_AVE_TYPE double
73
74/* Convert that into an integer that is 100 for a load average of 1.0 */
75
76#ifndef FSCALE
77#define FSCALE 1.0
78#endif
79#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
80
81/* It is necessary to use the portable imitation of alloca,
82 since a true stack-allocating one is impossible. */
83
84#define C_ALLOCA
diff --git a/src/m/orion105.h b/src/m/orion105.h
new file mode 100644
index 00000000000..9820b6cd3b7
--- /dev/null
+++ b/src/m/orion105.h
@@ -0,0 +1,90 @@
1/* machine description file for HLH Orion 1/05 (Clipper).
2 Copyright (C) 1985 Free Software Foundation, Inc.
3 Lee McLoughlin <lmjm%doc.imperial.ac.uk@nss.cs.ucl.ac.uk>
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 1, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
20
21
22/* The following line tells the configuration script what sort of
23 operating system this machine is likely to run.
24 USUAL-OPSYS="bsd4-2" */
25
26/* The following three symbols give information on
27 the size of various data types. */
28
29#define SHORTBITS 16 /* Number of bits in a short */
30
31#define INTBITS 32 /* Number of bits in an int */
32
33#define LONGBITS 32 /* Number of bits in a long */
34
35/* Define BIG_ENDIAN iff lowest-numbered byte in a word
36 is the most significant byte. */
37
38#undef BIG_ENDIAN
39
40/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
41 * group of arguments and treat it as an array of the arguments. */
42
43#define NO_ARG_ARRAY
44
45/* Define WORD_MACHINE if addresses and such have
46 * to be corrected before they can be used as byte counts. */
47
48#define SIGN_EXTEND_CHAR(c) ((int)(c))
49
50/* Use type int rather than a union, to represent Lisp_Object */
51/* This is desirable for most machines. */
52
53#define NO_UNION_TYPE
54
55/* Data type of load average, as read out of kmem. */
56/* This used to be `double'. */
57
58#define LOAD_AVE_TYPE long
59
60/* Convert that into an integer that is 100 for a load average of 1.0 */
61
62/* This used to be 1.0. */
63#ifndef FSCALE
64#define FSCALE 256
65#endif
66#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
67
68/* HLH have a SIGWINCH defined (but unimplemented) so we need a sigmask */
69#ifndef sigmask
70#define sigmask(m) (1 << ((m) - 1))
71#endif
72
73#define HAVE_ALLOCA
74
75/* Here is where programs actually start running */
76#define TEXT_START 0x8000
77#define LD_TEXT_START_ADDR 8000
78
79/* Arguments to ignore before argc in crt0.c. */
80#define DUMMIES dummy1, dummy2,
81
82/* dbx can't cope so what the heck - currently (July 88) eval.c causes
83 * the compiler to go into an infinite loop - so compile it by hand
84 * cc -c -Demacs eval.c
85 * before running make
86 */
87#define C_DEBUG_SWITCH -O
88
89/* Since not debugging don't add dbx lib */
90#define LIBS_DEBUG
diff --git a/src/m/plexus.h b/src/m/plexus.h
new file mode 100644
index 00000000000..327ff78a1f5
--- /dev/null
+++ b/src/m/plexus.h
@@ -0,0 +1,128 @@
1/* machine description file for the Plexus running System V.2.
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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" */
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#undef 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#undef 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) (c)
53
54/* Now define a symbol for the cpu type, if your compiler
55 does not define it automatically:
56 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
57 are the ones defined so far. */
58/* Plexus predefines m68 instead of m68000. */
59#define m68000 m68
60
61/* Use type int rather than a union, to represent Lisp_Object */
62/* This is desirable for most machines. */
63
64#define NO_UNION_TYPE
65
66/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
67 the 24-bit bit field into an int. In other words, if bit fields
68 are always unsigned.
69
70 If you use NO_UNION_TYPE, this flag does not matter. */
71
72#undef EXPLICIT_SIGN_EXTEND
73
74/* Data type of load average, as read out of kmem. */
75
76#undef LOAD_AVE_TYPE
77
78/* Convert that into an integer that is 100 for a load average of 1.0 */
79
80#undef LOAD_AVE_CVT
81
82/* Define CANNOT_DUMP on machines where unexec does not work.
83 Then the function dump-emacs will not be defined
84 and temacs will do (load "loadup") automatically unless told otherwise. */
85
86#undef 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#undef VIRT_ADDR_VARIES
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#undef C_ALLOCA
105#define HAVE_ALLOCA
106
107/* Define NO_REMAP if memory segmentation makes it not work well
108 to change the boundary between the text section and data section
109 when Emacs is dumped. If you define this, the preloaded Lisp
110 code will not be sharable; but that's better than failing completely. */
111
112#undef NO_REMAP
113
114/* Use the following on ld so we can use the gnu crt0
115 The plexus ld looks for start */
116#define LD_SWITCH_MACHINE -e __start
117
118/* Use the PW library, which contains alloca. */
119
120#define LIB_STANDARD -lPW -lc
121
122/* crt0.c should use the vax-bsd style of entry, with no dummy args. */
123
124#define CRT0_DUMMIES zero1, zero2,
125
126/* This triggers some stuff to avoid a compiler bug */
127
128#define TAHOE_REGISTER_BUG
diff --git a/src/m/pmax.h b/src/m/pmax.h
new file mode 100644
index 00000000000..393b7351a67
--- /dev/null
+++ b/src/m/pmax.h
@@ -0,0 +1,22 @@
1#include "mips.h"
2
3/* The following line tells the configuration script what sort of
4 operating system this machine is likely to run.
5 USUAL-OPSYS="bsd4-2" */
6
7#undef BIG_ENDIAN
8#define LIBS_DEBUG
9
10/* This line starts being needed with ultrix 4.0. */
11/* You may need to delete it on version 3.1. */
12#define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o
13
14/* Supposedly the following will overcome a kernel bug. */
15#undef LD_SWITCH_MACHINE
16#undef DATA_START
17#define DATA_START 0x10000000
18#define DATA_SEG_BITS 0x10000000
19
20/* In Ultrix 4.1, XvmsAlloc.o in libX11.a seems to insist
21 on defining malloc itself. This should avoid conflicting with it. */
22#define SYSTEM_MALLOC
diff --git a/src/m/pyramid.h b/src/m/pyramid.h
new file mode 100644
index 00000000000..e478eae5add
--- /dev/null
+++ b/src/m/pyramid.h
@@ -0,0 +1,76 @@
1/* machine description file for pyramid.
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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#ifdef __GNUC__
43#define NO_ARG_ARRAY
44#endif
45
46/* XINT must explicitly sign extend */
47
48#define EXPLICIT_SIGN_EXTEND
49
50/* Define how to take a char and sign-extend into an int.
51 On machines where char is signed, this is a no-op. */
52
53#define SIGN_EXTEND_CHAR(c) (c)
54
55/* pyramid preprocessor defines "pyr", however the following is clearer */
56#define pyramid
57
58/* Don't use the union types any more. They were used until Emacs 17.45. */
59
60#define NO_UNION_TYPE
61
62/* Data type of load average, as read out of kmem. */
63
64#define LOAD_AVE_TYPE double
65
66/* Convert that into an integer that is 100 for a load average of 1.0 */
67
68#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
69
70/* Don't use the ordinary -g for debugging in cc */
71
72#define C_DEBUG_SWITCH -gx
73
74/* Reenable this #define for old versions of the Pyramid system. */
75
76/* #define PYRAMID_OLD */
diff --git a/src/m/sequent.h b/src/m/sequent.h
new file mode 100644
index 00000000000..e760213abcc
--- /dev/null
+++ b/src/m/sequent.h
@@ -0,0 +1,188 @@
1/* machine description file for SEQUENT BALANCE machines
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26Use -opsystem=bsd4-2, or -opsystem=bsd4-3 on newer systems.
27NOTE-END */
28
29/* NOTE: this file works for DYNIX release 2.0
30 (not tested on 1.3) on NS32000's */
31
32/* The following three symbols give information on
33 the size of various data types. */
34
35#define SHORTBITS 16 /* Number of bits in a short */
36
37#define INTBITS 32 /* Number of bits in an int */
38
39#define LONGBITS 32 /* Number of bits in a long */
40
41/* Define BIG_ENDIAN iff lowest-numbered byte in a word
42 is the most significant byte. */
43
44/* #define BIG_ENDIAN */
45
46/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
47 * group of arguments and treat it as an array of the arguments. */
48
49/* #define NO_ARG_ARRAY */
50
51/* Define WORD_MACHINE if addresses and such have
52 * to be corrected before they can be used as byte counts. */
53
54/* #define WORD_MACHINE */
55
56/* Define how to take a char and sign-extend into an int.
57 On machines where char is signed, this is a no-op. */
58
59#define SIGN_EXTEND_CHAR(c) (c)
60
61/* Now define a symbol for the cpu type, if your compiler
62 does not define it automatically:
63 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
64 are the ones defined so far. */
65
66/* BTW: DYNIX defines sequent, ns32000, and ns16000 (GENIX compatibility) */
67#ifndef sequent /* pre DYNIX 2.1 releases */
68# define sequent
69#endif
70
71/* Use type int rather than a union, to represent Lisp_Object */
72/* This is desirable for most machines. */
73
74#define NO_UNION_TYPE
75
76/* crt0.c should use the vax-bsd style of entry, with these dummy args. */
77
78#define CRT0_DUMMIES bogus_fp,
79
80/* crt0.c should define a symbol `start' and do .globl with a dot. */
81
82#define DOT_GLOBAL_START
83
84/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
85 the 24-bit bit field into an int. In other words, if bit fields
86 are always unsigned.
87
88 If you use NO_UNION_TYPE, this flag does not matter. */
89
90#define EXPLICIT_SIGN_EXTEND
91
92/* Data type of load average, as read out of kmem. */
93
94#define LOAD_AVE_TYPE unsigned long
95
96/* Convert that into an integer that is 100 for a load average of 1.0 */
97
98#define FSCALE 1000.0
99#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
100
101/* Define CANNOT_DUMP on machines where unexec does not work.
102 Then the function dump-emacs will not be defined
103 and temacs will do (load "loadup") automatically unless told otherwise. */
104
105/* #define CANNOT_DUMP */
106
107/* Define VIRT_ADDR_VARIES if the virtual addresses of
108 pure and impure space as loaded can vary, and even their
109 relative order cannot be relied on.
110
111 Otherwise Emacs assumes that text space precedes data space,
112 numerically. */
113
114/* #define VIRT_ADDR_VARIES */
115
116/* Define C_ALLOCA if this machine does not support a true alloca
117 and the one written in C should be used instead.
118 Define HAVE_ALLOCA to say that the system provides a properly
119 working alloca function and it should be used.
120 Define neither one if an assembler-language alloca
121 in the file alloca.s should be used. */
122
123/* #define C_ALLOCA */
124#define HAVE_ALLOCA
125
126/* Name of file the to look in
127 for the kernel symbol table (for load average) */
128
129#undef KERNEL_FILE
130#define KERNEL_FILE "/dynix"
131
132/* Avoids a compiler bug */
133
134#define TAHOE_REGISTER_BUG
135
136/* Say that the text segment of a.out includes the header;
137 the header actually occupies the first few bytes of the text segment
138 and is counted in hdr.a_text. Furthermore, the value written
139 in the a_text in the file must have N_ADDRADJ added to it. */
140
141#define A_TEXT_OFFSET(HDR) (sizeof (HDR) + N_ADDRADJ (HDR))
142
143/* This is the offset of the executable's text, from the start of the file. */
144
145#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr))
146
147/* (short) negative-int doesn't sign-extend correctly */
148#define SHORT_CAST_BUG
149
150/* Cause compilations to be done in parallel in ymakefile. */
151#define MAKE_PARALLEL &
152
153/* Say that mailer interlocking uses flock. */
154#define MAIL_USE_FLOCK
155
156/* On many 4.2-based systems, there's a rather tricky bug
157 * with the interpretation of the pid/pgrp value given to
158 * the F_SETOWN fcntl() call. It works as documented EXCEPT
159 * when applied to filedescriptors for sockets, in which case
160 * the sign must be reversed. If your emacs subprocesses get
161 * SIGIO's when they shouldn't, while running on a socket
162 * (e.g. under X windows), you should probably define this.
163 */
164
165#define F_SETOWN_SOCK_NEG
166
167/* Some really obscure 4.2-based systems (like Sequent DYNIX)
168 * do not support asynchronous I/O (using SIGIO) on sockets,
169 * even though it works fine on tty's. If you have one of
170 * these systems, define the following, and then use it in
171 * config.h (or elsewhere) to decide when (not) to use SIGIO.
172 */
173
174#define NO_SOCK_SIGIO
175
176/* Define how to search all pty names.
177 This is for Dynix 3.0; delete next 5 definitions for older systems. */
178
179#define PTY_MAJOR "pqrstuvwPQRSTUVW"
180#define PTY_MINOR "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
181#define PTY_ITERATION \
182 register int ma, mi; \
183 for (ma = 0; ma < sizeof(PTY_MAJOR) - 1; ma++) \
184 for (mi = 0; mi < sizeof(PTY_MINOR) - 1; mi++)
185#define PTY_NAME_SPRINTF \
186 sprintf (ptyname, "/dev/pty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]);
187#define PTY_TTY_NAME_SPRINTF \
188 sprintf (ptyname, "/dev/tty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]);
diff --git a/src/m/sparc.h b/src/m/sparc.h
new file mode 100644
index 00000000000..b06fa35522c
--- /dev/null
+++ b/src/m/sparc.h
@@ -0,0 +1,119 @@
1/* machine description file for Sun 4 SPARC.
2 Copyright (C) 1987 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20/* The following line tells the configuration script what sort of
21 operating system this machine is likely to run.
22 USUAL-OPSYS="note"
23
24NOTE-START
25Use -opsystem=sunos4 for operating system version 4, and
26-opsystem=bsd4-2 for earlier versions.
27NOTE-END */
28
29/* The following three symbols give information on
30 the size of various data types. */
31
32#define SHORTBITS 16 /* Number of bits in a short */
33
34#define INTBITS 32 /* Number of bits in an int */
35
36#define LONGBITS 32 /* Number of bits in a long */
37
38/* SPARC has lowest-numbered byte as most significant */
39
40#define BIG_ENDIAN
41
42/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
43 * group of arguments and treat it as an array of the arguments. */
44
45#define NO_ARG_ARRAY
46
47/* Define how to take a char and sign-extend into an int.
48 On machines where char is signed, this is a no-op. */
49
50#define SIGN_EXTEND_CHAR(c) (c)
51
52/* Say this machine is a sparc */
53
54#ifndef sparc
55#define sparc
56#endif
57
58#ifdef __GNUC__
59# define C_OPTIMIZE_SWITCH -O
60#else
61 /* This level of optimization is reported to work. */
62# define C_OPTIMIZE_SWITCH -O2
63#endif
64
65/* Use type int rather than a union, to represent Lisp_Object */
66
67#define NO_UNION_TYPE
68
69/* XINT must explicitly sign-extend */
70
71#define EXPLICIT_SIGN_EXTEND
72
73/* Data type of load average, as read out of kmem. */
74
75#define LOAD_AVE_TYPE long
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 / FSCALE)
80
81/* Define C_ALLOCA if this machine does not support a true alloca
82 and the one written in C should be used instead.
83 Define HAVE_ALLOCA to say that the system provides a properly
84 working alloca function and it should be used.
85 Define neither one if an assembler-language alloca
86 in the file alloca.s should be used. */
87
88#define HAVE_ALLOCA
89#include <alloca.h>
90
91/* Must use the system's termcap. It does special things. */
92
93#define LIBS_TERMCAP -ltermcap
94
95/* Mask for address bits within a memory segment */
96
97#define SEGMENT_MASK (SEGSIZ - 1)
98
99/* Arrange to link with sun windows, if requested. */
100/* For details on emacstool and sunfns, see etc/SUN-SUPPORT */
101/* These programs require Sun UNIX 4.2 Release 3.2 or greater */
102
103#ifdef HAVE_SUN_WINDOWS
104#define OTHER_FILES ${etcdir}emacstool
105#define LIBS_MACHINE -lsuntool -lsunwindow -lpixrect
106#define OBJECTS_MACHINE sunfns.o
107#define SYMS_MACHINE syms_of_sunfns ()
108#define PURESIZE 130000
109#endif
110
111/* Say that the text segment of a.out includes the header;
112 the header actually occupies the first few bytes of the text segment
113 and is counted in hdr.a_text. */
114
115#define A_TEXT_OFFSET(HDR) sizeof (HDR)
116
117/* This is the offset of the executable's text, from the start of the file. */
118
119#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr))
diff --git a/src/m/sps7.h b/src/m/sps7.h
new file mode 100644
index 00000000000..e1583f66d7f
--- /dev/null
+++ b/src/m/sps7.h
@@ -0,0 +1,140 @@
1/* machine description file for Bull SPS-7.
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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" */
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/* 68000 has lowest-numbered byte as most significant */
35
36#define BIG_ENDIAN
37
38/* Define how to take a char and sign-extend into an int.
39 On machines where char is signed, this is a no-op. */
40
41#define SIGN_EXTEND_CHAR(c) (c)
42
43/* Say this machine is a 68000 */
44
45#ifndef m68000
46#define m68000
47#endif
48
49#define sps7
50
51/* Use type int rather than a union, to represent Lisp_Object */
52
53#define NO_UNION_TYPE
54
55/* XINT must explicitly sign-extend */
56
57#define EXPLICIT_SIGN_EXTEND
58
59/* Data type of load average, as read out of kmem. */
60/* Suspect there is something wierd about this machine, so turn it off. */
61
62/* #define LOAD_AVE_TYPE long */
63
64/* Convert that into an integer that is 100 for a load average of 1.0 */
65
66/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */
67
68#define SMX
69#define V3x
70
71/*
72 * Define HAVE_SELECT if the system supports the `select' system call.
73 */
74
75#define HAVE_SELECT
76
77/*
78 * Define HAVE_PTYS if the system supports pty devices.
79 */
80
81#define HAVE_PTYS
82
83/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
84
85#define HAVE_SOCKETS
86
87/* Have the socketpair call
88*/
89
90#define SKTPAIR
91
92/* Define CLASH_DETECTION if you want lock files to be written
93 so that Emacs can tell instantly when you try to modify
94 a file that someone else has modified in his Emacs. */
95
96#define CLASH_DETECTION
97
98/* Use Berkeley style interface to nlist */
99
100#define NLIST_STRUCT
101
102/* Define this to cause -N to be passed to ld. This is needed
103 * in uniplus because of its funny memory space layout.
104 * SMX--If you are using 32 bit (COFF) use "-N", else don't use anything.
105 */
106
107#define LD_SWITCH_MACHINE -N -T32 -e __start
108
109/* If you are compiling for a 68020, then use -lc32 else use -lc */
110
111#define LIB_STANDARD -lc32
112
113/* Fore 16 bit, -linet, for 32 bit -linet32 (be sure you have it!). */
114
115#define LIBS_MACHINE -linet32
116
117/* Use -T32 for 68020, -T16 otherwise */
118
119#define C_SWITCH_MACHINE -T32
120
121/*
122 Here we assume that signal.h is included before config.h
123 so that we can override it here. */
124
125#undef SIGIO
126
127/* Some additional system facilities exist. */
128
129#define HAVE_DUP2
130
131/* Other than 68020 use ld16, as32, or undefine (defaults ld and as). */
132
133#define ASS as32
134
135#ifdef V3x
136#define EXEC_MAGIC 0x10b
137#define SEGMENT_MASK (NBPS-1)
138#define ADJUST_EXEC_HEADER f_hdr.f_magic = SMROMAGIC;\
139 f_ohdr.stsize = 0;
140#endif
diff --git a/src/m/stride.h b/src/m/stride.h
new file mode 100644
index 00000000000..5ea57e3ac07
--- /dev/null
+++ b/src/m/stride.h
@@ -0,0 +1,136 @@
1/* Definitions file for GNU Emacs running on Stride Micro System-V.2.2
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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" */
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/* 68000 has lowest-numbered byte as most significant */
35
36#define BIG_ENDIAN
37
38/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
39 * group of arguments and treat it as an array of the arguments. */
40
41#undef NO_ARG_ARRAY
42
43/* Define WORD_MACHINE if addresses and such have
44 * to be corrected before they can be used as byte counts. */
45
46#undef WORD_MACHINE
47
48/* Define how to take a char and sign-extend into an int.
49 On machines where char is signed, this is a no-op. */
50
51#define SIGN_EXTEND_CHAR(c) (c)
52
53/* Now define a symbol for the cpu type, if your compiler
54 does not define it automatically:
55 vax, m68000, ns16000, pyramid, orion, tahoe, APOLLO and STRIDE
56 are the ones defined so far. */
57
58#define m68000 /* because the SGS compiler defines "m68k" */
59#ifndef STRIDE
60#define STRIDE
61#endif
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
78#define LOAD_AVE_TYPE double
79
80/* Convert that into an integer that is 100 for a load average of 1.0 */
81
82#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
83
84/* Define CANNOT_DUMP on machines where unexec does not work.
85 Then the function dump-emacs will not be defined
86 and temacs will do (load "loadup") automatically unless told otherwise. */
87
88#undef CANNOT_DUMP
89
90/* Define VIRT_ADDR_VARIES if the virtual addresses of
91 pure and impure space as loaded can vary, and even their
92 relative order cannot be relied on.
93
94 Otherwise Emacs assumes that text space precedes data space,
95 numerically. */
96
97#undef VIRT_ADDR_VARIES
98
99/* The STRIDE system is more powerful than standard USG5. */
100
101#define HAVE_PTYS
102#define HAVE_TIMEVAL
103#define HAVE_SELECT
104#define HAVE_GETTIMEOFDAY
105#define BSTRING
106#define SKTPAIR
107#define HAVE_SOCKETS
108
109#define MAIL_USE_FLOCK
110#undef TERMINFO
111#define EXEC_MAGIC 0413
112
113/* USG wins again: Foo! I can't get SIGIO to work properly on the Stride, because I'm
114 running a System V variant, and don't have a reliable way to block SIGIO
115 signals without losing them. So, I've gone back to non-SIGIO mode, so
116 please append this line to the file "stride.h":
117 */
118#undef SIGIO
119
120/* Specify alignment requirement for start of text and data sections
121 in the executable file. */
122
123#define SECTION_ALIGNMENT (getpagesize() - 1)
124
125/*
126 * UniStride has this in /lib/libc.a.
127 */
128#undef NONSYSTEM_DIR_LIBRARY
129
130/* UniStride defines getwd. */
131
132#define HAVE_GETWD
133
134/* Define this macro if system defines a type `union wait'. */
135
136#define HAVE_UNION_WAIT
diff --git a/src/m/sun1.h b/src/m/sun1.h
new file mode 100644
index 00000000000..4edf292adf3
--- /dev/null
+++ b/src/m/sun1.h
@@ -0,0 +1,88 @@
1/* machine description file for Sun 68000's
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3;
27 -opsystem=bsd4-2 or -opsystem=sunos4)
28
29 Whether you should use sun1, sun2 or sun3 depends on the
30 VERSION OF THE OPERATING SYSTEM
31 you have. There are three machine types for different versions of
32 SunOS. All are derived from Berkeley 4.2, meaning that you should
33 use -opsystem=bsd4-2. Emacs 17 has run on all of them. You will
34 need to use sun3 on Sun 2's running SunOS release 3.
35
36 For SunOS release 4 on a Sun 3, use -machine=sun3 and
37 -opsystem=sunos4. See the file share-lib/SUNBUG for how to solve
38 problems caused by bugs in the "export" version of SunOS 4.
39NOTE-END */
40
41/* The following three symbols give information on
42 the size of various data types. */
43
44#define SHORTBITS 16 /* Number of bits in a short */
45
46#define INTBITS 32 /* Number of bits in an int */
47
48#define LONGBITS 32 /* Number of bits in a long */
49
50/* 68000 has lowest-numbered byte as most significant */
51
52#define BIG_ENDIAN
53
54/* Define how to take a char and sign-extend into an int.
55 On machines where char is signed, this is a no-op. */
56
57#define SIGN_EXTEND_CHAR(c) (c)
58
59/* Say this machine is a 68000 */
60
61#define m68000
62
63/* Use type int rather than a union, to represent Lisp_Object */
64
65#define NO_UNION_TYPE
66
67/* Sun can't write competant compilers */
68#define COMPILER_REGISTER_BUG
69
70/* XINT must explicitly sign-extend */
71
72#define EXPLICIT_SIGN_EXTEND
73
74/* Data type of load average, as read out of kmem. */
75
76#define LOAD_AVE_TYPE long
77
78/* Convert that into an integer that is 100 for a load average of 1.0 */
79
80#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
81
82/* Must use the system's termcap. It does special things. */
83
84#define LIBS_TERMCAP -ltermcap
85
86/* Mask for address bits within a memory segment */
87
88#define SEGMENT_MASK (SEGSIZ - 1)
diff --git a/src/m/sun2.h b/src/m/sun2.h
new file mode 100644
index 00000000000..717e16c27e2
--- /dev/null
+++ b/src/m/sun2.h
@@ -0,0 +1,109 @@
1/* machine description file for Sun 68000's OPERATING SYSTEM version 2.
2 Note that "sun2.h" refers to the operating system version, not the
3 CPU model number. See the MACHINES file for details.
4 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 1, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the 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="note"
26
27NOTE-START
28Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3;
29 -opsystem=bsd4-2 or -opsystem=sunos4)
30
31 Whether you should use sun1, sun2 or sun3 depends on the
32 VERSION OF THE OPERATING SYSTEM
33 you have. There are three machine types for different versions of
34 SunOS. All are derived from Berkeley 4.2, meaning that you should
35 use -opsystem=bsd4-2. Emacs 17 has run on all of them. You will
36 need to use sun3 on Sun 2's running SunOS release 3.
37
38 For SunOS release 4 on a Sun 3, use -machine=sun3 and
39 -opsystem=sunos4. See the file share-lib/SUNBUG for how to solve
40 problems caused by bugs in the "export" version of SunOS 4.
41NOTE-END */
42
43/* The following three symbols give information on
44 the size of various data types. */
45
46#define SHORTBITS 16 /* Number of bits in a short */
47
48#define INTBITS 32 /* Number of bits in an int */
49
50#define LONGBITS 32 /* Number of bits in a long */
51
52/* 68000 has lowest-numbered byte as most significant */
53
54#define BIG_ENDIAN
55
56/* Define how to take a char and sign-extend into an int.
57 On machines where char is signed, this is a no-op. */
58
59#define SIGN_EXTEND_CHAR(c) (c)
60
61/* Say this machine is a 68000 */
62
63#ifndef m68000
64#define m68000
65#endif
66
67/* Use type int rather than a union, to represent Lisp_Object */
68
69#define NO_UNION_TYPE
70
71/* Sun can't write competent compilers */
72#define COMPILER_REGISTER_BUG
73
74/* XINT must explicitly sign-extend */
75
76#define EXPLICIT_SIGN_EXTEND
77
78/* Data type of load average, as read out of kmem. */
79
80#define LOAD_AVE_TYPE long
81
82/* Convert that into an integer that is 100 for a load average of 1.0 */
83
84#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
85
86/* Say that this is a Sun 2; must check for and maybe reinitialize
87 the "sky" board. */
88
89#define sun2
90
91/* Must use the system's termcap. It does special things. */
92
93#define LIBS_TERMCAP -ltermcap
94
95/* Mask for address bits within a memory segment */
96
97#define SEGMENT_MASK (SEGSIZ - 1)
98
99/* Arrange to link with sun windows, if requested. */
100/* For details on emacstool and sunfns, see etc/SUN-SUPPORT */
101/* These programs require Sun UNIX 4.2 Release 3.2 or greater */
102
103#ifdef HAVE_SUN_WINDOWS
104#define OTHER_FILES ${etcdir}emacstool
105#define LIBS_MACHINE -lsuntool -lsunwindow -lpixrect
106#define OBJECTS_MACHINE sunfns.o
107#define SYMS_MACHINE syms_of_sunfns ()
108#define PURESIZE 132000
109#endif
diff --git a/src/m/tahoe.h b/src/m/tahoe.h
new file mode 100644
index 00000000000..9c994badba2
--- /dev/null
+++ b/src/m/tahoe.h
@@ -0,0 +1,92 @@
1/* machine description file for tahoe.
2 Copyright (C) 1985 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26Use -opsystem=bsd4-2 or -opsystem=bsd4-3, depending on the version of
27Berkeley you are running.
28NOTE-END */
29
30/* The following three symbols give information on
31 the size of various data types. */
32
33#define SHORTBITS 16 /* Number of bits in a short */
34
35#define INTBITS 32 /* Number of bits in an int */
36
37#define LONGBITS 32 /* Number of bits in a long */
38
39/* lowest-numbered byte is most significant */
40
41#define BIG_ENDIAN
42
43/* XINT must explicitly sign-extend */
44
45#define EXPLICIT_SIGN_EXTEND
46
47/* Define how to take a char and sign-extend into an int.
48 On machines where char is signed, this is a no-op. */
49
50#define SIGN_EXTEND_CHAR(c) (c)
51
52/* Say this machine is a tahoe */
53
54#ifndef tahoe
55#define tahoe
56#endif /* not tahoe */
57
58/* Use type int rather than a union, to represent Lisp_Object */
59
60#define NO_UNION_TYPE
61
62/* crt0.c should use the vax-bsd style of entry, with no dummy args. */
63
64#define CRT0_DUMMIES
65
66/* crt0.c should define a symbol `start' and do .globl with a dot. */
67
68#define DOT_GLOBAL_START
69
70/* Data type of load average, as read out of kmem. */
71
72#define LOAD_AVE_TYPE double
73
74/* Convert that into an integer that is 100 for a load average of 1.0 */
75
76#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
77
78/* This triggers some stuff to avoid a compiler bug */
79
80#define TAHOE_REGISTER_BUG
81
82/* System provides alloca. */
83
84#define HAVE_ALLOCA
85
86/* Control header files used by loadst.c.
87 Some users report machines have dkstat.h while others report dk.h,
88 so it's hard to tell what this should say. */
89
90#ifdef BSD
91#define DKSTAT_HEADER_FILE
92#endif
diff --git a/src/m/targon31.h b/src/m/targon31.h
new file mode 100644
index 00000000000..49d4eb65305
--- /dev/null
+++ b/src/m/targon31.h
@@ -0,0 +1,117 @@
1/* targon31 machine description file
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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 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) (c)
53
54/* Now define a symbol for the cpu type, if your compiler
55 does not define it automatically:
56 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
57 are the ones defined so far. */
58
59/* #define m68k is defined by the Compiler */
60/* #define m68000 */
61
62/* Use type int rather than a union, to represent Lisp_Object */
63/* This is desirable for most machines. */
64
65#define NO_UNION_TYPE
66
67/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
68 the 24-bit bit field into an int. In other words, if bit fields
69 are always unsigned.
70
71 If you use NO_UNION_TYPE, this flag does not matter. */
72
73#define EXPLICIT_SIGN_EXTEND
74
75/* Data type of load average, as read out of kmem. */
76
77/* #define LOAD_AVE_TYPE double */
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)
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
87/* #define CANNOT_DUMP */
88
89/* Define VIRT_ADDR_VARIES if the virtual addresses of
90 pure and impure space as loaded can vary, and even their
91 relative order cannot be relied on.
92
93 Otherwise Emacs assumes that text space precedes data space,
94 numerically. */
95
96/* #define VIRT_ADDR_VARIES */
97
98/* Define C_ALLOCA if this machine does not support a true alloca
99 and the one written in C should be used instead.
100 Define HAVE_ALLOCA to say that the system provides a properly
101 working alloca function and it should be used.
102 Define neither one if an assembler-language alloca
103 in the file alloca.s should be used. */
104
105/* #define C_ALLOCA */
106/* #define HAVE_ALLOCA */
107
108/* Define NO_REMAP if memory segmentation makes it not work well
109 to change the boundary between the text section and data section
110 when Emacs is dumped. If you define this, the preloaded Lisp
111 code will not be sharable; but that's better than failing completely. */
112
113/* #define NO_REMAP */
114/* Supposedly NO_REMAP is not needed with the following change. */
115#define SEGMENT_MASK 0xffff
116
117#define SWITCH_ENUM_BUG 1
diff --git a/src/m/tek4300.h b/src/m/tek4300.h
new file mode 100644
index 00000000000..9164701b0e0
--- /dev/null
+++ b/src/m/tek4300.h
@@ -0,0 +1,98 @@
1/* machine description file for tek4300.
2 Copyright (C) 1988 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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-3" */
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/* 68000 has lowest-numbered byte as most significant */
35
36#define BIG_ENDIAN
37
38/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
39 * group of arguments and treat it as an array of the arguments. */
40
41#undef NO_ARG_ARRAY
42
43/* Define WORD_MACHINE if addresses and such have
44 * to be corrected before they can be used as byte counts. */
45
46#undef WORD_MACHINE
47
48/* Define how to take a char and sign-extend into an int.
49 On machines where char is signed, this is a no-op. */
50
51#define SIGN_EXTEND_CHAR(c) (c)
52
53/* Now define a symbol for the cpu type, if your compiler
54 does not define it automatically. */
55
56#define tek4300
57
58/* Use type int rather than a union, to represent Lisp_Object */
59
60#define NO_UNION_TYPE
61
62/* Data type of load average, as read out of kmem. */
63
64#define LOAD_AVE_TYPE long
65
66/* Convert that into an integer that is 100 for a load average of 1.0 */
67
68#define LOAD_AVE_CVT(x) (x)
69
70/* Define NO_REMAP if memory segmentation makes it not work well
71 to change the boundary between the text section and data section
72 when Emacs is dumped. If you define this, the preloaded Lisp
73 code will not be sharable; but that's better than failing completely. */
74
75#define NO_REMAP
76
77/* Define C_ALLOCA if this machine does not support a true alloca
78 and the one written in C should be used instead. */
79
80#define C_ALLOCA
81
82/* setjmp and longjmp can safely replace _setjmp and _longjmp, */
83
84#define _longjmp longjmp
85#define _setjmp setjmp
86
87/* The text segment always starts at a fixed address.
88 This way we don't need to have a label _start defined. */
89
90#define TEXT_START 0
91
92/* The Tektronix exec struct for ZMAGIC files is struct zexec */
93
94#define EXEC_HDR_TYPE struct zexec
95
96/* The entry-point label (start of text segment) is `start', not `__start'. */
97
98#define DEFAULT_ENTRY_ADDRESS start
diff --git a/src/m/template.h b/src/m/template.h
new file mode 100644
index 00000000000..f69e0376c29
--- /dev/null
+++ b/src/m/template.h
@@ -0,0 +1,110 @@
1/* machine description file template.
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="<name of system .h file here, without the s- or .h>" */
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) (c)
53
54/* Now define a symbol for the cpu type, if your compiler
55 does not define it automatically:
56 Ones defined so far include vax, m68000, ns16000, pyramid,
57 orion, tahoe, APOLLO and many others */
58
59/* Use type int rather than a union, to represent Lisp_Object */
60/* This is desirable for most machines. */
61
62#define NO_UNION_TYPE
63
64/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
65 the 24-bit bit field into an int. In other words, if bit fields
66 are always unsigned.
67
68 If you use NO_UNION_TYPE, this flag does not matter. */
69
70#define EXPLICIT_SIGN_EXTEND
71
72/* Data type of load average, as read out of kmem. */
73
74#define LOAD_AVE_TYPE long
75
76/* Convert that into an integer that is 100 for a load average of 1.0 */
77
78#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
79
80/* Define CANNOT_DUMP on machines where unexec does not work.
81 Then the function dump-emacs will not be defined
82 and temacs will do (load "loadup") automatically unless told otherwise. */
83
84#define CANNOT_DUMP
85
86/* Define VIRT_ADDR_VARIES if the virtual addresses of
87 pure and impure space as loaded can vary, and even their
88 relative order cannot be relied on.
89
90 Otherwise Emacs assumes that text space precedes data space,
91 numerically. */
92
93#define VIRT_ADDR_VARIES
94
95/* Define C_ALLOCA if this machine does not support a true alloca
96 and the one written in C should be used instead.
97 Define HAVE_ALLOCA to say that the system provides a properly
98 working alloca function and it should be used.
99 Define neither one if an assembler-language alloca
100 in the file alloca.s should be used. */
101
102#define C_ALLOCA
103#define HAVE_ALLOCA
104
105/* Define NO_REMAP if memory segmentation makes it not work well
106 to change the boundary between the text section and data section
107 when Emacs is dumped. If you define this, the preloaded Lisp
108 code will not be sharable; but that's better than failing completely. */
109
110#define NO_REMAP
diff --git a/src/m/tower32.h b/src/m/tower32.h
new file mode 100644
index 00000000000..8ab0b918607
--- /dev/null
+++ b/src/m/tower32.h
@@ -0,0 +1,134 @@
1/* machine description file for the NCR Tower 32 running System V.2.
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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 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) (c)
53
54/* Now define a symbol for the cpu type, if your compiler
55 does not define it automatically:
56 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
57 are the ones defined so far. */
58#define m68000
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 long */
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 / FSCALE) */
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/* #define 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 C_ALLOCA */
104#define HAVE_ALLOCA
105
106/* Change some things to avoid bugs in compiler */
107
108#define SWITCH_ENUM_BUG 1
109
110/* The standard C library is -lcieee, not -lc.
111 Also use the PW library, which contains alloca. */
112
113#define LIB_STANDARD -lPW -lcieee
114
115/* crt0.c should use the vax-bsd style of entry. Beware that if you have
116 OS release 2.00.00 or later, *and* change src/ymakefile so that CFLAGS
117 includes C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH, you need to
118 uncomment CRT0_DUMMIES and C_OPTIMIZE_SWITCH below. */
119
120/* With the optimizer OFF */
121
122#define CRT0_DUMMIES zero, bogus_fp,
123
124/* With the optimizer ON */
125
126/* #define CRT0_DUMMIES */
127/* #define C_OPTIMIZE_SWITCH -O2 */
128
129/* emacs's magic number isn't temacs's;
130 temacs is writeable text (the default!). */
131
132#include <asld.h>
133#define EXEC_MAGIC AOUT1MAGIC
134#define EXEC_PAGESIZE DATACLICK
diff --git a/src/m/tower32v3.h b/src/m/tower32v3.h
new file mode 100644
index 00000000000..ca8f2878632
--- /dev/null
+++ b/src/m/tower32v3.h
@@ -0,0 +1,139 @@
1/* machine description file for the NCR Tower 32 running System V.3.
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is distributed in the hope that it will be useful,
7but WITHOUT ANY WARRANTY. No author or distributor
8accepts responsibility to anyone for the consequences of using it
9or for whether it serves any particular purpose or works at all,
10unless he says so in writing. Refer to the GNU Emacs General Public
11License for full details.
12
13Everyone is granted permission to copy, modify and redistribute
14GNU Emacs, but only under the conditions described in the
15GNU Emacs General Public License. A copy of this license is
16supposed to have been given to you along with GNU Emacs so you
17can know your rights and responsibilities. It should be in a
18file named COPYING. Among other things, the copyright notice
19and this notice must be preserved on all copies. */
20
21
22/* The following line tells the configuration script what sort of
23 operating system this machine is likely to run.
24 USUAL-OPSYS="usg5-3" */
25
26/* The following three symbols give information on
27 the size of various data types. */
28
29#define SHORTBITS 16 /* Number of bits in a short */
30
31#define INTBITS 32 /* Number of bits in an int */
32
33#define LONGBITS 32 /* Number of bits in a long */
34
35/* Define BIG_ENDIAN iff lowest-numbered byte in a word
36 is the most significant byte. */
37
38#define BIG_ENDIAN
39
40/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
41 * group of arguments and treat it as an array of the arguments. */
42
43/* #define NO_ARG_ARRAY */
44
45/* Define WORD_MACHINE if addresses and such have
46 * to be corrected before they can be used as byte counts. */
47
48/* #define WORD_MACHINE */
49
50/* Define how to take a char and sign-extend into an int.
51 On machines where char is signed, this is a no-op. */
52
53#define SIGN_EXTEND_CHAR(c) (c)
54
55/* Now define a symbol for the cpu type, if your compiler
56 does not define it automatically:
57 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
58 are the ones defined so far. */
59#define m68000
60
61/* Use type int rather than a union, to represent Lisp_Object */
62/* This is desirable for most machines. */
63
64#define NO_UNION_TYPE
65
66/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
67 the 24-bit bit field into an int. In other words, if bit fields
68 are always unsigned.
69
70 If you use NO_UNION_TYPE, this flag does not matter. */
71
72#define EXPLICIT_SIGN_EXTEND
73
74/* Data type of load average, as read out of kmem. */
75
76/* #define LOAD_AVE_TYPE long */
77
78/* Convert that into an integer that is 100 for a load average of 1.0 */
79
80/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */
81
82/* Define CANNOT_DUMP on machines where unexec does not work.
83 Then the function dump-emacs will not be defined
84 and temacs will do (load "loadup") automatically unless told otherwise. */
85
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 */
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#ifdef __GNUC__
105#define HAVE_ALLOCA
106#define alloca __builtin_alloca
107#define C_OPTIMIZE_SWITCH -O -fstrength-reduce -fomit-frame-pointer
108#define LIB_STANDARD -lc /lib/crtn.o
109#else
110/* This section is correct if you do *not* change src/ymakefile so that
111 CFLAGS includes C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH. */
112#define HAVE_ALLOCA
113#define C_DEBUG_SWITCH -g -O0
114#define LIB_STANDARD -lc -lPW /lib/crtn.o
115/* This section is correct if you do enable C_OPTIMIZE_SWITCH. */
116/* #define C_ALLOCA */
117/* #define STACK_DIRECTION -1 */
118/* #define C_OPTIMIZE_SWITCH -O2 */
119/* #define LIB_STANDARD -lc /lib/crtn.o */
120#endif
121
122/* The OS maps the data section far away from the text section. */
123#define NO_REMAP
124#define TEXT_START 0
125#undef static
126#define START_FILES pre-crt0.o /lib/crt1.o
127
128/* This is needed since many Tower models start the data/bss segment at
129 an address as large as 0x2000000. */
130#define VALBITS 26
131#define GCTYPEBITS 5
132
133/* The OS has an implementation of symlinks that is semantically different
134 from BSD, but for some silly reason it partly has the same syntax. */
135#undef S_IFLNK
136
137/* The OS needs stream.h+ptem.h included in sysdep.c. */
138#define NO_SIOCTL_H
139#define NEED_PTEM_H
diff --git a/src/m/ustation.h b/src/m/ustation.h
new file mode 100644
index 00000000000..a5ecb75fbd1
--- /dev/null
+++ b/src/m/ustation.h
@@ -0,0 +1,158 @@
1/* machine description file for U-station (Nihon Unisys, SS5E; Sumitomo Denkoh, U-Station E30).
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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-3" */
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#undef 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#undef 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) (c)
53
54/* Now define a symbol for the cpu type, if your compiler
55 does not define it automatically:
56 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
57 are the ones defined so far. */
58/* Masscomp predefines mc68000. */
59
60#define m68000 mc68000
61
62/* Use type int rather than a union, to represent Lisp_Object */
63/* This is desirable for most machines. */
64
65#define NO_UNION_TYPE
66
67/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
68 the 24-bit bit field into an int. In other words, if bit fields
69 are always unsigned.
70
71 If you use NO_UNION_TYPE, this flag does not matter. */
72
73#undef EXPLICIT_SIGN_EXTEND
74
75/* Data type of load average, as read out of kmem. */
76
77#define LOAD_AVE_TYPE double
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) ((x) * 100.0))
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
87#undef CANNOT_DUMP
88
89/* Define VIRT_ADDR_VARIES if the virtual addresses of
90 pure and impure space as loaded can vary, and even their
91 relative order cannot be relied on.
92
93 Otherwise Emacs assumes that data space precedes text space,
94 numerically. */
95
96#undef VIRT_ADDR_VARIES
97
98/* Define C_ALLOCA if this machine does not support a true alloca
99 and the one written in C should be used instead.
100 Define HAVE_ALLOCA to say that the system provides a properly
101 working alloca function and it should be used.
102 Define neither one if an assembler-language alloca
103 in the file alloca.s should be used. */
104
105/* On return from a subroutine, the 68020 compiler restores old contents of
106 register variables relative to sp, so alloca() screws up such routines.
107 The following definitions should work on all Masscomps. On the MC-5500
108 (a 68000) one can #undef C_ALLOCA and #define HAVE_ALLOCA. */
109
110#define C_ALLOCA
111#undef HAVE_ALLOCA
112
113/* Define NO_REMAP if memory segmentation makes it not work well
114 to change the boundary between the text section and data section
115 when Emacs is dumped. If you define this, the preloaded Lisp
116 code will not be sharable; but that's better than failing completely. */
117
118#undef NO_REMAP
119
120/* Name of file the to look in
121 for the kernel symbol table (for load average) */
122
123#define KERNEL_FILE "/unix"
124
125/* This triggers some stuff to avoid a compiler bug */
126
127#define MASSC_REGISTER_BUG
128
129/* Prevent -lg from being used for debugging. Not implemented? */
130
131#define LIBS_DEBUG
132
133/*
134 * Define HAVE_TERMIO if the system provides sysV-style ioctls
135 * for terminal control.
136 */
137
138#define HAVE_TERMIO
139
140/* -lnet is not standard library */
141
142#undef HAVE_SELECT
143#undef LIBS_SYSTEM
144
145/* Compiler's bug */
146
147#define SWITCH_ENUM_BUG
148
149/* Termcap is available */
150
151#define LIBS_TERMCAP -ltermcap
152
153#define EXEC_PAGESIZE 1024
154#define PURESIZE 130000
155
156#undef SIGIO
157#undef SIGTSTP
158#undef HAVE_TIMEVAL
diff --git a/src/m/vax.h b/src/m/vax.h
new file mode 100644
index 00000000000..488f89aa862
--- /dev/null
+++ b/src/m/vax.h
@@ -0,0 +1,132 @@
1/* machine description file for vax.
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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="note"
24
25NOTE-START
26The vax (-machine=vax) runs zillions of different operating systems.
27
28Vax running Berkeley Unix (-opsystem=bsd4-1, -opsystem=bsd4-2 or
29 -opsystem=bsd4-3)
30
31 Works.
32
33Vax running Ultrix (-opsystem=bsd4-2)
34
35 Works. See under Ultrix in share-lib/MACHINES for problems using X
36 windows on Ultrix.
37
38Vax running System V rel 2 (-opsystem=usg5-2)
39
40 18.27 Works.
41
42Vax running System V rel 0 (-opsystem=usg5-0)
43
44 Works as of 18.36.
45
46Vax running VMS (-opsystem=vms)
47
48 18.36 believed to work. Addition of features is necessary to make
49 this Emacs version more usable.
50
51NOTE-END */
52
53/* The following three symbols give information on
54 the size of various data types. */
55
56#define SHORTBITS 16 /* Number of bits in a short */
57
58#define INTBITS 32 /* Number of bits in an int */
59
60#define LONGBITS 32 /* Number of bits in a long */
61
62/* Vax is not big-endian: lowest numbered byte is least significant. */
63
64/* #undef BIG_ENDIAN */
65
66/* Define how to take a char and sign-extend into an int.
67 On machines where char is signed, this is a no-op. */
68
69#define SIGN_EXTEND_CHAR(c) (c)
70
71/* #define vax -- appears to be done automatically */
72
73/* Use type int rather than a union, to represent Lisp_Object */
74
75#define NO_UNION_TYPE
76
77/* crt0.c should use the vax-bsd style of entry, with no dummy args. */
78
79#define CRT0_DUMMIES
80
81/* crt0.c should define a symbol `start' and do .globl with a dot. */
82
83#define DOT_GLOBAL_START
84
85#ifdef BSD
86/* USG systems I know of running on Vaxes do not actually
87 support the load average, so disable it for them. */
88
89/* Data type of load average, as read out of kmem. */
90
91#define LOAD_AVE_TYPE double
92
93/* Convert that into an integer that is 100 for a load average of 1.0 */
94
95#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
96
97#endif /* BSD */
98
99#ifdef VMS
100
101/* Data type of load average, as read out of driver. */
102
103#define LOAD_AVE_TYPE float
104
105/* Convert that into an integer that is 100 for a load average of 1.0 */
106
107#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
108
109#endif /* VMS */
110
111/* Vax sysV has alloca in the PW library. */
112
113#ifdef USG
114#define LIB_STANDARD -lPW -lc
115#define HAVE_ALLOCA
116
117/* There is some bug in unexec in for usg 5.2 on a vax
118 which nobody who runs such a system has yet tracked down. */
119#ifndef USG5_0
120#define NO_REMAP
121#endif /* USG 5_0 */
122
123#define TEXT_START 0
124#endif /* USG */
125
126#ifdef BSD
127#define HAVE_ALLOCA
128#endif /* BSD */
129
130#ifdef VMS
131#define C_ALLOCA
132#endif
diff --git a/src/m/wicat.h b/src/m/wicat.h
new file mode 100644
index 00000000000..6069714647f
--- /dev/null
+++ b/src/m/wicat.h
@@ -0,0 +1,168 @@
1/* machine description file for WICAT machines.
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the 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" */
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#undef 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#undef 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) (c)
53
54/* Now define a symbol for the cpu type, if your compiler
55 does not define it automatically:
56 vax, m68000, ns16000 are the ones defined so far. */
57
58#ifndef m68000
59#define m68000
60#endif
61
62/* This flag is used only in alloca.s. */
63#define WICAT
64
65/* Use type int rather than a union, to represent Lisp_Object */
66
67#define NO_UNION_TYPE
68
69/* XINT must explicitly sign-extend */
70
71#define EXPLICIT_SIGN_EXTEND
72
73/* Data type of load average, as read out of kmem. */
74
75#undef LOAD_AVE_TYPE
76
77/* Convert that into an integer that is 100 for a load average of 1.0 */
78
79#undef LOAD_AVE_CVT
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#undef 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/* For the Wicat C compiler version 4.2, this can be removed
104 and the alloca in alloca.s used. */
105#define C_ALLOCA
106#define STACK_DIRECTION -1 /* grows towards lower addresses on WICAT */
107
108/* Define NO_REMAP if memory segmentation makes it not work well
109 to change the boundary between the text section and data section
110 when Emacs is dumped. If you define this, the preloaded Lisp
111 code will not be sharable; but that's better than failing completely. */
112
113#undef NO_REMAP
114
115/* For WICAT, define TAHOE_REGISTER_BUG if you have a pre-4.2 C compiler */
116
117#define TAHOE_REGISTER_BUG
118
119/* pagesize definition */
120
121#define EXEC_PAGESIZE 0x1000
122
123/* Delete this for WICAT sys V releases before 2.0. */
124
125#define LIB_STANDARD -lc-nofp
126
127/* Special magic number */
128
129#define EXEC_MAGIC MC68ROMAGIC
130
131/* Special switches to give to ld. */
132
133#define LD_SWITCH_MACHINE -e __start -N
134
135/* Sigh...cannot define this for WICAT cuz 0 length memcpy blows chunks */
136
137#undef BSTRING
138
139#ifdef BSTRING
140#undef bcopy
141#undef bzero
142#undef bcmp
143
144#define bcopy(a,b,s) memcpy(b,a,s)
145#define bzero(a,s) memset(a,0,s)
146#define bcmp memcmp
147#endif
148
149/*
150 * Define optimflags if you want to optimize.
151 * - Set to null string for pre-4.2 C compiler
152 * - Set to "-O -Wopt,-O-f" for 4.2
153 */
154
155#define C_OPTIMIZE_SWITCH /* -O -Wopt,-O-f */
156
157/* For WICAT version supporting PTYs and select (currently internal only) */
158
159#ifdef HAVE_PTYS
160#undef FIRST_PTY_LETTER
161#define FIRST_PTY_LETTER 'q'
162#endif
163
164/* there is a select() in libcurses.a that causes a conflict so use termlib */
165#ifdef HAVE_SELECT
166#undef TERMINFO
167#define LIBS_TERMCAP select.o -ltermlib
168#endif
diff --git a/src/m/xps100.h b/src/m/xps100.h
new file mode 100644
index 00000000000..4b6fb543233
--- /dev/null
+++ b/src/m/xps100.h
@@ -0,0 +1,118 @@
1/* xps100.h for the Honeywell XPS100 running UNIX System V.2
2 Mark J. Hewitt (mjh@uk.co.kernel)
3
4 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 1, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the 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" */
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
54#define SIGN_EXTEND_CHAR(c) (c)
55
56/* Now define a symbol for the cpu type, if your compiler
57 does not define it automatically:
58 Ones defined so far include vax, m68000, ns16000, pyramid,
59 orion, tahoe, APOLLO and many others */
60
61/* Use type int rather than a union, to represent Lisp_Object */
62/* This is desirable for most machines. */
63
64#define NO_UNION_TYPE
65
66/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
67 the 24-bit bit field into an int. In other words, if bit fields
68 are always unsigned.
69
70 If you use NO_UNION_TYPE, this flag does not matter. */
71
72#define EXPLICIT_SIGN_EXTEND
73
74/* Data type of load average, as read out of kmem. */
75
76/* #define LOAD_AVE_TYPE long */
77
78/* Convert that into an integer that is 100 for a load average of 1.0 */
79
80/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */
81
82/* Define CANNOT_DUMP on machines where unexec does not work.
83 Then the function dump-emacs will not be defined
84 and temacs will do (load "loadup") automatically unless told otherwise. */
85
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 */
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#define C_ALLOCA
105/* #define HAVE_ALLOCA */
106
107/* Define NO_REMAP if memory segmentation makes it not work well
108 to change the boundary between the text section and data section
109 when Emacs is dumped. If you define this, the preloaded Lisp
110 code will not be sharable; but that's better than failing completely. */
111
112#define NO_REMAP
113#define STACK_DIRECTION -1
114#define TERMINFO
115#define SWITCH_ENUM_BUG
116#define LIB_STANDARD -lc
117#define LD_SWITCH_MACHINE -X
118#define SECTION_ALIGNMENT (0x3ff)
diff --git a/src/s/aix3-1.h b/src/s/aix3-1.h
new file mode 100644
index 00000000000..366ef832ed9
--- /dev/null
+++ b/src/s/aix3-1.h
@@ -0,0 +1,232 @@
1/* Definitions file for GNU Emacs running on IBM AIX version 3.1
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is distributed in the hope that it will be useful,
7but WITHOUT ANY WARRANTY. No author or distributor
8accepts responsibility to anyone for the consequences of using it
9or for whether it serves any particular purpose or works at all,
10unless he says so in writing. Refer to the GNU Emacs General Public
11License for full details.
12
13Everyone is granted permission to copy, modify and redistribute
14GNU Emacs, but only under the conditions described in the
15GNU Emacs General Public License. A copy of this license is
16supposed to have been given to you along with GNU Emacs so you
17can know your rights and responsibilities. It should be in a
18file named COPYING. Among other things, the copyright notice
19and this notice must be preserved on all copies. */
20
21
22/*
23 * Define symbols to identify the version of Unix this is.
24 * Define all the symbols that apply correctly.
25 */
26
27#define USG /* System III, System V, etc */
28#define USG5
29
30/* Specify IBM AIX version of system */
31
32#ifndef AIX
33#define AIX
34#endif
35
36/* turn off c prototypes */
37#ifndef _NO_PROTO
38#define _NO_PROTO
39#endif
40
41/* This symbol should be defined on AIX Version 3 ??????? */
42#ifndef _AIX
43#define _AIX
44#endif
45
46/* Specify "_BSD" to invoke Berkeley compatibility in header files */
47/*#ifndef _BSD
48#define _BSD
49#endif
50*/
51
52/* SYSTEM_TYPE should indicate the kind of system you are using.
53 It sets the Lisp variable system-type. */
54
55#define SYSTEM_TYPE "aix-v3"
56
57
58/* nomultiplejobs should be defined if your system's shell
59 does not have "job control" (the ability to stop a program,
60 run some other program, then continue the first one). */
61
62/* #define NOMULTIPLEJOBS */
63
64/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
65
66/* #define INTERRUPT_INPUT */
67
68/* Letter to use in finding device name of first pty,
69 if system supports pty's. 'p' means it is /dev/ptyp0 */
70
71#define FIRST_PTY_LETTER 'p'
72
73/*
74 * Define HAVE_TERMIO if the system provides sysV-style ioctls
75 * for terminal control.
76 */
77
78#define HAVE_TERMIO
79
80/*
81 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
82 * Look in <sys/time.h> for a timeval structure.
83 */
84
85#define HAVE_TIMEVAL
86
87/*
88 * Define HAVE_SELECT if the system supports the `select' system call.
89 */
90
91#define HAVE_SELECT
92
93/*
94 * Define HAVE_PTYS if the system supports pty devices.
95 */
96
97#define HAVE_PTYS
98
99/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
100
101#define HAVE_SOCKETS
102
103/*
104 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
105 * The 4.2 opendir, etc., library functions.
106 */
107
108/* #define NONSYSTEM_DIR_LIBRARY */
109
110/*
111 * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir
112 * library functions. Almost, but not quite the same as
113 * the 4.2 functions
114 */
115
116#define SYSV_SYSTEM_DIR
117
118/* Define this symbol if your system has the functions bcopy, etc. */
119
120#define BSTRING
121
122/* subprocesses should be defined if you want to
123 have code for asynchronous subprocesses
124 (as used in M-x compile and M-x shell).
125 This is supposed to work now on system V release 2. */
126
127#define subprocesses
128
129/* If your system uses COFF (Common Object File Format) then define the
130 preprocessor symbol "COFF". */
131
132/* #define COFF */
133
134/* define MAIL_USE_FLOCK if the mailer uses flock
135 to interlock access to /usr/spool/mail/$USER.
136 The alternative is that a lock file named
137 /usr/spool/mail/$USER.lock. */
138
139/* #define MAIL_USE_FLOCK */
140
141/* Define CLASH_DETECTION if you want lock files to be written
142 so that Emacs can tell instantly when you try to modify
143 a file that someone else has modified in his Emacs. */
144
145/* #define CLASH_DETECTION */
146
147/* Define SHORTNAMES if the C compiler can distinguish only
148 short names. It means that the stuff in ../shortnames
149 must be run to convert the long names to short ones. */
150
151/* #define SHORTNAMES */
152
153/* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */
154
155/* #define NLIST_STRUCT */
156
157/* The file containing the kernel's symbol table is called /unix. */
158
159#define KERNEL_FILE "/unix"
160
161/* The symbol in the kernel where the load average is found
162 is named avenrun. */
163
164#define LDAV_SYMBOL "avenrun"
165
166/* Special itemss needed to make Emacs run on this system. */
167
168/*
169 * Make the sigsetmask function go away. Don't know what the
170 * ramifications of this are, but doesn't seem possible to
171 * emulate it properly anyway at this point.
172 */
173
174#define sigsetmask(mask) /* Null expansion */
175
176/* setjmp and longjmp can safely replace _setjmp and _longjmp,
177 but they will run slower. */
178
179#define _setjmp setjmp
180#define _longjmp longjmp
181
182/* On USG systems the system calls are interruptable by signals
183 that the user program has elected to catch. Thus the system call
184 must be retried in these cases. To handle this without massive
185 changes in the source code, we remap the standard system call names
186 to names for our own functions in sysdep.c that do the system call
187 with retries. */
188
189#define read sys_read
190#define open sys_open
191#define write sys_write
192
193#define INTERRUPTIBLE_OPEN
194#define INTERRUPTIBLE_IO
195
196/* On USG systems these have different names */
197
198#define index strchr
199#define rindex strrchr
200
201/* USG systems tend to put everything declared static
202 into the initialized data area, which becomes pure after dumping Emacs.
203 Foil this. Emacs carefully avoids static vars inside functions. */
204
205#undef static
206
207/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
208
209/* #define ADDR_CORRECT(x) (x) */
210
211#define LD_CMD cc
212
213/* Prevent -lg from being used for debugging. Not needed. */
214
215#define LIBS_DEBUG
216
217/* No need to specify -lc when linking. */
218
219#define LIB_STANDARD
220
221/* Use terminfo instead of termcap. */
222
223#define TERMINFO
224
225/* The following definition seems to be needed in AIX version 3.1.6.8.
226 It may not have been needed in certain earlier versions. */
227#define HAVE_TCATTR
228
229#define SYSTEM_MALLOC
230
231
232
diff --git a/src/s/bsd4-3.h b/src/s/bsd4-3.h
new file mode 100644
index 00000000000..e9754af045a
--- /dev/null
+++ b/src/s/bsd4-3.h
@@ -0,0 +1,129 @@
1/* Definitions file for GNU Emacs running on bsd 4.3
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#ifndef BSD4_3
27#define BSD 43 /* 4.3 * 10, as cpp doesn't do floats */
28#endif /* BSD4_3 */
29
30#ifndef BSD
31#define BSD4_3 1
32#endif /* BSD */
33
34/* SYSTEM_TYPE should indicate the kind of system you are using.
35 It sets the Lisp variable system-type. */
36
37#define SYSTEM_TYPE "berkeley-unix"
38
39/* nomultiplejobs should be defined if your system's shell
40 does not have "job control" (the ability to stop a program,
41 run some other program, then continue the first one). */
42
43/* #define NOMULTIPLEJOBS */
44
45/* Do not use interrupt_input = 1 by default, because in 4.3
46 we can make noninterrupt input work properly. */
47
48#undef INTERRUPT_INPUT
49
50/* First pty name is /dev/ptyp0. */
51
52#define FIRST_PTY_LETTER 'p'
53
54/*
55 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
56 * Look in <sys/time.h> for a timeval structure.
57 */
58
59#define HAVE_TIMEVAL
60
61/*
62 * Define HAVE_SELECT if the system supports the `select' system call.
63 */
64
65#define HAVE_SELECT
66
67/*
68 * Define HAVE_PTYS if the system supports pty devices.
69 */
70
71#define HAVE_PTYS
72
73/* Define this macro if system defines a type `union wait'. */
74
75#define HAVE_UNION_WAIT
76
77/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
78
79#define HAVE_SOCKETS
80
81/*
82 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
83 * The 4.2 opendir, etc., library functions.
84 */
85
86/* #define NONSYSTEM_DIR_LIBRARY */
87
88/* Define this symbol if your system has the functions bcopy, etc. */
89
90#define BSTRING
91
92/* subprocesses should be defined if you want to
93 have code for asynchronous subprocesses
94 (as used in M-x compile and M-x shell).
95 This is generally OS dependent, and not supported
96 under most USG systems. */
97
98#define subprocesses
99
100/* If your system uses COFF (Common Object File Format) then define the
101 preprocessor symbol "COFF". */
102
103/* #define COFF */
104
105/* define MAIL_USE_FLOCK if the mailer uses flock
106 to interlock access to /usr/spool/mail/$USER.
107 The alternative is that a lock file named
108 /usr/spool/mail/$USER.lock. */
109
110#define MAIL_USE_FLOCK
111
112/* Define CLASH_DETECTION if you want lock files to be written
113 so that Emacs can tell instantly when you try to modify
114 a file that someone else has modified in his Emacs. */
115
116#define CLASH_DETECTION
117
118/* We use the Berkeley (and usg5.2.2) interface to nlist. */
119
120#define NLIST_STRUCT
121
122/* The file containing the kernel's symbol table is called /vmunix. */
123
124#define KERNEL_FILE "/vmunix"
125
126/* The symbol in the kernel where the load average is found
127 is named _avenrun. */
128
129#define LDAV_SYMBOL "_avenrun"
diff --git a/src/s/hpux.h b/src/s/hpux.h
new file mode 100644
index 00000000000..5920a1c2180
--- /dev/null
+++ b/src/s/hpux.h
@@ -0,0 +1,260 @@
1/* Definitions file for GNU Emacs running on HPUX release 7.0.
2 Based on AT&T System V.2.
3 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 1, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
20
21
22/*
23 * Define symbols to identify the version of Unix this is.
24 * Define all the symbols that apply correctly.
25 */
26
27#define USG /* System III, System V, etc */
28
29#define USG5
30
31#define HPUX
32
33/* SYSTEM_TYPE should indicate the kind of system you are using.
34 It sets the Lisp variable system-type. */
35
36#define SYSTEM_TYPE "hpux"
37
38/* `nomultiplejobs' should be defined if your system's shell
39 does not have "job control" (the ability to stop a program,
40 run some other program, then continue the first one).
41
42 On hpux this depends on the precise kind of machine in use,
43 so the m- file defines this symbol if appropriate. */
44
45/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
46
47/* #define INTERRUPT_INPUT */
48
49/* Letter to use in finding device name of first pty,
50 if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */
51
52#define FIRST_PTY_LETTER 'p'
53
54/*
55 * Define HAVE_TERMIO if the system provides sysV-style ioctls
56 * for terminal control.
57 */
58
59#define HAVE_TERMIO
60
61/* Says to include time.h, and not include sys/time.h. */
62
63#define NEED_TIME_H
64
65/*
66 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
67 * Look in <sys/time.h> for a timeval structure.
68 */
69
70#define HAVE_TIMEVAL
71
72/* With HAVE_TIMEVAL define, Emacs expects to use `utimes'.
73 But HPUX does not have one. */
74
75#define MISSING_UTIMES
76
77/*
78 * Define HAVE_SELECT if the system supports the `select' system call.
79 */
80
81#define HAVE_SELECT
82
83/*
84 * Define HAVE_PTYS if the system supports pty devices.
85 */
86
87#define HAVE_PTYS
88
89/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
90
91#define HAVE_SOCKETS
92
93/*
94 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
95 * The 4.2 opendir, etc., library functions.
96 */
97
98/* #define NONSYSTEM_DIR_LIBRARY */
99
100/* Define this symbol if your system has the functions bcopy, etc.
101 * s800 and later versions of s300 (s200) kernels have equivilents
102 * of the BSTRING functions of BSD. If your s200 kernel doesn't have
103 * em comment out this section.
104 */
105
106#define BSTRING
107
108/* subprocesses should be defined if you want to
109 have code for asynchronous subprocesses
110 (as used in M-x compile and M-x shell).
111 This is generally OS dependent, and not supported
112 under most USG systems. */
113
114#define subprocesses
115
116/* If your system uses COFF (Common Object File Format) then define the
117 preprocessor symbol "COFF". */
118
119/* #define COFF */
120
121/* define MAIL_USE_FLOCK if the mailer uses flock
122 to interlock access to /usr/spool/mail/$USER.
123 The alternative is that a lock file named
124 /usr/spool/mail/$USER.lock. */
125
126/* #define MAIL_USE_FLOCK */
127
128/* Say we have the SYSV style of interprocess communication. */
129
130#define HAVE_SYSVIPC
131
132/* Define CLASH_DETECTION if you want lock files to be written
133 so that Emacs can tell instantly when you try to modify
134 a file that someone else has modified in his Emacs. */
135
136/* #define CLASH_DETECTION */
137
138/* Define SHORTNAMES if the C compiler can distinguish only
139 short names. It means that the stuff in ../shortnames
140 must be run to convert the long names to short ones.
141
142 Some USG systems support long names.
143 If yours is one, DO NOT change this file!
144 Do #undef SHORTNAMES in the m- file or in config.h. */
145
146/* #define SHORTNAMES */
147
148/* We use the Berkeley (and usg5.2.2) interface to nlist. */
149
150#define NLIST_STRUCT
151
152/* The file containing the kernel's symbol table is called /hp-ux. */
153
154#define KERNEL_FILE "/hp-ux"
155
156/* The symbol in the kernel where the load average is found
157 depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */
158
159/* Special hacks needed to make Emacs run on this system. */
160
161/*
162 * Make the sigsetmask function go away. Don't know what the
163 * ramifications of this are, but doesn't seem possible to
164 * emulate it properly anyway at this point.
165 */
166
167/* HPUX has sigsetmask */
168/* #define sigsetmask(mask) / * Null expansion * / */
169
170/* setjmp and longjmp can safely replace _setjmp and _longjmp,
171 but they will run slower. */
172
173/* HP-UX has _setjmp and _longjmp */
174/*
175#define _setjmp setjmp
176#define _longjmp longjmp
177*/
178
179/* On USG systems the system calls are interruptable by signals
180 that the user program has elected to catch. Thus the system call
181 must be retried in these cases. To handle this without massive
182 changes in the source code, we remap the standard system call names
183 to names for our own functions in sysdep.c that do the system call
184 with retries. */
185
186#define read sys_read
187#define open sys_open
188#define write sys_write
189
190#define INTERRUPTIBLE_OPEN
191#define INTERRUPTIBLE_IO
192
193/* Use the system provided termcap(3) library */
194#define TERMINFO
195
196/* The 48-bit versions are more winning for Emacs. */
197
198#define rand lrand48
199#define srand srand48
200
201/* In hpux, the symbol SIGIO is defined, but the feature
202 does not really exist.
203
204 Here we assume that signal.h is included before config.h
205 so that we can override it here. */
206
207#undef SIGIO
208
209/* USG systems tend to put everything declared static
210 into the initialized data area, which becomes pure after dumping Emacs.
211 Foil this. Emacs carefully avoids static vars inside functions. */
212
213#define static
214
215/* Define extra libraries to load.
216 This should have -lBSD, but that library is said to make
217 `signal' fail to work. */
218
219#ifdef HPUX_NET
220#define LIBS_SYSTEM -ln
221#else
222#define LIBS_SYSTEM
223#endif
224
225/* Some additional system facilities exist. */
226
227#define HAVE_DUP2
228#define HAVE_GETTIMEOFDAY
229#define HAVE_VFORK
230#define HAVE_PERROR /* Delete this line for version 6. */
231
232/* The following maps shared exec file to demand loaded exec.
233 Don't do this as demand loaded exec is broken in hpux. */
234
235#if 0
236
237/* Adjust a header field for the executable file about to be dumped. */
238
239#define ADJUST_EXEC_HEADER \
240 hdr.a_magic = ((ohdr.a_magic.file_type == OLDMAGIC.file_type) ? \
241 NEWMAGIC : ohdr.a_magic);
242
243#endif
244
245/* Baud-rate values in tty status have nonstandard meanings. */
246
247#define BAUD_CONVERT \
248{ 0, 50, 75, 110, 135, 150, 200, 300, 600, 900, 1200, \
249 1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 }
250
251/* This is needed for HPUX version 6.2; it may not be needed for 6.2.1. */
252#define SHORT_CAST_BUG
253
254/* This is how to get the device name of the tty end of a pty. */
255#define PTY_TTY_NAME_SPRINTF \
256 sprintf (ptyname, "/dev/pty/tty%c%x", c, i);
257
258/* This is how to get the device name of the control end of a pty. */
259#define PTY_NAME_SPRINTF \
260 sprintf (ptyname, "/dev/ptym/pty%c%x", c, i);
diff --git a/src/s/hpux8.h b/src/s/hpux8.h
new file mode 100644
index 00000000000..ac047147295
--- /dev/null
+++ b/src/s/hpux8.h
@@ -0,0 +1,13 @@
1/* system description file for hpux version 8.
2 This contains changes that were suggested "for the hp700".
3 They were not needed for the 800.
4 Our conjecture that they are needed for hpux version 8,
5 which is what runs on the 700. */
6
7#include "hpux.h"
8
9#define LIB_X11_LIB -L/usr/lib/X11R4 -lX11
10#define C_SWITCH_SYSTEM -I/usr/include/X11R4
11
12/* Don't use shared libraries. unexec doesn't handle them. */
13#define LD_SWITCH_SYSTEM -a archive
diff --git a/src/s/iris3-6.h b/src/s/iris3-6.h
new file mode 100644
index 00000000000..d295fe30cb4
--- /dev/null
+++ b/src/s/iris3-6.h
@@ -0,0 +1,193 @@
1/* Definitions file for GNU Emacs running on Silicon Graphics system 3.6.
2 Copyright (C) 1987 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#define USG
27#define USG5
28#define IRIS
29
30/* SYSTEM_TYPE should indicate the kind of system you are using.
31 It sets the Lisp variable system-type. */
32
33#define SYSTEM_TYPE "irix"
34
35/* nomultiplejobs should be defined if your system's shell
36 does not have "job control" (the ability to stop a program,
37 run some other program, then continue the first one). */
38
39#define NOMULTIPLEJOBS
40
41/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
42
43/* #define INTERRUPT_INPUT */
44
45/* Letter to use in finding device name of first pty,
46 if system supports pty's. 'a' means it is /dev/ptya0 */
47
48#define FIRST_PTY_LETTER 'a'
49
50/*
51 * Define HAVE_TERMIO if the system provides sysV-style ioctls
52 * for terminal control.
53 */
54
55#define HAVE_TERMIO
56
57/*
58 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
59 * Look in <sys/time.h> for a timeval structure.
60 */
61
62#define HAVE_TIMEVAL
63
64/* `utime' system call doesn't understand timevals. */
65
66#define IRIS_UTIME
67
68/*
69 * Define HAVE_SELECT if the system supports the `select' system call.
70 */
71
72#define HAVE_SELECT
73
74/*
75 * Define HAVE_PTYS if the system supports pty devices.
76 */
77
78#define HAVE_PTYS
79
80/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
81
82#define HAVE_SOCKETS
83
84/*
85 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
86 * The 4.2 opendir, etc., library functions.
87 */
88
89/* #define NONSYSTEM_DIR_LIBRARY */
90
91/* Define this symbol if your system has the functions bcopy, etc. */
92
93#define BSTRING
94
95/* subprocesses should be defined if you want to
96 have code for asynchronous subprocesses
97 (as used in M-x compile and M-x shell).
98 This is generally OS dependent, and not supported
99 under most USG systems. */
100
101#define subprocesses
102
103/* If your system uses COFF (Common Object File Format) then define the
104 preprocessor symbol "COFF". */
105
106/* #define COFF */
107
108/* define MAIL_USE_FLOCK if the mailer uses flock
109 to interlock access to /usr/spool/mail/$USER.
110 The alternative is that a lock file named
111 /usr/spool/mail/$USER.lock. */
112
113/* #define MAIL_USE_FLOCK */
114
115/* Define CLASH_DETECTION if you want lock files to be written
116 so that Emacs can tell instantly when you try to modify
117 a file that someone else has modified in his Emacs. */
118
119/* #define CLASH_DETECTION */
120
121/* We use the Berkeley (and usg5.2.2) interface to nlist. */
122
123#define NLIST_STRUCT
124
125/* The file containing the kernel's symbol table is called /vmunix. */
126
127#define KERNEL_FILE "/vmunix"
128
129/* The symbol in the kernel where the load average is found
130 is named _avenrun. */
131
132#define LDAV_SYMBOL "_avenrun"
133
134
135/* Special hacks needed to make Emacs run on this system. */
136
137/*
138 * Make the sigsetmask function go away. Don't know what the
139 * ramifications of this are, but doesn't seem possible to
140 * emulate it properly anyway at this point.
141 */
142
143#define sigsetmask(mask) /* Null expansion */
144#define sigblock(x) x
145
146/* The IRIS defines SIGIO in signal.h, but doesn't implement it. */
147#undef SIGIO
148
149#define LIBS_MACHINE -lbsd -ldbm -lPW
150#define C_SWITCH_MACHINE -I/usr/include/bsd
151
152/* setjmp and longjmp can safely replace _setjmp and _longjmp,
153 but they will run slower. */
154
155#define _setjmp setjmp
156#define _longjmp longjmp
157
158/* On USG systems the system calls are interruptable by signals
159 that the user program has elected to catch. Thus the system call
160 must be retried in these cases. To handle this without massive
161 changes in the source code, we remap the standard system call names
162 to names for our own functions in sysdep.c that do the system call
163 with retries. */
164
165#define read sys_read
166#define open sys_open
167#define write sys_write
168
169#define INTERRUPTIBLE_OPEN
170#define INTERRUPTIBLE_IO
171
172/* On USG systems these have different names */
173
174#define index strchr
175#define rindex strrchr
176
177/* USG systems tend to put everything declared static
178 into the initialized data area, which becomes pure after dumping Emacs.
179 Foil this. Emacs carefully avoids static vars inside functions. */
180
181/* #define static */
182
183/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
184
185#define ADDR_CORRECT(x) (int)((char *)(x) - (char*)0)
186
187/* some errno.h's don't actually allocate the variable itself */
188
189#define NEED_ERRNO
190
191/* This is how to get the device name of the tty end of a pty. */
192#define PTY_TTY_NAME_SPRINTF \
193 sprintf (ptyname, "/dev/ttyq%d", minor (stb.st_rdev));
diff --git a/src/s/isc2-2.h b/src/s/isc2-2.h
new file mode 100644
index 00000000000..907974abd1f
--- /dev/null
+++ b/src/s/isc2-2.h
@@ -0,0 +1,13 @@
1/* system description file for Interactive (ISC) Unix version 2.2 on
2 the 386. */
3
4#include "usg5-3.h"
5
6#define HAVE_PTYS
7#define HAVE_RENAME
8#define HAVE_CLOSEDIR
9#define MAXNAMLEN 512
10#define LIB_STANDARD -lcposix -lc
11#define O_NDELAY O_NONBLOCK
12#define MEMORY_IN_STRING_H
13#undef SIGTSTP
diff --git a/src/s/rtu.h b/src/s/rtu.h
new file mode 100644
index 00000000000..273db7a3064
--- /dev/null
+++ b/src/s/rtu.h
@@ -0,0 +1,172 @@
1/* Definitions file for GNU Emacs running on RTU 3.0, ucb universe.
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#define BSD4_2
27#define BSD
28#define RTU
29
30/* SYSTEM_TYPE should indicate the kind of system you are using.
31 It sets the Lisp variable system-type. */
32
33#define SYSTEM_TYPE "rtu"
34
35/* NOMULTIPLEJOBS should be defined if your system's shell
36 does not have "job control" (the ability to stop a program,
37 run some other program, then continue the first one). */
38
39#define NOMULTIPLEJOBS
40
41/* Emacs can read input using SIGIO and buffering characters itself,
42 or using CBREAK mode and making C-g cause SIGINT.
43 The choice is controlled by the variable interrupt_input.
44 Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
45
46 SIGIO can be used only on systems that implement it (4.2 and 4.3).
47 CBREAK mode has two disadvatages
48 1) At least in 4.2, it is impossible to handle the Meta key properly.
49 I hear that in system V this problem does not exist.
50 2) Control-G causes output to be discarded.
51 I do not know whether this can be fixed in system V.
52
53 Another method of doing input is planned but not implemented.
54 It would have Emacs fork off a separate process
55 to read the input and send it to the true Emacs process
56 through a pipe.
57*/
58
59#undef INTERRUPT_INPUT
60
61/* Letter to use in finding device name of first pty,
62 if system supports pty's. 'a' means it is /dev/ptya0 */
63
64#define FIRST_PTY_LETTER 'z' /* i.e. no PTY_LETTERs */
65
66/*
67 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
68 * Look in <sys/time.h> for a timeval structure.
69 */
70
71#define HAVE_TIMEVAL
72
73/*
74 * Define HAVE_SELECT if the system supports the `select' system call.
75 */
76
77#define HAVE_SELECT
78
79/*
80 * Define HAVE_PTYS if the system supports pty devices.
81 */
82
83#define HAVE_PTYS
84
85/* Define this macro if system defines a type `union wait'. */
86
87#define HAVE_UNION_WAIT
88
89/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
90
91#define HAVE_SOCKETS
92
93/*
94 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
95 * The 4.2 opendir, etc., library functions.
96 */
97
98#define NONSYSTEM_DIR_LIBRARY
99
100/* Define this symbol if your system has the functions bcopy, etc. */
101/* The system library bcopy() is broken in RTU. For one thing, it expects
102 the length to be less than 64k. */
103#undef BSTRING
104
105/* subprocesses should be defined if you want to
106 have code for asynchronous subprocesses
107 (as used in M-x compile and M-x shell).
108 This is generally OS dependent, and not supported
109 under most USG systems. */
110
111#define subprocesses
112
113/* If your system uses COFF (Common Object File Format) then define the
114 preprocessor symbol "COFF". */
115
116#undef COFF
117
118/* define MAIL_USE_FLOCK if the mailer uses flock
119 to interlock access to /usr/spool/mail/$USER.
120 The alternative is that a lock file named
121 /usr/spool/mail/$USER.lock. */
122
123#undef MAIL_USE_FLOCK
124
125/* Define CLASH_DETECTION if you want lock files to be written
126 so that Emacs can tell instantly when you try to modify
127 a file that someone else has modified in his Emacs. */
128
129#undef CLASH_DETECTION
130
131/* We use the Berkeley (and usg5.2.2) interface to nlist. */
132
133#define NLIST_STRUCT
134
135/* The symbol in the kernel where the load average is found
136 is named _avenrun. */
137
138#define LDAV_SYMBOL "_avenrun"
139
140/* Special hacks needed to make Emacs run on this system. */
141
142/* On RTU systems (like USG) the system calls are interruptable by signals
143 that the user program has elected to catch. Thus the system call
144 must be retried in these cases. To handle this without massive
145 changes in the source code, we remap the standard system call names
146 to names for our own functions in sysdep.c that do the system call
147 with retries. */
148
149#define read sys_read
150#define open sys_open
151#define write sys_write
152
153#define INTERRUPTIBLE_OPEN
154#define INTERRUPTIBLE_IO
155
156/* The "fsync" call on RTU versions 3.0 and 3.1 is badly broken!
157 This hack below isn't the best solution, but without it this
158 program will cause the whole system to hang! !@#$#%$ Masscomp! */
159
160#define fsync(x) 0 /* "Comment out" fsync calls */
161
162/* RTU has IPC instead of Unix-domain sockets. */
163
164#define HAVE_SYSVIPC
165
166/* This is how to get the device name of the tty end of a pty. */
167#define PTY_TTY_NAME_SPRINTF \
168 sprintf (ptyname, "/dev/ttyp%x", i);
169
170/* This is how to get the device name of the control end of a pty. */
171#define PTY_NAME_SPRINTF \
172 sprintf (ptyname, "/dev/pty%x", i);
diff --git a/src/s/sunos4shr.h b/src/s/sunos4shr.h
new file mode 100644
index 00000000000..2b665513b19
--- /dev/null
+++ b/src/s/sunos4shr.h
@@ -0,0 +1,30 @@
1#include "bsd4-2.h"
2
3/* Say that the text segment of a.out includes the header;
4 the header actually occupies the first few bytes of the text segment
5 and is counted in hdr.a_text. */
6
7#define O_NDELAY FNDELAY /* Non-blocking I/O (4.2 style) */
8
9/* In SunOS 4.1, a static function called by tzsetwall reportedly
10 clears the byte just past an eight byte region it mallocs, corrupting
11 GNU malloc's memory pool. But Sun's malloc doesn't seem to mind. */
12
13#define SYSTEM_MALLOC
14
15/* Misleading! Actually gets loaded after crt0.o */
16#define START_FILES pre-crt0.o
17
18/*
19 * Kludge! can't get at symbol "start" in std crt0.o
20 * Who the #$%&* decided to remove the __ characters!
21 * Someone needs to fix this in sysdep.c with an #ifdef BROKEN_START in
22 * sysdep.c. We do not use this address so any value should do really. Still
23 * may need it in the future?
24 */
25#define BROKEN_START
26#define TEXT_START 0x2020
27
28#define UNEXEC unexsunos4.o
29#define RUN_TIME_REMAP
30#define LD_CMD cc
diff --git a/src/s/template.h b/src/s/template.h
new file mode 100644
index 00000000000..6cf4905db3e
--- /dev/null
+++ b/src/s/template.h
@@ -0,0 +1,143 @@
1/* Template for system description header files.
2 This file describes the parameters that system description files
3 should define or not.
4 Copyright (C) 1985, 1986 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 1, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
21
22
23/*
24 * Define symbols to identify the version of Unix this is.
25 * Define all the symbols that apply correctly.
26 */
27
28/* #define UNIPLUS */
29/* #define USG5 */
30/* #define USG */
31/* #define HPUX */
32/* #define UMAX */
33/* #define BSD4_1 */
34/* #define BSD4_2 */
35/* #define BSD4_3 */
36/* #define BSD */
37/* #define VMS */
38
39/* SYSTEM_TYPE should indicate the kind of system you are using.
40 It sets the Lisp variable system-type. */
41
42#define SYSTEM_TYPE "berkeley-unix"
43
44/* NOMULTIPLEJOBS should be defined if your system's shell
45 does not have "job control" (the ability to stop a program,
46 run some other program, then continue the first one). */
47
48/* #define NOMULTIPLEJOBS */
49
50/* Emacs can read input using SIGIO and buffering characters itself,
51 or using CBREAK mode and making C-g cause SIGINT.
52 The choice is controlled by the variable interrupt_input.
53 Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
54
55 SIGIO can be used only on systems that implement it (4.2 and 4.3).
56 CBREAK mode has two disadvatages
57 1) At least in 4.2, it is impossible to handle the Meta key properly.
58 I hear that in system V this problem does not exist.
59 2) Control-G causes output to be discarded.
60 I do not know whether this can be fixed in system V.
61
62 Another method of doing input is planned but not implemented.
63 It would have Emacs fork off a separate process
64 to read the input and send it to the true Emacs process
65 through a pipe.
66*/
67
68#define INTERRUPT_INPUT
69
70/* Letter to use in finding device name of first pty,
71 if system supports pty's. 'a' means it is /dev/ptya0 */
72
73#define FIRST_PTY_LETTER 'a'
74
75/*
76 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
77 * Look in <sys/time.h> for a timeval structure.
78 */
79
80#define HAVE_TIMEVAL
81
82/*
83 * Define HAVE_SELECT if the system supports the `select' system call.
84 */
85
86/* #define HAVE_SELECT */
87
88/*
89 * Define HAVE_PTYS if the system supports pty devices.
90 */
91
92#define HAVE_PTYS
93
94/*
95 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
96 * The 4.2 opendir, etc., library functions.
97 */
98
99#define NONSYSTEM_DIR_LIBRARY
100
101/* Define this symbol if your system has the functions bcopy, etc. */
102
103#define BSTRING
104
105/* subprocesses should be defined if you want to
106 have code for asynchronous subprocesses
107 (as used in M-x compile and M-x shell).
108 This is generally OS dependent, and not supported
109 under most USG systems. */
110
111#define subprocesses
112
113/* If your system uses COFF (Common Object File Format) then define the
114 preprocessor symbol "COFF". */
115
116/* #define COFF */
117
118/* define MAIL_USE_FLOCK if the mailer uses flock
119 to interlock access to /usr/spool/mail/$USER.
120 The alternative is that a lock file named
121 /usr/spool/mail/$USER.lock. */
122
123#define MAIL_USE_FLOCK
124
125/* Define CLASH_DETECTION if you want lock files to be written
126 so that Emacs can tell instantly when you try to modify
127 a file that someone else has modified in his Emacs. */
128
129#define CLASH_DETECTION
130
131/* Here, on a separate page, add any special hacks needed
132 to make Emacs work on this system. For example,
133 you might define certain system call names that don't
134 exist on your system, or that do different things on
135 your system and must be used only through an encapsulation
136 (Which you should place, by convention, in sysdep.c). */
137
138/* Some compilers tend to put everything declared static
139 into the initialized data area, which becomes pure after dumping Emacs.
140 On these systems, you must #define static as nothing to foil this.
141 Note that emacs carefully avoids static vars inside functions. */
142
143/* #define static */
diff --git a/src/s/usg5-3.h b/src/s/usg5-3.h
new file mode 100644
index 00000000000..c54ec479e65
--- /dev/null
+++ b/src/s/usg5-3.h
@@ -0,0 +1,215 @@
1/* Definitions file for GNU Emacs running on AT&T's System V Release 3
2 Copyright (C) 1987 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#define USG /* System III, System V, etc */
27
28#define USG5
29
30/* SYSTEM_TYPE should indicate the kind of system you are using.
31 It sets the Lisp variable system-type. */
32
33#define SYSTEM_TYPE "usg-unix-v"
34
35/* nomultiplejobs should be defined if your system's shell
36 does not have "job control" (the ability to stop a program,
37 run some other program, then continue the first one). */
38
39#define NOMULTIPLEJOBS
40
41/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
42
43/* #define INTERRUPT_INPUT */
44
45/* Letter to use in finding device name of first pty,
46 if system supports pty's. 'p' means it is /dev/ptyp0 */
47
48#define FIRST_PTY_LETTER 'p'
49
50/*
51 * Define HAVE_TERMIO if the system provides sysV-style ioctls
52 * for terminal control.
53 */
54
55#define HAVE_TERMIO
56
57/*
58 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
59 * Look in <sys/time.h> for a timeval structure.
60 */
61
62/* #define HAVE_TIMEVAL */
63
64/*
65 * Define HAVE_SELECT if the system supports the `select' system call.
66 */
67
68/* #define HAVE_SELECT */
69
70/*
71 * Define HAVE_PTYS if the system supports pty devices.
72 */
73
74/* Some versions of V.3 have this, but not all.
75 #define HAVE_PTYS
76 #define SYSV_PTYS */
77
78/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
79
80/* #define HAVE_SOCKETS */
81
82/*
83 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
84 * The 4.2 opendir, etc., library functions.
85 */
86
87/* #define NONSYSTEM_DIR_LIBRARY */
88
89/*
90 * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir
91 * library functions. Almost, but not quite the same as
92 * the 4.2 functions
93 */
94#define SYSV_SYSTEM_DIR
95
96/* Define this symbol if your system has the functions bcopy, etc. */
97
98/* #define BSTRING */
99
100/* subprocesses should be defined if you want to
101 have code for asynchronous subprocesses
102 (as used in M-x compile and M-x shell).
103 This is supposed to work now on system V release 2. */
104
105#define subprocesses
106
107/* If your system uses COFF (Common Object File Format) then define the
108 preprocessor symbol "COFF". */
109
110#define COFF
111
112/* define MAIL_USE_FLOCK if the mailer uses flock
113 to interlock access to /usr/spool/mail/$USER.
114 The alternative is that a lock file named
115 /usr/spool/mail/$USER.lock. */
116
117/* #define MAIL_USE_FLOCK */
118
119/* Define CLASH_DETECTION if you want lock files to be written
120 so that Emacs can tell instantly when you try to modify
121 a file that someone else has modified in his Emacs. */
122
123/* #define CLASH_DETECTION */
124
125/* Define SHORTNAMES if the C compiler can distinguish only
126 short names. It means that the stuff in ../shortnames
127 must be run to convert the long names to short ones. */
128
129/* #define SHORTNAMES */
130
131/* We use the Berkeley (and usg5.2.2) interface to nlist. */
132
133#define NLIST_STRUCT
134
135/* The file containing the kernel's symbol table is called /unix. */
136
137#define KERNEL_FILE "/unix"
138
139/* The symbol in the kernel where the load average is found
140 is named avenrun. */
141
142#define LDAV_SYMBOL "avenrun"
143
144/* Define this if system V IPC is available. */
145
146#define HAVE_SYSVIPC
147
148/* Special hacks needed to make Emacs run on this system. */
149
150/*
151 * Make the sigsetmask function go away. Don't know what the
152 * ramifications of this are, but doesn't seem possible to
153 * emulate it properly anyway at this point.
154 */
155
156#define sigsetmask(mask) /* Null expansion */
157
158/* setjmp and longjmp can safely replace _setjmp and _longjmp,
159 but they will run slower. */
160
161#define _setjmp setjmp
162#define _longjmp longjmp
163
164/* On USG systems the system calls are interruptable by signals
165 that the user program has elected to catch. Thus the system call
166 must be retried in these cases. To handle this without massive
167 changes in the source code, we remap the standard system call names
168 to names for our own functions in sysdep.c that do the system call
169 with retries. */
170
171#define read sys_read
172#define write sys_write
173#define open sys_open
174#define close sys_close
175
176#define INTERRUPTIBLE_OPEN
177#define INTERRUPTIBLE_CLOSE
178#define INTERRUPTIBLE_IO
179
180/* On USG systems these have different names */
181
182#define index strchr
183#define rindex strrchr
184
185/* USG systems tend to put everything declared static
186 into the initialized data area, which becomes pure after dumping Emacs.
187 Foil this. Emacs carefully avoids static vars inside functions. */
188
189#define static
190
191/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
192
193#define ADDR_CORRECT(x) (x)
194
195/* Prevent -lg from being used for debugging. Not implemented? */
196
197#define LIBS_DEBUG
198
199/* Use terminfo instead of termcap. */
200
201#define TERMINFO
202
203/* X needs to talk on the network, so search the network library. */
204
205#define LIBX10_SYSTEM -lnsl_s
206#define LIBX11_SYSTEM -lnsl_s
207
208/* Some variants have TIOCGETC, but the structures to go with it
209 are not declared. */
210
211#define BROKEN_TIOCGETC
212
213/* Enable support for shared libraries in unexec. */
214
215#define USG_SHARED_LIBRARIES
diff --git a/src/s/usg5-4.h b/src/s/usg5-4.h
new file mode 100644
index 00000000000..817ff0644a8
--- /dev/null
+++ b/src/s/usg5-4.h
@@ -0,0 +1,163 @@
1/* Definitions file for GNU Emacs running on AT&T's System V Release 4
2 Copyright (C) 1987 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is distributed in the hope that it will be useful,
7but WITHOUT ANY WARRANTY. No author or distributor
8accepts responsibility to anyone for the consequences of using it
9or for whether it serves any particular purpose or works at all,
10unless he says so in writing. Refer to the GNU Emacs General Public
11License for full details.
12
13Everyone is granted permission to copy, modify and redistribute
14GNU Emacs, but only under the conditions described in the
15GNU Emacs General Public License. A copy of this license is
16supposed to have been given to you along with GNU Emacs so you
17can know your rights and responsibilities. It should be in a
18file named COPYING. Among other things, the copyright notice
19and this notice must be preserved on all copies. */
20
21/* This file written by James Van Artsdalen of Dell Computer Corporation.
22 * james@bigtex.cactus.org.
23 */
24
25/* Use the SysVr3 file for at least base configuration. */
26
27#include "usg5-3.h"
28
29#define USG5_4
30
31/* We do have multiple jobs. Handle ^Z. */
32
33#undef NOMULTIPLEJOBS
34
35/* If compiled by GNU C, we must have gnulib */
36
37#ifdef __GNUC__
38#define GNULIB /usr/local/lib/gcc-gnulib
39#define LIBS_DEBUG
40#else
41#define GNULIB
42#endif
43
44#define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o
45
46#define LIB_STANDARD GNULIB -lsocket -lnsl -lelf -lc /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o
47
48#define DATA_SEG_BITS 0x08000000
49
50/* Use ptem.h to get structures related to windows. */
51
52#define NEED_PTEM_H
53
54/* Undump with ELF */
55
56#undef COFF
57
58#define UNEXEC unexelf.o
59
60/* Get FIONREAD from <sys/filio.h>. Get <sys/ttold.h> to get struct
61 * tchars. But get <termio.h> first to make sure ttold.h doesn't
62 * interfere. And don't try to use SIGIO yet.
63 */
64
65#ifdef emacs
66#include <sys/filio.h>
67#include <termio.h>
68#include <sys/ttold.h>
69#include <signal.h>
70#undef SIGIO
71#endif
72
73/* libc has this stuff, but not utimes. */
74
75#define HAVE_RENAME
76#define HAVE_SELECT
77#define HAVE_TIMEVAL
78#define HAVE_CLOSEDIR
79#define HAVE_GETTIMEOFDAY
80#define HAVE_DUP2
81
82#define USE_UTIME
83
84/* <sys/stat.h> *defines* stat(2) as a static function. If "static"
85 * is blank, then many files will have a public definition for stat(2).
86 */
87
88#undef static
89
90/* We need bss_end from emacs.c for undumping */
91
92#ifndef USG_SHARED_LIBRARIES
93#define USG_SHARED_LIBRARIES
94#endif
95
96/* We can support this */
97
98#define CLASH_DETECTION
99
100#define HAVE_PTYS
101#define HAVE_SETSID
102
103/* It is possible to receive SIGCHLD when there are no children
104 waiting, because a previous waitsys(2) cleaned up the carcass of child
105 without clearing the SIGCHLD pending info. So, use a non-blocking
106 wait3 instead, which maps to waitpid(2) in SysVr4. */
107
108#define HAVE_WAIT_HEADER
109#define WAITTYPE int
110#define wait3(status, options, rusage) \
111 waitpid((pid_t) -1, (status), (options))
112#define WRETCODE(w) (w >> 8)
113
114/* TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY
115 subprocesses the usual way. But TIOCSIGNAL does work for PTYs, and
116 this is all we need. */
117
118#define TIOCSIGSEND TIOCSIGNAL
119
120/* This change means that we don't loop through allocate_pty too many
121 times in the (rare) event of a failure. */
122
123#undef FIRST_PTY_LETTER
124#define FIRST_PTY_LETTER 'z'
125
126/* This sets the name of the master side of the PTY. */
127
128#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");
129
130/* This sets the name of the slave side of the PTY. On SysVr4,
131 grantpt(3) forks a subprocess, so keep sigchld_handler() from
132 intercepting that death. If any child but grantpt's should die
133 within, it should be caught after sigrelse(2). */
134
135#define PTY_TTY_NAME_SPRINTF \
136 { \
137 char *ptsname(), *ptyname; \
138 \
139 sighold(SIGCLD); \
140 if (grantpt(fd) == -1) \
141 fatal("could not grant slave pty"); \
142 sigrelse(SIGCLD); \
143 if (unlockpt(fd) == -1) \
144 fatal("could not unlock slave pty"); \
145 if (!(ptyname = ptsname(fd))) \
146 fatal ("could not enable slave pty"); \
147 strncpy(pty_name, ptyname, sizeof(pty_name)); \
148 pty_name[sizeof(pty_name) - 1] = 0; \
149 }
150
151/* Push various streams modules onto a PTY channel. */
152
153#define SETUP_SLAVE_PTY \
154 if (ioctl (xforkin, I_PUSH, "ptem") == -1) \
155 fatal ("ioctl I_PUSH ptem", errno); \
156 if (ioctl (xforkin, I_PUSH, "ldterm") == -1) \
157 fatal ("ioctl I_PUSH ldterm", errno); \
158 if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \
159 fatal ("ioctl I_PUSH ttcompat", errno);
160
161/* The definition of this in usg5-3.h is not needed in 5.4. */
162
163#undef LIBX11_SYSTEM