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