aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1991-12-13 18:50:18 +0000
committerJim Blandy1991-12-13 18:50:18 +0000
commit9b71f02b8a03ec8b8d0f5e4053a76e8f71920a57 (patch)
tree4cb729aa379a5b81906065849777be98ed8e8c74 /src
parent20c428fd9d239eca0a835e3b0fe2629e789ce562 (diff)
downloademacs-9b71f02b8a03ec8b8d0f5e4053a76e8f71920a57.tar.gz
emacs-9b71f02b8a03ec8b8d0f5e4053a76e8f71920a57.zip
entered into RCS
Diffstat (limited to 'src')
-rw-r--r--src/m/alliant1.h9
-rw-r--r--src/m/alliant4.h24
-rw-r--r--src/m/gould-np1.h87
-rw-r--r--src/m/is386.h27
-rw-r--r--src/m/news-risc.h21
-rw-r--r--src/m/sgi3000.h1
-rw-r--r--src/m/sun3-68881.h28
-rw-r--r--src/m/sun3-fpa.h28
-rw-r--r--src/m/sun3-soft.h29
-rw-r--r--src/m/sun3.h50
-rw-r--r--src/m/sun386.h75
-rw-r--r--src/m/symmetry.h103
-rw-r--r--src/m/tandem-s2.h24
-rw-r--r--src/s/386-ix.h20
-rw-r--r--src/s/bsd4-1.h149
-rw-r--r--src/s/bsd4-2.h128
-rw-r--r--src/s/dgux.h254
-rw-r--r--src/s/esix.h29
-rw-r--r--src/s/iris3-5.h196
-rw-r--r--src/s/irix3-3.h175
-rw-r--r--src/s/sunos4-0.h14
-rw-r--r--src/s/sunos4-1.h12
-rw-r--r--src/s/umax.h178
-rw-r--r--src/s/umips.h77
-rw-r--r--src/s/unipl5-0.h192
-rw-r--r--src/s/unipl5-2.h186
-rw-r--r--src/s/usg5-0.h183
-rw-r--r--src/s/usg5-2-2.h186
-rw-r--r--src/s/usg5-2.h186
-rw-r--r--src/s/vms.h230
-rw-r--r--src/s/vms4-0.h2
-rw-r--r--src/s/vms4-2.h3
-rw-r--r--src/s/vms4-4.h3
-rw-r--r--src/s/xenix.h238
34 files changed, 3147 insertions, 0 deletions
diff --git a/src/m/alliant1.h b/src/m/alliant1.h
new file mode 100644
index 00000000000..95f56cf1804
--- /dev/null
+++ b/src/m/alliant1.h
@@ -0,0 +1,9 @@
1/* config.h should include this file for version 1 of Alliant's
2 operating system. */
3
4/* The following line tells the configuration script what sort of
5 operating system this machine is likely to run.
6 USUAL-OPSYS="bsd4-2" */
7
8#define ALLIANT_1
9#include "alliant.h"
diff --git a/src/m/alliant4.h b/src/m/alliant4.h
new file mode 100644
index 00000000000..ade3dbbaae5
--- /dev/null
+++ b/src/m/alliant4.h
@@ -0,0 +1,24 @@
1/* machine description file for Alliant Concentrix 4.0 or later.
2 Use alliant.h for versions 2 and 3. */
3
4/* The following line tells the configuration script what sort of
5 operating system this machine is likely to run.
6 USUAL-OPSYS="bsd4-2" */
7
8#include "alliant.h"
9
10/* Concentrix uses a different kernel symbol for load average. */
11
12#undef LDAV_SYMBOL /* Undo definition in s-bsd4-2.h */
13#define LDAV_SYMBOL "_Loadavg"
14
15/* Data type of load average, as read out of kmem. */
16
17#define LOAD_AVE_TYPE long
18
19/* Convert that into an integer that is 100 for a load average of 1.0 */
20
21#define LOAD_AVE_CVT(x) (x * 100 / LOADAVG_SCALE)
22
23/* include <sys/param.h> for the definition of LOADAVG_SCALE, and also
24 LOADAVG_SIZE, the number of items in the Loadavg array. */
diff --git a/src/m/gould-np1.h b/src/m/gould-np1.h
new file mode 100644
index 00000000000..014fa68fb53
--- /dev/null
+++ b/src/m/gould-np1.h
@@ -0,0 +1,87 @@
1/* machine description file for Gould NP1 with UTX/32 3.0 (first release for NP1). */
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-3" */
6
7/* If your system uses COFF (Common Object File Format) then define the
8 preprocessor symbol "COFF". */
9/* UTX 3.0 uses a cross between COFF and a.out format, but closer to COFF. */
10/* at least currently, already defined by cpp, but make sure */
11#ifndef COFF
12#define COFF
13#endif COFF
14
15#include "gould.h"
16
17/* undefine what gould.h defined */
18#undef ADJUST_EXEC_HEADER
19
20/* If your system uses COFF (Common Object File Format) then define the
21 preprocessor symbol "COFF". */
22/* UTX 3.0 uses a cross between COFF and a.out format, but closer to COFF. */
23#ifndef COFF /* at least currently, already defined by cpp */
24#define COFF
25#endif COFF
26
27/* make Gould NP1 and PN COFF look like USG COFF */
28/* NP1 COFF */
29#undef aouthdr /* Since gould.h already defined these */
30#undef a_dtbase
31
32#ifdef IN_UNEXEC
33#define aouthdr exec
34#define ADJUST_TEXT_SCNHDR_SIZE
35
36/* Gould COFF - these are already defined in gould.h */
37/*
38 * #define COFF_WITH_BSD_SYMTAB
39 * #define HEADER_INCL_IN_TEXT
40 * #define magic a_magic
41 * #define tsize a_text
42 * #define dsize a_data
43 * #define bsize a_bss
44 * #define entry a_entry
45 * #define text_start a_txbase
46 * #define data_start a_dtbase
47*/
48/* End Gould COFF */
49#endif /* IN_UNEXEC */
50
51/* NP1 supports a slightly different set than PowerNode */
52#define BAUD_CONVERT { 0, 50, 75, 110, 134, 150, 300, 450, 600, 1200, \
53 1800, 2000, 2400, 3600, 4800, 7200, 9600, \
54 19200, 38400 }
55
56#define LD_SWITCH_SYSTEM -BS -e start
57
58/* Undef C_DEBUG_SWITCH because it may have been set in gould.h */
59/* It will compile and load and works with dbx. Runs under an incomplete
60 port of gdb, but gdb doesn't always find things correctly. */
61#undef C_DEBUG_SWITCH
62#define C_DEBUG_SWITCH -g
63#define LIBS_DEBUG -lg
64
65
66/* The data segment in this machine always starts at address 0x1000000 = 16M.
67 An address of data cannot be stored correctly in a Lisp object;
68 we always lose the high bits. We must tell XPNTR to add them back. */
69
70#define DATA_SEG_BITS 0x1000000
71#define DATA_START 0x1000000
72
73/* The text segment always starts at 0.
74 This way we don't need to have a label _start defined. */
75#define TEXT_START 0
76
77/* Data isn't right next to text on an NP1 */
78#define NO_REMAP
79
80/* The bcopy bug has reappeared */
81#undef BSTRING
82
83#ifndef GOULD_NP1
84#define GOULD_NP1
85#endif
86
87
diff --git a/src/m/is386.h b/src/m/is386.h
new file mode 100644
index 00000000000..45f9273e910
--- /dev/null
+++ b/src/m/is386.h
@@ -0,0 +1,27 @@
1/* machine description file for Integrated Solutions 386 machine. */
2
3#include "intel386.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
10Intel 386 (-machine=intel386 or -machine=is386.h)
11
12 The possibilities for -opsystem are: bsd4-2, usg5-2-2, usg5-3,
13 isc2-2, 386-ix, esix, or xenix.
14
15 18.58 should support a wide variety of operating systems.
16 Use isc2-2 for Interactive 386/ix version 2.2.
17 Use 386ix for prior versions.
18 Use esix for Esix. It isn't clear what to do on an SCO system.
19
20 -machine=is386 is used for an Integrated Solutions 386 machine.
21 It may also be correct for Microport systems.
22NOTE-END */
23
24#define LIBX10_MACHINE -lnsl_s
25#define LIBX11_MACHINE -lnsl_s
26
27#define LIBS_DEBUG -lg
diff --git a/src/m/news-risc.h b/src/m/news-risc.h
new file mode 100644
index 00000000000..a74babceac1
--- /dev/null
+++ b/src/m/news-risc.h
@@ -0,0 +1,21 @@
1/* news-risc.h is for the "RISC News". */
2
3#include "mips.h"
4#undef LIBS_MACHINE
5
6/* The following line tells the configuration script what sort of
7 operating system this machine is likely to run.
8 USUAL-OPSYS="bsd4-3" */
9
10#define LIBS_MACHINE -lmld
11
12#define COFF
13#undef LD_SWITCH_MACHINE
14#define LD_SWITCH_MACHINE -x -D 800000
15
16/* #define C_OPTIMIZE_SWITCH -O2 */
17#define C_OPTIMIZE_SWITCH -O
18
19#define C_DEBUG_SWITCH -g3
20
21#undef TERMINFO
diff --git a/src/m/sgi3000.h b/src/m/sgi3000.h
new file mode 100644
index 00000000000..79249b61911
--- /dev/null
+++ b/src/m/sgi3000.h
@@ -0,0 +1 @@
#include "irist.h"
diff --git a/src/m/sun3-68881.h b/src/m/sun3-68881.h
new file mode 100644
index 00000000000..b74758fa4fc
--- /dev/null
+++ b/src/m/sun3-68881.h
@@ -0,0 +1,28 @@
1/* sun3-68881.h, for a Sun 3, using the 68881. */
2
3#include "sun3.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
10Sun with 68881 co-processor (-machine=sun3-68881;
11 -opsystem=bsd4-2 or -opsystem=sunos4)
12
13 Versions 1, 2, and 3 of the operating system are derived from
14 Berkeley 4.2, meaning that you should use -opsystem=bsd4-2.
15
16 For SunOS release 4 on a Sun 3 with a 68881, use -machine=sun3-68881
17 and -opsystem=sunos4. See the file share-lib/SUNBUG for how to
18 solve problems caused by bugs in the "export" version of SunOS 4.
19NOTE-END */
20
21/* In case we are using floating point, work together with crt0.c. */
22
23#ifndef __GNUC__
24#define C_SWITCH_MACHINE -f68881
25#endif
26
27#define sun_68881
28#define START_FILES crt0.o /usr/lib/Mcrt1.o
diff --git a/src/m/sun3-fpa.h b/src/m/sun3-fpa.h
new file mode 100644
index 00000000000..da959cac361
--- /dev/null
+++ b/src/m/sun3-fpa.h
@@ -0,0 +1,28 @@
1/* sun3-fpa.h, for a Sun 3, using the Sun fpa. */
2
3#include "sun3.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
10Sun with FPA co-processor (-machine=sun3-fpa;
11 -opsystem=bsd4-2 or -opsystem=sunos4)
12
13 Versions 1, 2, and 3 of the operating system are derived from
14 Berkeley 4.2, meaning that you should use -opsystem=bsd4-2.
15
16 For SunOS release 4 on a Sun 3 with an FPA, use -machine=sun3-fpa
17 and -opsystem=sunos4. See the file share-lib/SUNBUG for how to
18 solve problems caused by bugs in the "export" version of SunOS 4.
19NOTE-END */
20
21/* In case we are using floating point, work together with crt0.c. */
22
23#ifndef __GNUC__
24#define C_SWITCH_MACHINE -ffpa
25#endif
26
27#define sun_fpa
28#define START_FILES crt0.o /usr/lib/Wcrt1.o
diff --git a/src/m/sun3-soft.h b/src/m/sun3-soft.h
new file mode 100644
index 00000000000..05a1e9e7f49
--- /dev/null
+++ b/src/m/sun3-soft.h
@@ -0,0 +1,29 @@
1/* sun3-soft.h, for a Sun 3, using the Sun with software floating point. */
2
3#include "sun3.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
10Sun with software floating point (-machine=sun3-soft;
11 -opsystem=bsd4-2 or -opsystem=sunos4)
12
13 Versions 1, 2, and 3 of the operating system are derived from
14 Berkeley 4.2, meaning that you should use -opsystem=bsd4-2.
15
16 If you want to use software floating point on SunOS release 4 on a
17 Sun 3, use -machine=sun3-68881 and -opsystem=sunos4. See the file
18 share-lib/SUNBUG for how to solve problems caused by bugs in the
19 "export" version of SunOS 4.
20NOTE-END */
21
22/* In case we are using floating point, work together with crt0.c. */
23
24#ifndef __GNUC__
25#define C_SWITCH_MACHINE -fsoft
26#endif
27
28#define sun_soft
29#define START_FILES crt0.o /usr/lib/Fcrt1.o
diff --git a/src/m/sun3.h b/src/m/sun3.h
new file mode 100644
index 00000000000..b20889c25b8
--- /dev/null
+++ b/src/m/sun3.h
@@ -0,0 +1,50 @@
1/* machine description file for Sun 68000's OPERATING SYSTEM version 3
2 (for either 68000 or 68020 systems). */
3
4#include "sun2.h"
5#undef sun2
6#ifndef sun3
7#define sun3
8#endif
9
10/* The following line tells the configuration script what sort of
11 operating system this machine is likely to run.
12 USUAL-OPSYS="note"
13
14NOTE-START
15Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3;
16 -opsystem=bsd4-2 or -opsystem=sunos4)
17
18 Whether you should use sun1, sun2 or sun3 depends on the
19 VERSION OF THE OPERATING SYSTEM
20 you have. There are three machine types for different versions of
21 SunOS. All are derived from Berkeley 4.2, meaning that you should
22 use -opsystem=bsd4-2. Emacs 17 has run on all of them. You will
23 need to use sun3 on Sun 2's running SunOS release 3.
24
25 For SunOS release 4 on a Sun 3, use -machine=sun3 and
26 -opsystem=sunos4. See the file share-lib/SUNBUG for how to solve
27 problems caused by bugs in the "export" version of SunOS 4.
28NOTE-END */
29
30/* Say that the text segment of a.out includes the header;
31 the header actually occupies the first few bytes of the text segment
32 and is counted in hdr.a_text. */
33
34#define A_TEXT_OFFSET(HDR) sizeof (HDR)
35
36/* This is the offset of the executable's text, from the start of the file. */
37
38#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr))
39
40/* In case we are using floating point, work together with crt0.c. */
41
42#ifndef __GNUC__
43#define C_SWITCH_MACHINE -fsoft
44#endif
45
46/* This line is needed if you are linking with X windows
47 and the library xlib was compiled to use the 68881.
48 For maximum cleanliness, don't edit this file;
49 instead, insert this line in config.h. */
50/* #define START_FILES crt0.o /usr/lib/Mcrt1.o */
diff --git a/src/m/sun386.h b/src/m/sun386.h
new file mode 100644
index 00000000000..1daf25601b5
--- /dev/null
+++ b/src/m/sun386.h
@@ -0,0 +1,75 @@
1/* machine description file for Sun's 386-based RoadRunner. This file borrows heavily from
2 "sun2.h", but since that file is heavily cpu-specific, it was easier
3 not to include it.
4
5 Copyright (C) 1988 Free Software Foundation, Inc.
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="note"
26
27NOTE-START
28 Use s-sunos4-0.h for operating system version 4.0, and s-sunos4-1.h
29 for later versions. See the file share-lib/SUNBUG for how to solve
30 problems caused by bugs in the "export" version of SunOS 4.
31NOTE-END */
32
33/* Say this machine is a bird */
34#ifndef roadrunner
35#define roadrunner
36#endif
37
38/* Actual cpu-specific defs */
39#include "intel386.h"
40
41/* Data type of load average, as read out of kmem. */
42
43#define LOAD_AVE_TYPE long
44
45/* Convert that into an integer that is 100 for a load average of 1.0 */
46
47#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
48
49/* Underscores are not prepended to C symbols on this machine. */
50#undef LDAV_SYMBOL
51#define LDAV_SYMBOL "avenrun"
52
53/* Must use the system's termcap. It does special things. */
54
55#define LIBS_TERMCAP -ltermcap
56
57/* Arrange to link with sun windows, if requested. */
58/* For details on emacstool and sunfns, see etc/SUN-SUPPORT */
59/* These programs require Sun UNIX 4.2 Release 3.2 or greater */
60
61#ifdef HAVE_SUN_WINDOWS
62#define OTHER_FILES ${etcdir}emacstool
63#define LIBS_MACHINE -lsuntool -lsunwindow -lpixrect
64#define OBJECTS_MACHINE sunfns.o
65#define SYMS_MACHINE syms_of_sunfns ()
66#define PURESIZE 132000
67#endif
68
69/* Roadrunner uses 'COFF' format */
70#define COFF
71
72#define C_SWITCH_MACHINE -Bstatic /* avoid dynamic linking */
73#define LD_SWITCH_MACHINE -n -Bstatic
74/* Get rid of the -e __start that s-sunos4.h does. */
75#undef LD_SWITCH_SYSTEM
diff --git a/src/m/symmetry.h b/src/m/symmetry.h
new file mode 100644
index 00000000000..d89e5346ef4
--- /dev/null
+++ b/src/m/symmetry.h
@@ -0,0 +1,103 @@
1/* machine description file for SEQUENT SYMMETRY 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/* CHANGE: [Eric H. Herrin II; eric@ms.uky.edu - 15 Sept 1988]
21 * Modified the sequent.h file for the Sequent Symmetry machine.
22 * Biggest change was to align the sections in the a.out to 4K
23 * boundaries (this is the page size).
24 */
25
26
27/* NOTICE: this file works for DYNIX release 3.0.12 on Sequent Symmetry
28 * (Intel 80386) machines. Hasn't been tested on anything else.
29 */
30
31/* The following line tells the configuration script what sort of
32 operating system this machine is likely to run.
33 USUAL-OPSYS="bsd4-3" */
34
35#include "intel386.h"
36
37/* Data type of load average, as read out of kmem. */
38
39#define LOAD_AVE_TYPE unsigned long
40
41/* Convert that into an integer that is 100 for a load average of 1.0 */
42
43#define FSCALE 1000.0
44#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
45
46/* Define C_ALLOCA if this machine does not support a true alloca
47 and the one written in C should be used instead.
48 Define HAVE_ALLOCA to say that the system provides a properly
49 working alloca function and it should be used.
50 Define neither one if an assembler-language alloca
51 in the file alloca.s should be used. */
52
53/* #define C_ALLOCA */
54/*#define HAVE_ALLOCA*/
55
56/* Name of file the to look in
57 for the kernel symbol table (for load average) */
58
59#undef KERNEL_FILE
60#define KERNEL_FILE "/dynix"
61
62/* define HAVE_GETPAGESIZE for Symmetry */
63#define HAVE_GETPAGESIZE
64
65/* Avoids a compiler bug */
66
67#define TAHOE_REGISTER_BUG
68
69/* Say that the text segment of a.out includes the header;
70 the header actually occupies the first few bytes of the text segment
71 and is counted in hdr.a_text. Furthermore, the value written
72 in the a_text in the file must have N_ADDRADJ added to it. */
73
74#define A_TEXT_OFFSET(HDR) (sizeof (HDR) + N_ADDRADJ (HDR))
75
76/* This is the offset of the executable's text, from the start of the file. */
77
78#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr))
79
80/* The file sections in the Symmetry a.out must be on 4K boundaries.
81 */
82#define SEGSIZ 4096
83#define SECTION_ALIGNMENT (SEGSIZ-1)
84
85/* (short) negative-int doesn't sign-extend correctly */
86#define SHORT_CAST_BUG
87
88/* Cause compilations to be done in parallel in ymakefile. */
89#define MAKE_PARALLEL &
90
91/* Define how to search all pty names.
92 This is for Dynix 3.0; delete next 5 definitions for older systems. */
93
94#define PTY_MAJOR "pqrstuvwPQRSTUVW"
95#define PTY_MINOR "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
96#define PTY_ITERATION \
97 register int ma, mi; \
98 for (ma = 0; ma < sizeof(PTY_MAJOR) - 1; ma++) \
99 for (mi = 0; mi < sizeof(PTY_MINOR) - 1; mi++)
100#define PTY_NAME_SPRINTF \
101 sprintf (ptyname, "/dev/pty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]);
102#define PTY_TTY_NAME_SPRINTF \
103 sprintf (ptyname, "/dev/tty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]);
diff --git a/src/m/tandem-s2.h b/src/m/tandem-s2.h
new file mode 100644
index 00000000000..7c31225a413
--- /dev/null
+++ b/src/m/tandem-s2.h
@@ -0,0 +1,24 @@
1/* machine description file for the Tandem Integrity S2. */
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="usg5-3" */
8
9/* This overrides some of the usual support for the mips and system V.3. */
10
11/* The S2 does not know about utimes() */
12#define USE_UTIME
13
14/* The operating system apparently defines TIOCGETC
15 but it doesn't work. */
16#undef BROKEN_TIOCGETC
17
18/* rs@ai.mit.edu said this was necessary for it to work. However, some
19 user of this machine ought to try to get subprocesses to work. */
20#undef subprocesses
21
22/* Correct some library file names. */
23#define START_FILES pre-crt0.o /usr/lib/crt1.o1.31
24#define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o1.31
diff --git a/src/s/386-ix.h b/src/s/386-ix.h
new file mode 100644
index 00000000000..5f764563e84
--- /dev/null
+++ b/src/s/386-ix.h
@@ -0,0 +1,20 @@
1/* Interactive 386/ix. */
2
3#include "usg5-3.h"
4
5#define HAVE_SELECT
6
7#define BROKEN_TIOCGETC
8
9/* There are some reports that the following is needed
10 with some version of this system.
11#undef LIBX11_SYSTEM
12#define LIBX11_SYSTEM -linet
13
14#define HAVE_TIMEVAL
15#define USE_UTIME
16*/
17
18/* This is said to be needed as a result of having _insque rather
19 than insque in -loldX. This may not always be the right thing. */
20#define WRONG_NAME_INSQUE
diff --git a/src/s/bsd4-1.h b/src/s/bsd4-1.h
new file mode 100644
index 00000000000..6a4d8408dd9
--- /dev/null
+++ b/src/s/bsd4-1.h
@@ -0,0 +1,149 @@
1/* Definitions file for GNU Emacs running on bsd 4.1.
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#define BSD4_1
27
28#define BSD
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 "berkeley-unix"
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 1: do input buffering within Emacs */
42
43#define INTERRUPT_INPUT
44
45/* First pty name is /dev/ptyp0. */
46
47#define FIRST_PTY_LETTER 'p'
48
49/*
50 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
51 * Look in <sys/time.h> for a timeval structure.
52 */
53
54#undef HAVE_TIMEVAL
55
56/*
57 * Define HAVE_SELECT if the system supports the `select' system call.
58 */
59
60/* #define HAVE_SELECT */
61
62/*
63 * Define HAVE_PTYS if the system supports pty devices.
64 */
65
66/* #define HAVE_PTYS */
67
68/* Define this macro if system defines a type `union wait'. */
69
70#define HAVE_UNION_WAIT
71
72/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
73
74/* #define HAVE_SOCKETS */
75
76/*
77 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
78 * The 4.2 opendir, etc., library functions.
79 */
80
81#define NONSYSTEM_DIR_LIBRARY
82
83/* Define this symbol if your system has the functions bcopy, etc. */
84
85/* #define BSTRING */
86
87/* subprocesses should be defined if you want to
88 have code for asynchronous subprocesses
89 (as used in M-x compile and M-x shell).
90 This is generally OS dependent, and not supported
91 under most USG systems. */
92
93#define subprocesses
94
95/* If your system uses COFF (Common Object File Format) then define the
96 preprocessor symbol "COFF". */
97
98/* #define COFF */
99
100/* define MAIL_USE_FLOCK if the mailer uses flock
101 to interlock access to /usr/spool/mail/$USER.
102 The alternative is that a lock file named
103 /usr/spool/mail/$USER.lock. */
104
105/* #define MAIL_USE_FLOCK */
106
107/* Define CLASH_DETECTION if you want lock files to be written
108 so that Emacs can tell instantly when you try to modify
109 a file that someone else has modified in his Emacs. */
110
111#undef CLASH_DETECTION /* Might work; not tried yet. */
112
113/* We use the Berkeley (and usg5.2.2) interface to nlist. */
114
115#define NLIST_STRUCT
116
117/* The file containing the kernel's symbol table is called /vmunix. */
118
119#define KERNEL_FILE "/vmunix"
120
121/* The symbol in the kernel where the load average is found
122 is named _avenrun. */
123
124#define LDAV_SYMBOL "_avenrun"
125
126/* Special hacks needed to make Emacs run on this system. */
127
128/* Make the function `signal' act as in 4.2. */
129
130#define signal sigset
131
132#define _longjmp longjmp
133#define _setjmp setjmp
134
135#define lstat stat
136
137/* sys_open handles the necessary 4.2 features for open. */
138
139#define open sys_open
140
141/* Names of flags for open. */
142#define O_RDONLY 0
143#define O_WRONLY 1
144#define O_RDWR 2
145#define O_EXCL 2000
146#define O_CREAT 1000
147
148/* Special library needed for linking for 4.1. */
149#define LIBS_SYSTEM -ljobs
diff --git a/src/s/bsd4-2.h b/src/s/bsd4-2.h
new file mode 100644
index 00000000000..ea9334c520c
--- /dev/null
+++ b/src/s/bsd4-2.h
@@ -0,0 +1,128 @@
1/* Definitions file for GNU Emacs running on bsd 4.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/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#ifndef BSD4_2
27#define BSD4_2
28#endif /* BSD4_2 */
29
30#ifndef BSD
31#define BSD
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/* Default is to set interrupt_input to 1: do input buffering within Emacs */
46
47#define INTERRUPT_INPUT
48
49/* First pty name is /dev/ptyp0. */
50
51#define FIRST_PTY_LETTER 'p'
52
53/*
54 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
55 * Look in <sys/time.h> for a timeval structure.
56 */
57
58#define HAVE_TIMEVAL
59
60/*
61 * Define HAVE_SELECT if the system supports the `select' system call.
62 */
63
64#define HAVE_SELECT
65
66/*
67 * Define HAVE_PTYS if the system supports pty devices.
68 */
69
70#define HAVE_PTYS
71
72/* Define this macro if system defines a type `union wait'. */
73
74#define HAVE_UNION_WAIT
75
76/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
77
78#define HAVE_SOCKETS
79
80/*
81 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
82 * The 4.2 opendir, etc., library functions.
83 */
84
85/* #define NONSYSTEM_DIR_LIBRARY */
86
87/* Define this symbol if your system has the functions bcopy, etc. */
88
89#define BSTRING
90
91/* subprocesses should be defined if you want to
92 have code for asynchronous subprocesses
93 (as used in M-x compile and M-x shell).
94 This is generally OS dependent, and not supported
95 under most USG systems. */
96
97#define subprocesses
98
99/* If your system uses COFF (Common Object File Format) then define the
100 preprocessor symbol "COFF". */
101
102/* #define COFF */
103
104/* define MAIL_USE_FLOCK if the mailer uses flock
105 to interlock access to /usr/spool/mail/$USER.
106 The alternative is that a lock file named
107 /usr/spool/mail/$USER.lock. */
108
109/* #define MAIL_USE_FLOCK */
110
111/* Define CLASH_DETECTION if you want lock files to be written
112 so that Emacs can tell instantly when you try to modify
113 a file that someone else has modified in his Emacs. */
114
115#define CLASH_DETECTION
116
117/* We use the Berkeley (and usg5.2.2) interface to nlist. */
118
119#define NLIST_STRUCT
120
121/* The file containing the kernel's symbol table is called /vmunix. */
122
123#define KERNEL_FILE "/vmunix"
124
125/* The symbol in the kernel where the load average is found
126 is named _avenrun. */
127
128#define LDAV_SYMBOL "_avenrun"
diff --git a/src/s/dgux.h b/src/s/dgux.h
new file mode 100644
index 00000000000..4759395d4d1
--- /dev/null
+++ b/src/s/dgux.h
@@ -0,0 +1,254 @@
1/* Definitions file for GNU Emacs running on Data General's DG/UX
2 version 4.32 and above.
3 Copyright (C) 1985, 1986, 1991 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 UNIPLUS */
28/* #define USG5 */
29/* #define USG */
30/* #define HPUX */
31/* #define UMAX */
32/* #define BSD4_1 */
33#define BSD4_2
34#define BSD4_3
35#define BSD
36/* #define VMS */
37
38/* SYSTEM_TYPE should indicate the kind of system you are using.
39 It sets the Lisp variable system-type. */
40
41#define SYSTEM_TYPE "dgux-unix"
42
43/* NOMULTIPLEJOBS should be defined if your system's shell
44 does not have "job control" (the ability to stop a program,
45 run some other program, then continue the first one). */
46
47/* #define NOMULTIPLEJOBS */
48
49/* Emacs can read input using SIGIO and buffering characters itself,
50 or using CBREAK mode and making C-g cause SIGINT.
51 The choice is controlled by the variable interrupt_input.
52 Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
53
54 SIGIO can be used only on systems that implement it (4.2 and 4.3).
55 CBREAK mode has two disadvatages
56 1) At least in 4.2, it is impossible to handle the Meta key properly.
57 I hear that in system V this problem does not exist.
58 2) Control-G causes output to be discarded.
59 I do not know whether this can be fixed in system V.
60
61 Another method of doing input is planned but not implemented.
62 It would have Emacs fork off a separate process
63 to read the input and send it to the true Emacs process
64 through a pipe.
65*/
66
67#define INTERRUPT_INPUT
68
69/* Letter to use in finding device name of first pty,
70 if system supports pty's. 'a' means it is /dev/ptya0 */
71
72#define FIRST_PTY_LETTER 'r'
73
74/*
75 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
76 * Look in <sys/time.h> for a timeval structure.
77 */
78
79#define HAVE_TIMEVAL
80
81/*
82 * Define HAVE_SELECT if the system supports the `select' system call.
83 */
84
85#define HAVE_SELECT
86
87/*
88 * Define HAVE_SOCKETS if the system supports sockets.
89 */
90
91#define HAVE_SOCKETS
92
93/*
94 * Define HAVE_PTYS if the system supports pty devices.
95 */
96
97#define HAVE_PTYS
98
99/*
100 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
101 * The 4.2 opendir, etc., library functions.
102 */
103
104/* #define NONSYSTEM_DIR_LIBRARY */
105
106/* Define this symbol if your system has the functions bcopy, etc. */
107
108#define BSTRING
109
110/* subprocesses should be defined if you want to
111 have code for asynchronous subprocesses
112 (as used in M-x compile and M-x shell).
113 This is generally OS dependent, and not supported
114 under most USG systems. */
115
116#define subprocesses
117
118/* If your system uses COFF (Common Object File Format) then define the
119 preprocessor symbol "COFF". */
120
121#define COFF
122
123/* define MAIL_USE_FLOCK if the mailer uses flock
124 to interlock access to /usr/spool/mail/$USER.
125 The alternative is that a lock file named
126 /usr/spool/mail/$USER.lock. */
127
128/* #define MAIL_USE_FLOCK */
129
130/* Define CLASH_DETECTION if you want lock files to be written
131 so that Emacs can tell instantly when you try to modify
132 a file that someone else has modified in his Emacs. */
133
134/* #define CLASH_DETECTION */
135
136/* Define a replacement for the baud rate switch, since DG/UX uses a different
137 from BSD. */
138
139#define BAUD_CONVERT { 0, 110, 134, 150, 300, 600, 1200, 1800, 2400, \
140 4800, 9600, 19200, 38400 }
141
142/*
143 * Define HAVE_GETTIMEOFDAY if gettimeofday() system call is available.
144 */
145
146#define HAVE_GETTIMEOFDAY
147
148/*
149 * Define NLIST_STRUCT if the system has nlist.h
150 */
151
152#define NLIST_STRUCT
153
154/*
155 * Make WM Interface Compliant.
156 */
157
158#define XICCC
159
160/* Here, on a separate page, add any special hacks needed
161 to make Emacs work on this system. For example,
162 you might define certain system call names that don't
163 exist on your system, or that do different things on
164 your system and must be used only through an encapsulation
165 (Which you should place, by convention, in sysdep.c). */
166
167/* Some compilers tend to put everything declared static
168 into the initialized data area, which becomes pure after dumping Emacs.
169 On these systems, you must #define static as nothing to foil this.
170 Note that emacs carefully avoids static vars inside functions. */
171
172/* #define static */
173
174/* DG/UX SPECIFIC ADDITIONS TO TEMPLATE FOLLOW: */
175
176/* Use the Berkeley flavors of the library routines, instead of System V. */
177
178#define setpgrp(pid,pgrp) setpgrp2(pid,pgrp)
179#define getpgrp(pid) getpgrp2(pid)
180
181/* Act like Berkeley. */
182
183#define _setjmp(env) sigsetjmp(env,0)
184#define _longjmp(env,val) longjmp(env,val)
185
186/* Use TERMINFO instead of termcap */
187
188#define TERMINFO
189
190/*
191 * Define HAVE_TERMIO if the system provides sysV-style ioctls
192 * for terminal control.
193 * DG/UX has both BSD and AT&T style ioctl's. Bsd ioctl's don't
194 * seem to wait for the output to drain properly, so use System V.
195 */
196
197/* #define HAVE_TERMIO */
198
199/*
200 * DG/UX 4.10 needs the following to turn on berkeley ioctl's.
201 */
202
203#ifndef HAVE_TERMIO
204#define _BSD_TTY_FLAVOR
205#endif
206
207/*
208 * Use a Berkeley style sys/wait.h.
209 * This makes WIF* macros operate on structures instead of ints.
210 */
211
212#define _BSD_WAIT_FLAVOR
213
214/* Enable the x-rebind keysym function. Do not try to map function
215 keys internally. */
216
217#define XREBINDKEYSYM
218
219/*
220 * Use BSD and POSIX-style signals. This is crucial!
221 */
222
223/* MAKING_MAKEFILE must be defined in "ymakefile" before including config.h */
224#ifndef MAKING_MAKEFILE
225
226/* Make sure signal.h is included so macros below don't mess with it. */
227/* DG/UX include files prevent multiple inclusion. */
228
229#include <signal.h>
230
231#define POSIX_SIGNALS
232
233/* Not worth converting the old GNU malloc to work with POSIX_SIGNALS. */
234#define SYSTEM_MALLOC
235
236/* Define this if you use System 5 Release 4 Streams */
237#define SYSV4_PTYS
238#define open sys_open
239#define close sys_close
240#define read sys_read
241#define write sys_write
242
243#define INTERRUPTABLE_OPEN
244#define INTERRUPTABLE_CLOSE
245/* can't hurt to define these, even though read/write should auto restart */
246#define INTERRUPTABLE_IO
247
248/* Can't use sys_signal because then etc/server.c would need sysdep.o. */
249#define signal(SIG,FUNC) berk_signal(SIG,FUNC)
250
251#else /* MAKING_MAKEFILE */
252/* force gcc to be used */
253CC=gcc
254#endif /* not MAKING_MAKEFILE */
diff --git a/src/s/esix.h b/src/s/esix.h
new file mode 100644
index 00000000000..6a228590a2b
--- /dev/null
+++ b/src/s/esix.h
@@ -0,0 +1,29 @@
1/* Definitions for ESIX, a variant of v.5.3 for the 386. */
2/* These are based on reports for ESIX 5.3.2 D. */
3
4#include "usg5-3.h"
5
6#define HAVE_TIMEVAL
7
8/* Some versions of V.3 have this, but not all. ESIX does. */
9#define HAVE_PTYS
10#define SYSV_PTYS
11
12/* Have -lg be used for debugging. */
13#undef LIBS_DEBUG
14#define LIBS_DEBUG -lg
15
16/* If using Roell's X server, define X11R4 */
17#ifdef X11R4 /* Roell's X server */
18#define HAVE_GETTIMEOFDAY /* Thomas Roell's X11R4 lib defines gettimeofday */
19#define select sys_select /* Emacs select() not good enough? */
20#undef LIBX11_SYSTEM
21#define LIBX11_SYSTEM -lpt
22#endif /* X11R4 */
23
24/* ESIX does not need <sys/sioctl.h>, but needs <sys/ptem.h> */
25#define NO_SIOCTL_H
26#define NEED_PTEM_H
27#define USG_SYS_TIME
28#define USE_UTIME
29#define BROKEN_FIONREAD
diff --git a/src/s/iris3-5.h b/src/s/iris3-5.h
new file mode 100644
index 00000000000..20a36caa32a
--- /dev/null
+++ b/src/s/iris3-5.h
@@ -0,0 +1,196 @@
1/* Definitions file for GNU Emacs running on Silicon Graphics 3.5
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
145/* The IRIS defines SIGIO in signal.h, but doesn't implement it. */
146#undef SIGIO
147
148#define LIBS_MACHINE -lbsd -ldbm -lPW
149#define C_SWITCH_MACHINE -I/usr/include/bsd
150
151/* setjmp and longjmp can safely replace _setjmp and _longjmp,
152 but they will run slower. */
153
154#define _setjmp setjmp
155#define _longjmp longjmp
156
157/* On USG systems the system calls are interruptable by signals
158 that the user program has elected to catch. Thus the system call
159 must be retried in these cases. To handle this without massive
160 changes in the source code, we remap the standard system call names
161 to names for our own functions in sysdep.c that do the system call
162 with retries. */
163
164#define read sys_read
165#define open sys_open
166#define write sys_write
167
168#define INTERRUPTIBLE_OPEN
169#define INTERRUPTIBLE_IO
170
171/* On USG systems these have different names */
172
173#define index strchr
174#define rindex strrchr
175
176/* USG systems tend to put everything declared static
177 into the initialized data area, which becomes pure after dumping Emacs.
178 Foil this. Emacs carefully avoids static vars inside functions. */
179
180/* #define static */
181
182/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
183
184#define ADDR_CORRECT(x) (int)((char *)(x) - (char*)0)
185
186/* some errno.h's don't actually allocate the variable itself */
187
188#define NEED_ERRNO
189
190/* The symbol FIONREAD is defined, but the feature does not work. */
191
192#define BROKEN_FIONREAD
193
194/* This is how to get the device name of the tty end of a pty. */
195#define PTY_TTY_NAME_SPRINTF \
196 sprintf (ptyname, "/dev/ttyq%d", minor (stb.st_rdev));
diff --git a/src/s/irix3-3.h b/src/s/irix3-3.h
new file mode 100644
index 00000000000..02a0cbdc070
--- /dev/null
+++ b/src/s/irix3-3.h
@@ -0,0 +1,175 @@
1/* Definitions file for GNU Emacs running on Silicon Graphics Irix system 3.3.
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/*
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 /unix. */
126
127#define KERNEL_FILE "/unix"
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/* setjmp and longjmp can safely replace _setjmp and _longjmp,
136 but they will run slower. */
137
138#define _setjmp setjmp
139#define _longjmp longjmp
140
141/* On USG systems the system calls are interruptable by signals
142 that the user program has elected to catch. Thus the system call
143 must be retried in these cases. To handle this without massive
144 changes in the source code, we remap the standard system call names
145 to names for our own functions in sysdep.c that do the system call
146 with retries. */
147
148#define read sys_read
149#define open sys_open
150#define write sys_write
151
152#define INTERRUPTIBLE_OPEN
153#define INTERRUPTIBLE_IO
154
155/* On USG systems these have different names */
156
157#define index strchr
158#define rindex strrchr
159
160/* USG systems tend to put everything declared static
161 into the initialized data area, which becomes pure after dumping Emacs.
162 Foil this. Emacs carefully avoids static vars inside functions. */
163
164/* #define static */
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/ttyq%d", minor (stb.st_rdev));
169
170
171/* getwd is defined. */
172
173#define HAVE_GETWD
174
175#define HAVE_SYSVIPC
diff --git a/src/s/sunos4-0.h b/src/s/sunos4-0.h
new file mode 100644
index 00000000000..5c949bba673
--- /dev/null
+++ b/src/s/sunos4-0.h
@@ -0,0 +1,14 @@
1#include "bsd4-2.h"
2
3#if 0 /* This may have been needed for an earlier version of Sun OS 4.
4 It seems to cause warnings in 4.0.3 and 4.1. */
5#define O_NDELAY FNDELAY /* Non-blocking I/O (4.2 style) */
6#endif
7
8#define LD_SWITCH_SYSTEM -e __start -Bstatic
9
10/* In SunOS 4.1, a static function called by tzsetwall reportedly
11 clears the byte just past an eight byte region it mallocs, corrupting
12 GNU malloc's memory pool. But Sun's malloc doesn't seem to mind. */
13
14#define SYSTEM_MALLOC
diff --git a/src/s/sunos4-1.h b/src/s/sunos4-1.h
new file mode 100644
index 00000000000..3e243e550e7
--- /dev/null
+++ b/src/s/sunos4-1.h
@@ -0,0 +1,12 @@
1#include "sunos4-0.h"
2
3/* 4.1.1 makes these system calls interruptable. */
4
5#define read sys_read
6#define write sys_write
7#define open sys_open
8#define close sys_close
9
10#define INTERRUPTIBLE_OPEN
11#define INTERRUPTIBLE_CLOSE
12#define INTERRUPTIBLE_IO
diff --git a/src/s/umax.h b/src/s/umax.h
new file mode 100644
index 00000000000..a67f15c22e1
--- /dev/null
+++ b/src/s/umax.h
@@ -0,0 +1,178 @@
1/* Definitions file for GNU Emacs running on UMAX 4.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/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26/* #define UNIPLUS */
27/* #define USG5 */
28/* #define USG */
29/* #define BSD4_1 */
30#define BSD4_2
31/* #define BSD4_3 */
32#define BSD
33#define UMAX4_2
34#define UMAX
35/* #define VMS */
36
37/* SYSTEM_TYPE should indicate the kind of system you are using.
38 It sets the Lisp variable system-type. */
39
40#define SYSTEM_TYPE "berkeley-unix"
41
42/* NOMULTIPLEJOBS should be defined if your system's shell
43 does not have "job control" (the ability to stop a program,
44 run some other program, then continue the first one). */
45
46/* #define NOMULTIPLEJOBS */
47
48/* Emacs can read input using SIGIO and buffering characters itself,
49 or using CBREAK mode and making C-g cause SIGINT.
50 The choice is controlled by the variable interrupt_input.
51 Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
52
53 SIGIO can be used only on systems that implement it (4.2 and 4.3).
54 CBREAK mode has two disadvatages
55 1) At least in 4.2, it is impossible to handle the Meta key properly.
56 I hear that in system V this problem does not exist.
57 2) Control-G causes output to be discarded.
58 I do not know whether this can be fixed in system V.
59
60 Another method of doing input is planned but not implemented.
61 It would have Emacs fork off a separate process
62 to read the input and send it to the true Emacs process
63 through a pipe.
64*/
65
66#define INTERRUPT_INPUT
67
68/* Letter to use in finding device name of first pty,
69 if system supports pty's. 'a' means it is /dev/ptya0 */
70
71#define FIRST_PTY_LETTER 'p'
72
73/*
74 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
75 * Look in <sys/time.h> for a timeval structure.
76 */
77
78#define HAVE_TIMEVAL
79
80/*
81 * Define HAVE_SELECT if the system supports the `select' system call.
82 */
83
84#define HAVE_SELECT
85
86/*
87 * Define HAVE_PTYS if the system supports pty devices.
88 */
89
90#define HAVE_PTYS
91
92/* Define this macro if system defines a type `union wait'. */
93
94#define HAVE_UNION_WAIT
95
96/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
97
98#define HAVE_SOCKETS
99
100/*
101 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
102 * The 4.2 opendir, etc., library functions.
103 */
104
105/* #define NONSYSTEM_DIR_LIBRARY */
106
107/* Define this symbol if your system has the functions bcopy, etc. */
108
109#define BSTRING
110
111/* subprocesses should be defined if you want to
112 have code for asynchronous subprocesses
113 (as used in M-x compile and M-x shell).
114 This is generally OS dependent, and not supported
115 under most USG systems. */
116
117#define subprocesses
118
119/* If your system uses COFF (Common Object File Format) then define the
120 preprocessor symbol "COFF". */
121
122#define COFF
123
124/* define MAIL_USE_FLOCK if the mailer uses flock
125 to interlock access to /usr/spool/mail/$USER.
126 The alternative is that a lock file named
127 /usr/spool/mail/$USER.lock. */
128
129#define MAIL_USE_FLOCK
130
131/* Define CLASH_DETECTION if you want lock files to be written
132 so that Emacs can tell instantly when you try to modify
133 a file that someone else has modified in his Emacs. */
134
135#define CLASH_DETECTION
136
137/* We use the Berkeley (and usg5.2.2) interface to nlist. */
138
139#define NLIST_STRUCT
140
141/* The file containing the kernel's symbol table is called /vmunix. */
142
143#define KERNEL_FILE "/vmunix"
144
145/* The symbol in the kernel where the load average is found
146 is named _avenrun. */
147
148#define LDAV_SYMBOL "_avenrun"
149
150/* Here, on a separate page, add any special hacks needed
151 to make Emacs work on this system. For example,
152 you might define certain system call names that don't
153 exist on your system, or that do different things on
154 your system and must be used only through an encapsulation
155 (Which you should place, by convention, in sysdep.c). */
156
157/* Specify alignment requirement for start of text and data sections
158 in the executable file. */
159
160#define SECTION_ALIGNMENT pagemask
161
162
163#define SEGMENT_MASK (64 * 1024 - 1)
164
165
166/* crt0.c needs this for compilation because it uses asm. */
167
168#define C_SWITCH_ASM -q nodirect_code
169
170/* Encore machines with APC processor boards align sections on 4M
171 boundaries, so it is not easy to remap the start of the text segment
172 in the unexec() routine. For them you need the following two lines.
173 For DPC processors you can enable these or not, as you wish, but
174 you will get better performance without them. */
175
176/* #define NO_REMAP
177 #define TEXT_START 0
178*/
diff --git a/src/s/umips.h b/src/s/umips.h
new file mode 100644
index 00000000000..5aea3439dac
--- /dev/null
+++ b/src/s/umips.h
@@ -0,0 +1,77 @@
1/* Definitions file for GNU Emacs running on Mips operating system.
2 That system can emulate either BSD or Sys V, in either case with changes.
3 If BSD is defined, we assume BSD is being emulated; otherwise, Sys V. */
4
5#ifdef BSD
6#include "bsd4-3.h"
7
8#define C_SWITCH_SYSTEM -systype bsd43
9#define LD_SWITCH_SYSTEM -systype bsd43
10#define LIBS_SYSTEM -lmld
11#define LIBS_DEBUG
12#define START_FILES pre-crt0.o /lib/crt1.o
13#define LIB_STANDARD -lc /usr/lib/crtn.o
14
15#define COFF
16#define TERMINFO
17#undef MAIL_USE_FLOCK /* Someone should check this. */
18#undef HAVE_UNION_WAIT
19
20#else /* not BSD */
21
22#include "usg5-2-2.h"
23
24#define LIBS_SYSTEM -lmld
25#define LIBS_DEBUG
26#define START_FILES pre-crt0.o /usr/lib/crt1.o
27#define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o
28/* #define LIBS_TERMCAP -lcurses */
29
30#define C_SWITCH_SYSTEM -I/usr/include/bsd
31
32/* Cancel certain parts of standard sysV support. */
33#undef NONSYSTEM_DIR_LIBRARY
34#define SYSV_SYSTEM_DIR
35#undef static
36
37/* Don't try to use SIGIO or FIONREAD even though they are defined. */
38#undef SIGIO
39#define BROKEN_FIONREAD
40
41/* Describe special kernel features. */
42
43#define HAVE_SYSVIPC
44
45#define HAVE_TIMEVAL
46#if defined(emacs)
47#include <bsd/sys/time.h>
48#endif
49
50/* #define HAVE_SELECT
51 The `select' in the system won't work for pipes,
52 so don't use it. */
53
54#define HAVE_DUP2
55#define HAVE_GETWD
56#define HAVE_GETTIMEOFDAY
57
58#define HAVE_PTYS
59#define HAVE_SOCKETS
60/* #define BSTRING Supposedly removed. */
61
62#undef NOMULTIPLEJOBS
63
64#define CLASH_DETECTION
65
66#if defined(HAVE_X_WINDOWS) && defined(HAVE_X11)
67#define HAVE_VFORK /* Graciously provided by libX.a */
68#endif
69
70#define utimes utime /* Someone should check this. */
71/* ??? */
72#define IRIS
73
74#endif /* not BSD */
75
76/* High order bit must be stripped off nlist return values */
77#define FIXUP_KERNEL_SYMBOL_ADDR(NL) (NL)[0].n_value &= 0x7fffffff;
diff --git a/src/s/unipl5-0.h b/src/s/unipl5-0.h
new file mode 100644
index 00000000000..3df79561fb4
--- /dev/null
+++ b/src/s/unipl5-0.h
@@ -0,0 +1,192 @@
1/* Definitions file for GNU Emacs running on UniSoft's UniPlus 5.0
2 Support for this system is not finished; don't expect this to work.
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 UNIPLUS
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 "unisoft-unix"
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/* #define NOMULTIPLEJOBS */
43
44/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
45
46/* #define INTERRUPT_INPUT */
47
48/* Letter to use in finding device name of first pty,
49 if system supports pty's. 'a' means it is /dev/ptya0 */
50
51/* #define FIRST_PTY_LETTER 'a' */
52
53/*
54 * Define HAVE_TERMIO if the system provides sysV-style ioctls
55 * for terminal control.
56 */
57
58#define HAVE_TERMIO
59
60/*
61 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
62 * Look in <sys/time.h> for a timeval structure.
63 */
64
65/* #define HAVE_TIMEVAL */
66
67/*
68 * Define HAVE_SELECT if the system supports the `select' system call.
69 */
70
71/* #define HAVE_SELECT */
72
73/*
74 * Define HAVE_PTYS if the system supports pty devices.
75 */
76
77/* #define HAVE_PTYS */
78
79/* Define this macro if system defines a type `union wait'. */
80
81#define HAVE_UNION_WAIT
82
83/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
84
85/* #define HAVE_SOCKETS */
86
87/*
88 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
89 * The 4.2 opendir, etc., library functions.
90 */
91
92#define NONSYSTEM_DIR_LIBRARY
93
94/* Define this symbol if your system has the functions bcopy, etc. */
95
96/* #define BSTRING */
97
98/* subprocesses should be defined if you want to
99 have code for asynchronous subprocesses
100 (as used in M-x compile and M-x shell).
101 This is generally OS dependent, and not supported
102 under most USG systems. */
103
104/* #define subprocesses */
105
106/* If your system uses COFF (Common Object File Format) then define the
107 preprocessor symbol "COFF". */
108
109/* #define COFF */
110
111/* define MAIL_USE_FLOCK if the mailer uses flock
112 to interlock access to /usr/spool/mail/$USER.
113 The alternative is that a lock file named
114 /usr/spool/mail/$USER.lock. */
115
116/* #define MAIL_USE_FLOCK */
117
118/* Define CLASH_DETECTION if you want lock files to be written
119 so that Emacs can tell instantly when you try to modify
120 a file that someone else has modified in his Emacs. */
121
122/* #define CLASH_DETECTION */
123
124/* Define SHORTNAMES if the C compiler can distinguish only
125 short names. It means that the stuff in ../shortnames
126 must be run to convert the long names to short ones.
127
128 Some USG systems support long names.
129 If yours is one, DO NOT change this file!
130 Do #undef SHORTNAMES in the m- file or in config.h. */
131
132#define SHORTNAMES
133
134/* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */
135
136/* #define NLIST_STRUCT */
137
138/* The file containing the kernel's symbol table is called /unix. */
139
140#define KERNEL_FILE "/unix"
141
142/* The symbol in the kernel where the load average is found
143 is named avenrun. */
144
145#define LDAV_SYMBOL "avenrun"
146
147/* Special hacks needed to make Emacs run on this system. */
148
149/*
150 * Make the sigsetmask function go away. Don't know what the
151 * ramifications of this are, but doesn't seem possible to
152 * emulate it properly anyway at this point.
153 */
154
155#define sigsetmask(mask) /* Null expansion */
156
157/* setjmp and longjmp can safely replace _setjmp and _longjmp,
158 but they will run slower. */
159
160#define _setjmp setjmp
161#define _longjmp longjmp
162
163/* On USG systems the system calls are interruptable by signals
164 that the user program has elected to catch. Thus the system call
165 must be retried in these cases. To handle this without massive
166 changes in the source code, we remap the standard system call names
167 to names for our own functions in sysdep.c that do the system call
168 with retries. */
169
170#define read sys_read
171#define open sys_open
172#define write sys_write
173
174#define INTERRUPTIBLE_OPEN
175#define INTERRUPTIBLE_IO
176
177/* On USG systems these have different names */
178
179#define index strchr
180#define rindex strrchr
181
182/* Compiler bug bites when default ADDR_CORRECT is used. */
183
184#define ADDR_CORRECT(x) (x)
185
186/* Special library needed for linking for Uniplus */
187
188#define LIBS_SYSTEM -lnet
189
190/* A system-specific loader switch is needed. */
191
192#define LD_SWITCH_SYSTEM -N -L/lib/libg /usr/lib/unshared.ld
diff --git a/src/s/unipl5-2.h b/src/s/unipl5-2.h
new file mode 100644
index 00000000000..6850f8d55c9
--- /dev/null
+++ b/src/s/unipl5-2.h
@@ -0,0 +1,186 @@
1/* Definitions file for GNU Emacs running on UniSoft's UniPlus 5.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/*
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#define UNIPLUS
31
32/* SYSTEM_TYPE should indicate the kind of system you are using.
33 It sets the Lisp variable system-type. */
34
35#define SYSTEM_TYPE "unisoft-unix"
36
37/* nomultiplejobs should be defined if your system's shell
38 does not have "job control" (the ability to stop a program,
39 run some other program, then continue the first one). */
40
41/* #define NOMULTIPLEJOBS */
42
43/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
44
45/* #define INTERRUPT_INPUT */
46
47/* Letter to use in finding device name of first pty,
48 if system supports pty's. 'p' means it is /dev/ptyp0 */
49
50#define FIRST_PTY_LETTER 'p'
51
52/*
53 * Define HAVE_TERMIO if the system provides sysV-style ioctls
54 * for terminal control.
55 */
56
57#define HAVE_TERMIO
58
59/*
60 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
61 * Look in <sys/time.h> for a timeval structure.
62 */
63
64#define HAVE_TIMEVAL
65
66/*
67 * Define HAVE_SELECT if the system supports the `select' system call.
68 */
69
70#define HAVE_SELECT
71
72/*
73 * Define HAVE_PTYS if the system supports pty devices.
74 */
75
76#define HAVE_PTYS
77
78/* Define this macro if system defines a type `union wait'. */
79
80#define HAVE_UNION_WAIT
81
82/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
83
84/* #define HAVE_SOCKETS */
85
86/*
87 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
88 * The 4.2 opendir, etc., library functions.
89 */
90
91#define NONSYSTEM_DIR_LIBRARY
92
93/* Define this symbol if your system has the functions bcopy, etc. */
94
95/* #define BSTRING */
96
97/* subprocesses should be defined if you want to
98 have code for asynchronous subprocesses
99 (as used in M-x compile and M-x shell).
100 This is generally OS dependent, and not supported
101 under most USG systems. It is supported under UniPlus
102 System V Release 2. */
103
104#define subprocesses
105
106/* If your system uses COFF (Common Object File Format) then define the
107 preprocessor symbol "COFF". */
108
109#define COFF
110
111/* define MAIL_USE_FLOCK if the mailer uses flock
112 to interlock access to /usr/spool/mail/$USER.
113 The alternative is that a lock file named
114 /usr/spool/mail/$USER.lock. */
115
116/* #define MAIL_USE_FLOCK */
117
118/* Define CLASH_DETECTION if you want lock files to be written
119 so that Emacs can tell instantly when you try to modify
120 a file that someone else has modified in his Emacs. */
121
122/* #define CLASH_DETECTION */
123
124/* Uniplus 5.2 supports long names in C */
125
126/* #define SHORTNAMES */
127
128/* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */
129
130/* #define NLIST_STRUCT */
131
132/* The file containing the kernel's symbol table is called /unix. */
133
134#define KERNEL_FILE "/unix"
135
136/* The symbol in the kernel where the load average is found
137 is named avenrun. */
138
139#define LDAV_SYMBOL "avenrun"
140
141/* Special hacks needed to make Emacs run on this system. */
142
143/*
144 * Make the sigsetmask function go away. Don't know what the
145 * ramifications of this are, but doesn't seem possible to
146 * emulate it properly anyway at this point.
147 */
148
149#define sigsetmask(mask) /* Null expansion */
150
151/* setjmp and longjmp can safely replace _setjmp and _longjmp,
152 but they will run slower. */
153
154#define _setjmp setjmp
155#define _longjmp longjmp
156
157/* On USG systems the system calls are interruptable by signals
158 that the user program has elected to catch. Thus the system call
159 must be retried in these cases. To handle this without massive
160 changes in the source code, we remap the standard system call names
161 to names for our own functions in sysdep.c that do the system call
162 with retries. */
163
164#define read sys_read
165#define open sys_open
166#define write sys_write
167
168#define INTERRUPTIBLE_OPEN
169#define INTERRUPTIBLE_IO
170
171/* On USG systems these have different names */
172
173#define index strchr
174#define rindex strrchr
175
176/* Compiler bug bites when default ADDR_CORRECT is used. */
177
178#define ADDR_CORRECT(x) (x)
179
180/* Special library needed for linking for Uniplus */
181
182#define LIBS_SYSTEM -lnet
183
184/* A system-specific loader switch is needed. */
185
186#define LD_SWITCH_SYSTEM -N -L/lib/libg /usr/lib/unshared.ld
diff --git a/src/s/usg5-0.h b/src/s/usg5-0.h
new file mode 100644
index 00000000000..16271c8a4f3
--- /dev/null
+++ b/src/s/usg5-0.h
@@ -0,0 +1,183 @@
1/* Definitions file for GNU Emacs running on AT&T's System V.0
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#define USG /* System III, System V, etc */
27
28#define USG5
29#define USG5_0
30
31/* SYSTEM_TYPE should indicate the kind of system you are using.
32 It sets the Lisp variable system-type. */
33
34#define SYSTEM_TYPE "usg-unix-v"
35
36/* nomultiplejobs should be defined if your system's shell
37 does not have "job control" (the ability to stop a program,
38 run some other program, then continue the first one). */
39
40#define NOMULTIPLEJOBS
41
42/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
43
44/* #define INTERRUPT_INPUT */
45
46/* Letter to use in finding device name of first pty,
47 if system supports pty's. 'p' means it is /dev/ptyp0 */
48
49#define FIRST_PTY_LETTER 'p'
50
51/*
52 * Define HAVE_TERMIO if the system provides sysV-style ioctls
53 * for terminal control.
54 */
55
56#define HAVE_TERMIO
57
58/*
59 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
60 * Look in <sys/time.h> for a timeval structure.
61 */
62
63/* #define HAVE_TIMEVAL */
64
65/*
66 * Define HAVE_SELECT if the system supports the `select' system call.
67 */
68
69/* #define HAVE_SELECT */
70
71/*
72 * Define HAVE_PTYS if the system supports pty devices.
73 */
74
75/* #define HAVE_PTYS */
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 supposed to work now on system V release 2. */
96
97#define subprocesses
98
99/* If your system uses COFF (Common Object File Format) then define the
100 preprocessor symbol "COFF". */
101
102#define COFF
103
104/* define MAIL_USE_FLOCK if the mailer uses flock
105 to interlock access to /usr/spool/mail/$USER.
106 The alternative is that a lock file named
107 /usr/spool/mail/$USER.lock. */
108
109/* #define MAIL_USE_FLOCK */
110
111/* Define CLASH_DETECTION if you want lock files to be written
112 so that Emacs can tell instantly when you try to modify
113 a file that someone else has modified in his Emacs. */
114
115/* #define CLASH_DETECTION */
116
117/* Define SHORTNAMES if the C compiler can distinguish only
118 short names. It means that the stuff in ../shortnames
119 must be run to convert the long names to short ones. */
120
121#define SHORTNAMES
122
123/* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */
124
125/* #define NLIST_STRUCT */
126
127/* The file containing the kernel's symbol table is called /unix. */
128
129#define KERNEL_FILE "/unix"
130
131/* The symbol in the kernel where the load average is found
132 is named avenrun. */
133
134#define LDAV_SYMBOL "avenrun"
135
136/* Special hacks needed to make Emacs run on this system. */
137
138/*
139 * Make the sigsetmask function go away. Don't know what the
140 * ramifications of this are, but doesn't seem possible to
141 * emulate it properly anyway at this point.
142 */
143
144#define sigsetmask(mask) /* Null expansion */
145
146/* setjmp and longjmp can safely replace _setjmp and _longjmp,
147 but they will run slower. */
148
149#define _setjmp setjmp
150#define _longjmp longjmp
151
152/* On USG systems the system calls are interruptable by signals
153 that the user program has elected to catch. Thus the system call
154 must be retried in these cases. To handle this without massive
155 changes in the source code, we remap the standard system call names
156 to names for our own functions in sysdep.c that do the system call
157 with retries. */
158
159#define read sys_read
160#define open sys_open
161#define write sys_write
162
163#define INTERRUPTIBLE_OPEN
164#define INTERRUPTIBLE_IO
165
166/* On USG systems these have different names */
167
168#define index strchr
169#define rindex strrchr
170
171/* USG systems tend to put everything declared static
172 into the initialized data area, which becomes pure after dumping Emacs.
173 Foil this. Emacs carefully avoids static vars inside functions. */
174
175#define static
176
177/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
178
179#define ADDR_CORRECT(x) (x)
180
181/* Prevent -lg from being used for debugging. Not implemented? */
182
183#define LIBS_DEBUG
diff --git a/src/s/usg5-2-2.h b/src/s/usg5-2-2.h
new file mode 100644
index 00000000000..982f3e32107
--- /dev/null
+++ b/src/s/usg5-2-2.h
@@ -0,0 +1,186 @@
1/* Definitions file for GNU Emacs running on AT&T's System V Release 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/*
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/* #define HAVE_PTYS */
75
76/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
77
78/* #define HAVE_SOCKETS */
79
80/*
81 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
82 * The 4.2 opendir, etc., library functions.
83 */
84
85#define NONSYSTEM_DIR_LIBRARY
86
87/* Define this symbol if your system has the functions bcopy, etc. */
88
89/* #define BSTRING */
90
91/* subprocesses should be defined if you want to
92 have code for asynchronous subprocesses
93 (as used in M-x compile and M-x shell).
94 This is supposed to work now on system V release 2. */
95
96#define subprocesses
97
98/* If your system uses COFF (Common Object File Format) then define the
99 preprocessor symbol "COFF". */
100
101#define COFF
102
103/* define MAIL_USE_FLOCK if the mailer uses flock
104 to interlock access to /usr/spool/mail/$USER.
105 The alternative is that a lock file named
106 /usr/spool/mail/$USER.lock. */
107
108/* #define MAIL_USE_FLOCK */
109
110/* Define CLASH_DETECTION if you want lock files to be written
111 so that Emacs can tell instantly when you try to modify
112 a file that someone else has modified in his Emacs. */
113
114/* #define CLASH_DETECTION */
115
116/* Define SHORTNAMES if the C compiler can distinguish only
117 short names. It means that the stuff in ../shortnames
118 must be run to convert the long names to short ones. */
119
120/* #define SHORTNAMES */
121
122/* We use the Berkeley (and usg5.2.2) interface to nlist. */
123
124#define NLIST_STRUCT
125
126/* The file containing the kernel's symbol table is called /unix. */
127
128#define KERNEL_FILE "/unix"
129
130/* The symbol in the kernel where the load average is found
131 is named avenrun. */
132
133#define LDAV_SYMBOL "avenrun"
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
145/* setjmp and longjmp can safely replace _setjmp and _longjmp,
146 but they will run slower. */
147
148#define _setjmp setjmp
149#define _longjmp longjmp
150
151/* On USG systems the system calls are interruptable by signals
152 that the user program has elected to catch. Thus the system call
153 must be retried in these cases. To handle this without massive
154 changes in the source code, we remap the standard system call names
155 to names for our own functions in sysdep.c that do the system call
156 with retries. */
157
158#define read sys_read
159#define open sys_open
160#define write sys_write
161
162#define INTERRUPTIBLE_OPEN
163#define INTERRUPTIBLE_IO
164
165/* On USG systems these have different names */
166
167#define index strchr
168#define rindex strrchr
169
170/* USG systems tend to put everything declared static
171 into the initialized data area, which becomes pure after dumping Emacs.
172 Foil this. Emacs carefully avoids static vars inside functions. */
173
174#define static
175
176/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
177
178#define ADDR_CORRECT(x) (x)
179
180/* Prevent -lg from being used for debugging. Not implemented? */
181
182#define LIBS_DEBUG
183
184/* Use terminfo instead of termcap. */
185
186#define TERMINFO
diff --git a/src/s/usg5-2.h b/src/s/usg5-2.h
new file mode 100644
index 00000000000..46346005dfb
--- /dev/null
+++ b/src/s/usg5-2.h
@@ -0,0 +1,186 @@
1/* Definitions file for GNU Emacs running on AT&T's System V Release 2.0
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#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/* #define HAVE_PTYS */
75
76/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
77
78/* #define HAVE_SOCKETS */
79
80/*
81 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
82 * The 4.2 opendir, etc., library functions.
83 */
84
85#define NONSYSTEM_DIR_LIBRARY
86
87/* Define this symbol if your system has the functions bcopy, etc. */
88
89/* #define BSTRING */
90
91/* subprocesses should be defined if you want to
92 have code for asynchronous subprocesses
93 (as used in M-x compile and M-x shell).
94 This is supposed to work now on system V release 2. */
95
96#define subprocesses
97
98/* If your system uses COFF (Common Object File Format) then define the
99 preprocessor symbol "COFF". */
100
101#define COFF
102
103/* define MAIL_USE_FLOCK if the mailer uses flock
104 to interlock access to /usr/spool/mail/$USER.
105 The alternative is that a lock file named
106 /usr/spool/mail/$USER.lock. */
107
108/* #define MAIL_USE_FLOCK */
109
110/* Define CLASH_DETECTION if you want lock files to be written
111 so that Emacs can tell instantly when you try to modify
112 a file that someone else has modified in his Emacs. */
113
114/* #define CLASH_DETECTION */
115
116/* Define SHORTNAMES if the C compiler can distinguish only
117 short names. It means that the stuff in ../shortnames
118 must be run to convert the long names to short ones. */
119
120/* #define SHORTNAMES */
121
122/* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */
123
124/* #define NLIST_STRUCT */
125
126/* The file containing the kernel's symbol table is called /unix. */
127
128#define KERNEL_FILE "/unix"
129
130/* The symbol in the kernel where the load average is found
131 is named avenrun. */
132
133#define LDAV_SYMBOL "avenrun"
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
145/* setjmp and longjmp can safely replace _setjmp and _longjmp,
146 but they will run slower. */
147
148#define _setjmp setjmp
149#define _longjmp longjmp
150
151/* On USG systems the system calls are interruptable by signals
152 that the user program has elected to catch. Thus the system call
153 must be retried in these cases. To handle this without massive
154 changes in the source code, we remap the standard system call names
155 to names for our own functions in sysdep.c that do the system call
156 with retries. */
157
158#define read sys_read
159#define open sys_open
160#define write sys_write
161
162#define INTERRUPTIBLE_OPEN
163#define INTERRUPTIBLE_IO
164
165/* On USG systems these have different names */
166
167#define index strchr
168#define rindex strrchr
169
170/* USG systems tend to put everything declared static
171 into the initialized data area, which becomes pure after dumping Emacs.
172 Foil this. Emacs carefully avoids static vars inside functions. */
173
174#define static
175
176/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
177
178#define ADDR_CORRECT(x) (x)
179
180/* Prevent -lg from being used for debugging. Not implemented? */
181
182#define LIBS_DEBUG
183
184/* Use terminfo instead of termcap. */
185
186#define TERMINFO
diff --git a/src/s/vms.h b/src/s/vms.h
new file mode 100644
index 00000000000..ad2df144c64
--- /dev/null
+++ b/src/s/vms.h
@@ -0,0 +1,230 @@
1/* system description header for VMS
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 * Define symbols to identify the version of Unix this is.
22 * Define all the symbols that apply correctly.
23 */
24
25#ifndef VMS /* Decus cpp doesn't define this but VAX C does */
26#define VMS
27#endif /* VMS */
28/* Note that this file is used indirectly via vms4-0.h, or some other
29 such file. These other files define a symbol VMS4_0, VMS4_2, etc. */
30
31/* SYSTEM_TYPE should indicate the kind of system you are using.
32 It sets the Lisp variable system-type. */
33
34#define SYSTEM_TYPE "vax-vms"
35
36/* NOMULTIPLEJOBS should be defined if your system's shell
37 does not have "job control" (the ability to stop a program,
38 run some other program, then continue the first one). */
39
40/* #define NOMULTIPLEJOBS */
41
42/* INTERRUPT_INPUT controls a default for Unix systems.
43 VMS uses a separate mechanism. */
44
45/* #define INTERRUPT_INPUT */
46
47/* Letter to use in finding device name of first pty,
48 if system supports pty's. 'a' means it is /dev/ptya0 */
49
50#define FIRST_PTY_LETTER 'a'
51
52/*
53 * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
54 * Look in <sys/time.h> for a timeval structure.
55 */
56
57/* #define HAVE_TIMEVAL */
58
59/*
60 * Define HAVE_SELECT if the system supports the `select' system call.
61 */
62
63/* #define HAVE_SELECT */
64
65/*
66 * Define HAVE_PTYS if the system supports pty devices.
67 */
68
69/* #define HAVE_PTYS */
70
71/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
72
73/* #define HAVE_SOCKETS */
74
75/*
76 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
77 * The 4.2 opendir, etc., library functions.
78 */
79
80#define NONSYSTEM_DIR_LIBRARY
81
82/* Define this symbol if your system has the functions bcopy, etc. */
83
84/* #define BSTRING */
85
86/* subprocesses should be defined if you want to
87 have code for asynchronous subprocesses
88 (as used in M-x compile and M-x shell).
89 This is generally OS dependent, and not supported
90 under most USG systems. */
91
92#define subprocesses
93
94/* If your system uses COFF (Common Object File Format) then define the
95 preprocessor symbol "COFF". */
96
97/* #define COFF */
98
99/* define MAIL_USE_FLOCK if the mailer uses flock
100 to interlock access to /usr/spool/mail/$USER.
101 The alternative is that a lock file named
102 /usr/spool/mail/$USER.lock. */
103
104/* #define MAIL_USE_FLOCK */
105
106/* Define CLASH_DETECTION if you want lock files to be written
107 so that Emacs can tell instantly when you try to modify
108 a file that someone else has modified in his Emacs. */
109
110/* #define CLASH_DETECTION */
111
112/* Define the maximum record length for print strings, if needed. */
113
114#define MAX_PRINT_CHARS 300
115
116
117/* Here, on a separate page, add any special hacks needed
118 to make Emacs work on this system. For example,
119 you might define certain system call names that don't
120 exist on your system, or that do different things on
121 your system and must be used only through an encapsulation
122 (Which you should place, by convention, in sysdep.c). */
123
124/* Do you have the shareable library bug? If you link with a shareable
125 library that contains psects with the NOSHR attribute and also refer to
126 those psects in your program, the linker give you a private version of
127 the psect which is not related to the version used by the shareable
128 library. The end result is that your references to variables in that
129 psect have absolutely nothing to do with library references to what is
130 supposed to be the same variable. If you intend to link with the standard
131 C library (NOT the shareable one) you don't need to define this. (This
132 is NOT fixed in V4.4...) */
133
134#define SHAREABLE_LIB_BUG
135
136/* Partially due to the above mentioned bug and also so that we don't need
137 to require that people have a shareable C library, the default for Emacs
138 is to link with the non-shared library. If you want to link with the
139 shared library, define this and remake xmakefile and fileio.c. This allows
140 us to ship a guaranteed executable image. */
141
142#define LINK_CRTL_SHARE
143
144/* Define this if you want to read the file SYS$SYSTEM:SYSUAF.DAT for user
145 information. If you do use this, you must either make SYSUAF.DAT world
146 readable or install Emacs with SYSPRV. */
147
148/* #define READ_SYSUAF */
149
150/* On VMS these have a different name */
151
152#define index strchr
153#define rindex strrchr
154#define unlink delete
155
156/* On later versions of VMS these exist in the C run time library, but
157 we are using our own implementations. Hide their names to avoid
158 linker errors */
159#define rename sys_rename
160#define execvp sys_execvp
161#define system sys_system
162
163/* Hide these names so that we don't get linker errors */
164#define malloc sys_malloc
165#define free sys_free
166#define realloc sys_realloc
167#define calloc sys_calloc
168
169/* Don't use the standard brk and sbrk */
170#define sbrk sys_sbrk
171#define brk sys_brk
172
173/* On VMS we want to avoid reading and writing very large amounts of
174 data at once, so we redefine read and write here. */
175
176#define read sys_read
177#define write sys_write
178
179/* sys_creat just calls the real creat with additional args of
180 "rfm=var", "rat=cr" to get "normal" VMS files... */
181#define creat sys_creat
182
183/* fwrite forces an RMS PUT on every call. This is abysmally slow, so
184 we emulate fwrite with fputc, which forces buffering and is much
185 faster! */
186#define fwrite sys_fwrite
187
188/* getuid only returns the member number, which is not unique on most VMS
189 systems. We emulate it with (getgid()<<16 | getuid()). */
190#define getuid sys_getuid
191
192/* If user asks for TERM, check first for EMACS_TERM. */
193#define getenv sys_getenv
194
195/* Standard C abort is less useful than it should be. */
196#define abort sys_abort
197
198/* Case conflicts with C library fread. */
199#define Fread F_read
200
201/* Case conflicts with C library srandom. */
202#define Srandom S_random
203
204/* Cause initialization of vmsfns.c to be run. */
205#define SYMS_SYSTEM syms_of_vmsfns ()
206
207/* VAXCRTL access doesn't deal with SYSPRV very well (among other oddites...)
208 Here, we use $CHKPRO to really determine access. */
209#define access sys_access
210
211#define PAGESIZE 512
212
213#define _longjmp longjmp
214#define _setjmp setjmp
215
216globalref char sdata[];
217#define DATA_START (((int) sdata + 511) & ~511)
218#define TEXT_START 512
219
220/* Baud-rate values from tty status are not standard. */
221
222#define BAUD_CONVERT \
223{ 0, 50, 75, 110, 134, 150, 300, 600, 1200, 1800, \
224 2000, 2400, 3600, 4800, 7200, 9600, 19200 }
225
226#define PURESIZE 132000
227
228/* Stdio FILE type has extra indirect on VMS, so must alter this macro. */
229
230#define PENDING_OUTPUT_COUNT(FILE) ((*(FILE))->_ptr - (*(FILE))->_base)
diff --git a/src/s/vms4-0.h b/src/s/vms4-0.h
new file mode 100644
index 00000000000..3f11a3de30a
--- /dev/null
+++ b/src/s/vms4-0.h
@@ -0,0 +1,2 @@
1#include "vms.h"
2#define VMS4_0
diff --git a/src/s/vms4-2.h b/src/s/vms4-2.h
new file mode 100644
index 00000000000..e632b87e09f
--- /dev/null
+++ b/src/s/vms4-2.h
@@ -0,0 +1,3 @@
1#include "vms.h"
2#define VMS4_2
3
diff --git a/src/s/vms4-4.h b/src/s/vms4-4.h
new file mode 100644
index 00000000000..c0f60900d53
--- /dev/null
+++ b/src/s/vms4-4.h
@@ -0,0 +1,3 @@
1#include "vms.h"
2#define VMS4_4
3
diff --git a/src/s/xenix.h b/src/s/xenix.h
new file mode 100644
index 00000000000..83d48a1b56e
--- /dev/null
+++ b/src/s/xenix.h
@@ -0,0 +1,238 @@
1/* Definitions file for GNU Emacs running SCO Xenix 386 Release 2.2
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 * Define symbols to identify the version of Unix this is.
22 * Define all the symbols that apply correctly.
23 */
24
25/* #define UNIPLUS */
26#define XENIX
27#define USG5
28#define USG
29/* #define HPUX */
30/* #define UMAX */
31/* #define BSD4_1 */
32/* #define BSD4_2 */
33/* #define BSD4_3 */
34/* #define BSD */
35/* #define VMS */
36
37/* SYSTEM_TYPE should indicate the kind of system you are using.
38 It sets the Lisp variable system-type. */
39
40#define SYSTEM_TYPE "xenix"
41
42/* NOMULTIPLEJOBS should be defined if your system's shell
43 does not have "job control" (the ability to stop a program,
44 run some other program, then continue the first one). */
45
46#define NOMULTIPLEJOBS
47
48/* Emacs can read input using SIGIO and buffering characters itself,
49 or using CBREAK mode and making C-g cause SIGINT.
50 The choice is controlled by the variable interrupt_input.
51 Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
52
53 SIGIO can be used only on systems that implement it (4.2 and 4.3).
54 CBREAK mode has two disadvatages
55 1) At least in 4.2, it is impossible to handle the Meta key properly.
56 I hear that in system V this problem does not exist.
57 2) Control-G causes output to be discarded.
58 I do not know whether this can be fixed in system V.
59
60 Another method of doing input is planned but not implemented.
61 It would have Emacs fork off a separate process
62 to read the input and send it to the true Emacs process
63 through a pipe.
64*/
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/* Define this symbol if your system has the functions bcopy, etc. */
111
112/* #define BSTRING */
113
114/* subprocesses should be defined if you want to
115 have code for asynchronous subprocesses
116 (as used in M-x compile and M-x shell).
117 This is supposed to work now on system V release 2. */
118
119#define subprocesses
120
121/* If your system uses COFF (Common Object File Format) then define the
122 preprocessor symbol "COFF". */
123
124/* #define COFF */
125
126/* Xenix requires completely different unexec code
127 which lives in a separate file. Specify the file name. */
128
129#define UNEXEC unexenix.o
130
131/* define MAIL_USE_FLOCK if the mailer uses flock
132 to interlock access to /usr/spool/mail/$USER.
133 The alternative is that a lock file named
134 /usr/spool/mail/$USER.lock. */
135
136#define MAIL_USE_FLOCK
137
138/* Define CLASH_DETECTION if you want lock files to be written
139 so that Emacs can tell instantly when you try to modify
140 a file that someone else has modified in his Emacs. */
141
142/* The way this is implemented requires long filenames... */
143/* #define CLASH_DETECTION */
144
145/* Define SHORTNAMES if the C compiler can distinguish only
146 short names. It means that the stuff in ../shortnames
147 must be run to convert the long names to short ones. */
148
149/* #define SHORTNAMES */
150
151/* We do not use the Berkeley (and usg5.2.2) interface to nlist. */
152
153/* #define NLIST_STRUCT */
154
155/* Compensate for one incompatibility between Xenix and V.0. */
156#define n_zeroes n_name[0]
157
158/* The file containing the kernel's symbol table is called /xenix. */
159
160#define KERNEL_FILE "/xenix"
161
162/* The symbol in the kernel where the load average is found
163 is named avenrun. */
164
165#define LDAV_SYMBOL "_avenrun"
166
167/* Special hacks needed to make Emacs run on this system. */
168
169/*
170 * Make the sigsetmask function go away. Don't know what the
171 * ramifications of this are, but doesn't seem possible to
172 * emulate it properly anyway at this point.
173 */
174
175#define sigsetmask(mask) /* Null expansion */
176
177/* setjmp and longjmp can safely replace _setjmp and _longjmp,
178 but they will run slower. */
179
180#define _setjmp setjmp
181#define _longjmp longjmp
182
183/* On USG systems the system calls are interruptable by signals
184 that the user program has elected to catch. Thus the system call
185 must be retried in these cases. To handle this without massive
186 changes in the source code, we remap the standard system call names
187 to names for our own functions in sysdep.c that do the system call
188 with retries. */
189
190#define read sys_read
191#define open sys_open
192#define write sys_write
193
194#define INTERRUPTIBLE_OPEN
195#define INTERRUPTIBLE_IO
196
197/* On USG systems these have different names */
198
199#define index strchr
200#define rindex strrchr
201
202/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
203
204#define ADDR_CORRECT(x) (x)
205
206/* Prevent -lg from being used for debugging. Not implemented? */
207
208#define LIBS_DEBUG
209
210/* Switches for linking temacs. */
211
212#define LD_SWITCH_SYSTEM -i
213
214/* Xenix implements sysV style IPC. */
215
216#define HAVE_SYSVIPC
217
218/* Use terminfo instead of termcap. */
219
220/* Tell Emacs to use Terminfo. */
221
222#define TERMINFO
223
224/* Tell Xenix curses to BE Terminfo. */
225#define M_TERMINFO
226
227/* Control program name for etc/fakemail to run. */
228
229#ifdef SMAIL
230#define MAIL_PROGRAM_NAME "/usr/bin/smail -q0"
231#else
232#define MAIL_PROGRAM_NAME "/usr/lib/mail/execmail"
233#endif
234
235/* Some variants have TIOCGETC, but the structures to go with it
236 are not declared. */
237
238#define BROKEN_TIOCGETC