From 9b71f02b8a03ec8b8d0f5e4053a76e8f71920a57 Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Fri, 13 Dec 1991 18:50:18 +0000 Subject: [PATCH] entered into RCS --- src/m/alliant1.h | 9 ++ src/m/alliant4.h | 24 +++++ src/m/gould-np1.h | 87 ++++++++++++++++++ src/m/is386.h | 27 ++++++ src/m/news-risc.h | 21 +++++ src/m/sgi3000.h | 1 + src/m/sun3-68881.h | 28 ++++++ src/m/sun3-fpa.h | 28 ++++++ src/m/sun3-soft.h | 29 ++++++ src/m/sun3.h | 50 +++++++++++ src/m/sun386.h | 75 ++++++++++++++++ src/m/symmetry.h | 103 ++++++++++++++++++++++ src/m/tandem-s2.h | 24 +++++ src/s/386-ix.h | 20 +++++ src/s/bsd4-1.h | 149 +++++++++++++++++++++++++++++++ src/s/bsd4-2.h | 128 +++++++++++++++++++++++++++ src/s/dgux.h | 254 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/s/esix.h | 29 ++++++ src/s/iris3-5.h | 196 +++++++++++++++++++++++++++++++++++++++++ src/s/irix3-3.h | 175 ++++++++++++++++++++++++++++++++++++ src/s/sunos4-0.h | 14 +++ src/s/sunos4-1.h | 12 +++ src/s/umax.h | 178 +++++++++++++++++++++++++++++++++++++ src/s/umips.h | 77 ++++++++++++++++ src/s/unipl5-0.h | 192 ++++++++++++++++++++++++++++++++++++++++ src/s/unipl5-2.h | 186 +++++++++++++++++++++++++++++++++++++++ src/s/usg5-0.h | 183 ++++++++++++++++++++++++++++++++++++++ src/s/usg5-2-2.h | 186 +++++++++++++++++++++++++++++++++++++++ src/s/usg5-2.h | 186 +++++++++++++++++++++++++++++++++++++++ src/s/vms.h | 230 ++++++++++++++++++++++++++++++++++++++++++++++++ src/s/vms4-0.h | 2 + src/s/vms4-2.h | 3 + src/s/vms4-4.h | 3 + src/s/xenix.h | 238 +++++++++++++++++++++++++++++++++++++++++++++++++ 34 files changed, 3147 insertions(+) create mode 100644 src/m/alliant1.h create mode 100644 src/m/alliant4.h create mode 100644 src/m/gould-np1.h create mode 100644 src/m/is386.h create mode 100644 src/m/news-risc.h create mode 100644 src/m/sgi3000.h create mode 100644 src/m/sun3-68881.h create mode 100644 src/m/sun3-fpa.h create mode 100644 src/m/sun3-soft.h create mode 100644 src/m/sun3.h create mode 100644 src/m/sun386.h create mode 100644 src/m/symmetry.h create mode 100644 src/m/tandem-s2.h create mode 100644 src/s/386-ix.h create mode 100644 src/s/bsd4-1.h create mode 100644 src/s/bsd4-2.h create mode 100644 src/s/dgux.h create mode 100644 src/s/esix.h create mode 100644 src/s/iris3-5.h create mode 100644 src/s/irix3-3.h create mode 100644 src/s/sunos4-0.h create mode 100644 src/s/sunos4-1.h create mode 100644 src/s/umax.h create mode 100644 src/s/umips.h create mode 100644 src/s/unipl5-0.h create mode 100644 src/s/unipl5-2.h create mode 100644 src/s/usg5-0.h create mode 100644 src/s/usg5-2-2.h create mode 100644 src/s/usg5-2.h create mode 100644 src/s/vms.h create mode 100644 src/s/vms4-0.h create mode 100644 src/s/vms4-2.h create mode 100644 src/s/vms4-4.h create mode 100644 src/s/xenix.h 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 @@ +/* config.h should include this file for version 1 of Alliant's + operating system. */ + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="bsd4-2" */ + +#define ALLIANT_1 +#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 @@ +/* machine description file for Alliant Concentrix 4.0 or later. + Use alliant.h for versions 2 and 3. */ + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="bsd4-2" */ + +#include "alliant.h" + +/* Concentrix uses a different kernel symbol for load average. */ + +#undef LDAV_SYMBOL /* Undo definition in s-bsd4-2.h */ +#define LDAV_SYMBOL "_Loadavg" + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE long + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) (x * 100 / LOADAVG_SCALE) + +/* include for the definition of LOADAVG_SCALE, and also + 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 @@ +/* machine description file for Gould NP1 with UTX/32 3.0 (first release for NP1). */ + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="bsd4-3" */ + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ +/* UTX 3.0 uses a cross between COFF and a.out format, but closer to COFF. */ +/* at least currently, already defined by cpp, but make sure */ +#ifndef COFF +#define COFF +#endif COFF + +#include "gould.h" + +/* undefine what gould.h defined */ +#undef ADJUST_EXEC_HEADER + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ +/* UTX 3.0 uses a cross between COFF and a.out format, but closer to COFF. */ +#ifndef COFF /* at least currently, already defined by cpp */ +#define COFF +#endif COFF + +/* make Gould NP1 and PN COFF look like USG COFF */ +/* NP1 COFF */ +#undef aouthdr /* Since gould.h already defined these */ +#undef a_dtbase + +#ifdef IN_UNEXEC +#define aouthdr exec +#define ADJUST_TEXT_SCNHDR_SIZE + +/* Gould COFF - these are already defined in gould.h */ +/* + * #define COFF_WITH_BSD_SYMTAB + * #define HEADER_INCL_IN_TEXT + * #define magic a_magic + * #define tsize a_text + * #define dsize a_data + * #define bsize a_bss + * #define entry a_entry + * #define text_start a_txbase + * #define data_start a_dtbase +*/ +/* End Gould COFF */ +#endif /* IN_UNEXEC */ + +/* NP1 supports a slightly different set than PowerNode */ +#define BAUD_CONVERT { 0, 50, 75, 110, 134, 150, 300, 450, 600, 1200, \ + 1800, 2000, 2400, 3600, 4800, 7200, 9600, \ + 19200, 38400 } + +#define LD_SWITCH_SYSTEM -BS -e start + +/* Undef C_DEBUG_SWITCH because it may have been set in gould.h */ +/* It will compile and load and works with dbx. Runs under an incomplete + port of gdb, but gdb doesn't always find things correctly. */ +#undef C_DEBUG_SWITCH +#define C_DEBUG_SWITCH -g +#define LIBS_DEBUG -lg + + +/* The data segment in this machine always starts at address 0x1000000 = 16M. + An address of data cannot be stored correctly in a Lisp object; + we always lose the high bits. We must tell XPNTR to add them back. */ + +#define DATA_SEG_BITS 0x1000000 +#define DATA_START 0x1000000 + +/* The text segment always starts at 0. + This way we don't need to have a label _start defined. */ +#define TEXT_START 0 + +/* Data isn't right next to text on an NP1 */ +#define NO_REMAP + +/* The bcopy bug has reappeared */ +#undef BSTRING + +#ifndef GOULD_NP1 +#define GOULD_NP1 +#endif + + 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 @@ +/* machine description file for Integrated Solutions 386 machine. */ + +#include "intel386.h" + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="note" + +NOTE-START +Intel 386 (-machine=intel386 or -machine=is386.h) + + The possibilities for -opsystem are: bsd4-2, usg5-2-2, usg5-3, + isc2-2, 386-ix, esix, or xenix. + + 18.58 should support a wide variety of operating systems. + Use isc2-2 for Interactive 386/ix version 2.2. + Use 386ix for prior versions. + Use esix for Esix. It isn't clear what to do on an SCO system. + + -machine=is386 is used for an Integrated Solutions 386 machine. + It may also be correct for Microport systems. +NOTE-END */ + +#define LIBX10_MACHINE -lnsl_s +#define LIBX11_MACHINE -lnsl_s + +#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 @@ +/* news-risc.h is for the "RISC News". */ + +#include "mips.h" +#undef LIBS_MACHINE + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="bsd4-3" */ + +#define LIBS_MACHINE -lmld + +#define COFF +#undef LD_SWITCH_MACHINE +#define LD_SWITCH_MACHINE -x -D 800000 + +/* #define C_OPTIMIZE_SWITCH -O2 */ +#define C_OPTIMIZE_SWITCH -O + +#define C_DEBUG_SWITCH -g3 + +#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 @@ +/* sun3-68881.h, for a Sun 3, using the 68881. */ + +#include "sun3.h" + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="note" + +NOTE-START +Sun with 68881 co-processor (-machine=sun3-68881; + -opsystem=bsd4-2 or -opsystem=sunos4) + + Versions 1, 2, and 3 of the operating system are derived from + Berkeley 4.2, meaning that you should use -opsystem=bsd4-2. + + For SunOS release 4 on a Sun 3 with a 68881, use -machine=sun3-68881 + and -opsystem=sunos4. See the file share-lib/SUNBUG for how to + solve problems caused by bugs in the "export" version of SunOS 4. +NOTE-END */ + +/* In case we are using floating point, work together with crt0.c. */ + +#ifndef __GNUC__ +#define C_SWITCH_MACHINE -f68881 +#endif + +#define sun_68881 +#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 @@ +/* sun3-fpa.h, for a Sun 3, using the Sun fpa. */ + +#include "sun3.h" + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="note" + +NOTE-START +Sun with FPA co-processor (-machine=sun3-fpa; + -opsystem=bsd4-2 or -opsystem=sunos4) + + Versions 1, 2, and 3 of the operating system are derived from + Berkeley 4.2, meaning that you should use -opsystem=bsd4-2. + + For SunOS release 4 on a Sun 3 with an FPA, use -machine=sun3-fpa + and -opsystem=sunos4. See the file share-lib/SUNBUG for how to + solve problems caused by bugs in the "export" version of SunOS 4. +NOTE-END */ + +/* In case we are using floating point, work together with crt0.c. */ + +#ifndef __GNUC__ +#define C_SWITCH_MACHINE -ffpa +#endif + +#define sun_fpa +#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 @@ +/* sun3-soft.h, for a Sun 3, using the Sun with software floating point. */ + +#include "sun3.h" + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="note" + +NOTE-START +Sun with software floating point (-machine=sun3-soft; + -opsystem=bsd4-2 or -opsystem=sunos4) + + Versions 1, 2, and 3 of the operating system are derived from + Berkeley 4.2, meaning that you should use -opsystem=bsd4-2. + + If you want to use software floating point on SunOS release 4 on a + Sun 3, use -machine=sun3-68881 and -opsystem=sunos4. See the file + share-lib/SUNBUG for how to solve problems caused by bugs in the + "export" version of SunOS 4. +NOTE-END */ + +/* In case we are using floating point, work together with crt0.c. */ + +#ifndef __GNUC__ +#define C_SWITCH_MACHINE -fsoft +#endif + +#define sun_soft +#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 @@ +/* machine description file for Sun 68000's OPERATING SYSTEM version 3 + (for either 68000 or 68020 systems). */ + +#include "sun2.h" +#undef sun2 +#ifndef sun3 +#define sun3 +#endif + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="note" + +NOTE-START +Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3; + -opsystem=bsd4-2 or -opsystem=sunos4) + + Whether you should use sun1, sun2 or sun3 depends on the + VERSION OF THE OPERATING SYSTEM + you have. There are three machine types for different versions of + SunOS. All are derived from Berkeley 4.2, meaning that you should + use -opsystem=bsd4-2. Emacs 17 has run on all of them. You will + need to use sun3 on Sun 2's running SunOS release 3. + + For SunOS release 4 on a Sun 3, use -machine=sun3 and + -opsystem=sunos4. See the file share-lib/SUNBUG for how to solve + problems caused by bugs in the "export" version of SunOS 4. +NOTE-END */ + +/* Say that the text segment of a.out includes the header; + the header actually occupies the first few bytes of the text segment + and is counted in hdr.a_text. */ + +#define A_TEXT_OFFSET(HDR) sizeof (HDR) + +/* This is the offset of the executable's text, from the start of the file. */ + +#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr)) + +/* In case we are using floating point, work together with crt0.c. */ + +#ifndef __GNUC__ +#define C_SWITCH_MACHINE -fsoft +#endif + +/* This line is needed if you are linking with X windows + and the library xlib was compiled to use the 68881. + For maximum cleanliness, don't edit this file; + instead, insert this line in config.h. */ +/* #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 @@ +/* machine description file for Sun's 386-based RoadRunner. This file borrows heavily from + "sun2.h", but since that file is heavily cpu-specific, it was easier + not to include it. + + Copyright (C) 1988 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="note" + +NOTE-START + Use s-sunos4-0.h for operating system version 4.0, and s-sunos4-1.h + for later versions. See the file share-lib/SUNBUG for how to solve + problems caused by bugs in the "export" version of SunOS 4. +NOTE-END */ + +/* Say this machine is a bird */ +#ifndef roadrunner +#define roadrunner +#endif + +/* Actual cpu-specific defs */ +#include "intel386.h" + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE long + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) + +/* Underscores are not prepended to C symbols on this machine. */ +#undef LDAV_SYMBOL +#define LDAV_SYMBOL "avenrun" + +/* Must use the system's termcap. It does special things. */ + +#define LIBS_TERMCAP -ltermcap + +/* Arrange to link with sun windows, if requested. */ +/* For details on emacstool and sunfns, see etc/SUN-SUPPORT */ +/* These programs require Sun UNIX 4.2 Release 3.2 or greater */ + +#ifdef HAVE_SUN_WINDOWS +#define OTHER_FILES ${etcdir}emacstool +#define LIBS_MACHINE -lsuntool -lsunwindow -lpixrect +#define OBJECTS_MACHINE sunfns.o +#define SYMS_MACHINE syms_of_sunfns () +#define PURESIZE 132000 +#endif + +/* Roadrunner uses 'COFF' format */ +#define COFF + +#define C_SWITCH_MACHINE -Bstatic /* avoid dynamic linking */ +#define LD_SWITCH_MACHINE -n -Bstatic +/* Get rid of the -e __start that s-sunos4.h does. */ +#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 @@ +/* machine description file for SEQUENT SYMMETRY machines + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* CHANGE: [Eric H. Herrin II; eric@ms.uky.edu - 15 Sept 1988] + * Modified the sequent.h file for the Sequent Symmetry machine. + * Biggest change was to align the sections in the a.out to 4K + * boundaries (this is the page size). + */ + + +/* NOTICE: this file works for DYNIX release 3.0.12 on Sequent Symmetry + * (Intel 80386) machines. Hasn't been tested on anything else. + */ + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="bsd4-3" */ + +#include "intel386.h" + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE unsigned long + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define FSCALE 1000.0 +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) + +/* Define C_ALLOCA if this machine does not support a true alloca + and the one written in C should be used instead. + Define HAVE_ALLOCA to say that the system provides a properly + working alloca function and it should be used. + Define neither one if an assembler-language alloca + in the file alloca.s should be used. */ + +/* #define C_ALLOCA */ +/*#define HAVE_ALLOCA*/ + +/* Name of file the to look in + for the kernel symbol table (for load average) */ + +#undef KERNEL_FILE +#define KERNEL_FILE "/dynix" + +/* define HAVE_GETPAGESIZE for Symmetry */ +#define HAVE_GETPAGESIZE + +/* Avoids a compiler bug */ + +#define TAHOE_REGISTER_BUG + +/* Say that the text segment of a.out includes the header; + the header actually occupies the first few bytes of the text segment + and is counted in hdr.a_text. Furthermore, the value written + in the a_text in the file must have N_ADDRADJ added to it. */ + +#define A_TEXT_OFFSET(HDR) (sizeof (HDR) + N_ADDRADJ (HDR)) + +/* This is the offset of the executable's text, from the start of the file. */ + +#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr)) + +/* The file sections in the Symmetry a.out must be on 4K boundaries. + */ +#define SEGSIZ 4096 +#define SECTION_ALIGNMENT (SEGSIZ-1) + +/* (short) negative-int doesn't sign-extend correctly */ +#define SHORT_CAST_BUG + +/* Cause compilations to be done in parallel in ymakefile. */ +#define MAKE_PARALLEL & + +/* Define how to search all pty names. + This is for Dynix 3.0; delete next 5 definitions for older systems. */ + +#define PTY_MAJOR "pqrstuvwPQRSTUVW" +#define PTY_MINOR "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" +#define PTY_ITERATION \ + register int ma, mi; \ + for (ma = 0; ma < sizeof(PTY_MAJOR) - 1; ma++) \ + for (mi = 0; mi < sizeof(PTY_MINOR) - 1; mi++) +#define PTY_NAME_SPRINTF \ + sprintf (ptyname, "/dev/pty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]); +#define PTY_TTY_NAME_SPRINTF \ + 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 @@ +/* machine description file for the Tandem Integrity S2. */ + +#include "mips.h" + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="usg5-3" */ + +/* This overrides some of the usual support for the mips and system V.3. */ + +/* The S2 does not know about utimes() */ +#define USE_UTIME + +/* The operating system apparently defines TIOCGETC + but it doesn't work. */ +#undef BROKEN_TIOCGETC + +/* rs@ai.mit.edu said this was necessary for it to work. However, some + user of this machine ought to try to get subprocesses to work. */ +#undef subprocesses + +/* Correct some library file names. */ +#define START_FILES pre-crt0.o /usr/lib/crt1.o1.31 +#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 @@ +/* Interactive 386/ix. */ + +#include "usg5-3.h" + +#define HAVE_SELECT + +#define BROKEN_TIOCGETC + +/* There are some reports that the following is needed + with some version of this system. +#undef LIBX11_SYSTEM +#define LIBX11_SYSTEM -linet + +#define HAVE_TIMEVAL +#define USE_UTIME +*/ + +/* This is said to be needed as a result of having _insque rather + than insque in -loldX. This may not always be the right thing. */ +#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 @@ +/* Definitions file for GNU Emacs running on bsd 4.1. + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define BSD4_1 + +#define BSD + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "berkeley-unix" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* Default is to set interrupt_input to 1: do input buffering within Emacs */ + +#define INTERRUPT_INPUT + +/* First pty name is /dev/ptyp0. */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +#undef HAVE_TIMEVAL + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +/* #define HAVE_SELECT */ + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +/* #define HAVE_PTYS */ + +/* Define this macro if system defines a type `union wait'. */ + +#define HAVE_UNION_WAIT + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +/* #define HAVE_SOCKETS */ + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +#define NONSYSTEM_DIR_LIBRARY + +/* Define this symbol if your system has the functions bcopy, etc. */ + +/* #define BSTRING */ + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +#undef CLASH_DETECTION /* Might work; not tried yet. */ + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The file containing the kernel's symbol table is called /vmunix. */ + +#define KERNEL_FILE "/vmunix" + +/* The symbol in the kernel where the load average is found + is named _avenrun. */ + +#define LDAV_SYMBOL "_avenrun" + +/* Special hacks needed to make Emacs run on this system. */ + +/* Make the function `signal' act as in 4.2. */ + +#define signal sigset + +#define _longjmp longjmp +#define _setjmp setjmp + +#define lstat stat + +/* sys_open handles the necessary 4.2 features for open. */ + +#define open sys_open + +/* Names of flags for open. */ +#define O_RDONLY 0 +#define O_WRONLY 1 +#define O_RDWR 2 +#define O_EXCL 2000 +#define O_CREAT 1000 + +/* Special library needed for linking for 4.1. */ +#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 @@ +/* Definitions file for GNU Emacs running on bsd 4.2 + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#ifndef BSD4_2 +#define BSD4_2 +#endif /* BSD4_2 */ + +#ifndef BSD +#define BSD +#endif /* BSD */ + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "berkeley-unix" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* Default is to set interrupt_input to 1: do input buffering within Emacs */ + +#define INTERRUPT_INPUT + +/* First pty name is /dev/ptyp0. */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define this macro if system defines a type `union wait'. */ + +#define HAVE_UNION_WAIT + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +/* #define NONSYSTEM_DIR_LIBRARY */ + +/* Define this symbol if your system has the functions bcopy, etc. */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +#define CLASH_DETECTION + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The file containing the kernel's symbol table is called /vmunix. */ + +#define KERNEL_FILE "/vmunix" + +/* The symbol in the kernel where the load average is found + is named _avenrun. */ + +#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 @@ +/* Definitions file for GNU Emacs running on Data General's DG/UX + version 4.32 and above. + Copyright (C) 1985, 1986, 1991 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +/* #define UNIPLUS */ +/* #define USG5 */ +/* #define USG */ +/* #define HPUX */ +/* #define UMAX */ +/* #define BSD4_1 */ +#define BSD4_2 +#define BSD4_3 +#define BSD +/* #define VMS */ + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "dgux-unix" + +/* NOMULTIPLEJOBS should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* Emacs can read input using SIGIO and buffering characters itself, + or using CBREAK mode and making C-g cause SIGINT. + The choice is controlled by the variable interrupt_input. + Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO) + + SIGIO can be used only on systems that implement it (4.2 and 4.3). + CBREAK mode has two disadvatages + 1) At least in 4.2, it is impossible to handle the Meta key properly. + I hear that in system V this problem does not exist. + 2) Control-G causes output to be discarded. + I do not know whether this can be fixed in system V. + + Another method of doing input is planned but not implemented. + It would have Emacs fork off a separate process + to read the input and send it to the true Emacs process + through a pipe. +*/ + +#define INTERRUPT_INPUT + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'a' means it is /dev/ptya0 */ + +#define FIRST_PTY_LETTER 'r' + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_SOCKETS if the system supports sockets. + */ + +#define HAVE_SOCKETS + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +/* #define NONSYSTEM_DIR_LIBRARY */ + +/* Define this symbol if your system has the functions bcopy, etc. */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +#define COFF + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* Define a replacement for the baud rate switch, since DG/UX uses a different + from BSD. */ + +#define BAUD_CONVERT { 0, 110, 134, 150, 300, 600, 1200, 1800, 2400, \ + 4800, 9600, 19200, 38400 } + +/* + * Define HAVE_GETTIMEOFDAY if gettimeofday() system call is available. + */ + +#define HAVE_GETTIMEOFDAY + +/* + * Define NLIST_STRUCT if the system has nlist.h + */ + +#define NLIST_STRUCT + +/* + * Make WM Interface Compliant. + */ + +#define XICCC + +/* Here, on a separate page, add any special hacks needed + to make Emacs work on this system. For example, + you might define certain system call names that don't + exist on your system, or that do different things on + your system and must be used only through an encapsulation + (Which you should place, by convention, in sysdep.c). */ + +/* Some compilers tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + On these systems, you must #define static as nothing to foil this. + Note that emacs carefully avoids static vars inside functions. */ + +/* #define static */ + +/* DG/UX SPECIFIC ADDITIONS TO TEMPLATE FOLLOW: */ + +/* Use the Berkeley flavors of the library routines, instead of System V. */ + +#define setpgrp(pid,pgrp) setpgrp2(pid,pgrp) +#define getpgrp(pid) getpgrp2(pid) + +/* Act like Berkeley. */ + +#define _setjmp(env) sigsetjmp(env,0) +#define _longjmp(env,val) longjmp(env,val) + +/* Use TERMINFO instead of termcap */ + +#define TERMINFO + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + * DG/UX has both BSD and AT&T style ioctl's. Bsd ioctl's don't + * seem to wait for the output to drain properly, so use System V. + */ + +/* #define HAVE_TERMIO */ + +/* + * DG/UX 4.10 needs the following to turn on berkeley ioctl's. + */ + +#ifndef HAVE_TERMIO +#define _BSD_TTY_FLAVOR +#endif + +/* + * Use a Berkeley style sys/wait.h. + * This makes WIF* macros operate on structures instead of ints. + */ + +#define _BSD_WAIT_FLAVOR + +/* Enable the x-rebind keysym function. Do not try to map function + keys internally. */ + +#define XREBINDKEYSYM + +/* + * Use BSD and POSIX-style signals. This is crucial! + */ + +/* MAKING_MAKEFILE must be defined in "ymakefile" before including config.h */ +#ifndef MAKING_MAKEFILE + +/* Make sure signal.h is included so macros below don't mess with it. */ +/* DG/UX include files prevent multiple inclusion. */ + +#include + +#define POSIX_SIGNALS + +/* Not worth converting the old GNU malloc to work with POSIX_SIGNALS. */ +#define SYSTEM_MALLOC + +/* Define this if you use System 5 Release 4 Streams */ +#define SYSV4_PTYS +#define open sys_open +#define close sys_close +#define read sys_read +#define write sys_write + +#define INTERRUPTABLE_OPEN +#define INTERRUPTABLE_CLOSE +/* can't hurt to define these, even though read/write should auto restart */ +#define INTERRUPTABLE_IO + +/* Can't use sys_signal because then etc/server.c would need sysdep.o. */ +#define signal(SIG,FUNC) berk_signal(SIG,FUNC) + +#else /* MAKING_MAKEFILE */ +/* force gcc to be used */ +CC=gcc +#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 @@ +/* Definitions for ESIX, a variant of v.5.3 for the 386. */ +/* These are based on reports for ESIX 5.3.2 D. */ + +#include "usg5-3.h" + +#define HAVE_TIMEVAL + +/* Some versions of V.3 have this, but not all. ESIX does. */ +#define HAVE_PTYS +#define SYSV_PTYS + +/* Have -lg be used for debugging. */ +#undef LIBS_DEBUG +#define LIBS_DEBUG -lg + +/* If using Roell's X server, define X11R4 */ +#ifdef X11R4 /* Roell's X server */ +#define HAVE_GETTIMEOFDAY /* Thomas Roell's X11R4 lib defines gettimeofday */ +#define select sys_select /* Emacs select() not good enough? */ +#undef LIBX11_SYSTEM +#define LIBX11_SYSTEM -lpt +#endif /* X11R4 */ + +/* ESIX does not need , but needs */ +#define NO_SIOCTL_H +#define NEED_PTEM_H +#define USG_SYS_TIME +#define USE_UTIME +#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 @@ +/* Definitions file for GNU Emacs running on Silicon Graphics 3.5 + Copyright (C) 1987 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG +#define USG5 +#define IRIS + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "irix" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +#define NOMULTIPLEJOBS + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'a' means it is /dev/ptya0 */ + +#define FIRST_PTY_LETTER 'a' + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* `utime' system call doesn't understand timevals. */ + +#define IRIS_UTIME + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +/* #define NONSYSTEM_DIR_LIBRARY */ + +/* Define this symbol if your system has the functions bcopy, etc. */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The file containing the kernel's symbol table is called /vmunix. */ + +#define KERNEL_FILE "/vmunix" + +/* The symbol in the kernel where the load average is found + is named _avenrun. */ + +#define LDAV_SYMBOL "_avenrun" + + +/* Special hacks needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +#define sigsetmask(mask) /* Null expansion */ + +/* The IRIS defines SIGIO in signal.h, but doesn't implement it. */ +#undef SIGIO + +#define LIBS_MACHINE -lbsd -ldbm -lPW +#define C_SWITCH_MACHINE -I/usr/include/bsd + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* USG systems tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + Foil this. Emacs carefully avoids static vars inside functions. */ + +/* #define static */ + +/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ + +#define ADDR_CORRECT(x) (int)((char *)(x) - (char*)0) + +/* some errno.h's don't actually allocate the variable itself */ + +#define NEED_ERRNO + +/* The symbol FIONREAD is defined, but the feature does not work. */ + +#define BROKEN_FIONREAD + +/* This is how to get the device name of the tty end of a pty. */ +#define PTY_TTY_NAME_SPRINTF \ + 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 @@ +/* Definitions file for GNU Emacs running on Silicon Graphics Irix system 3.3. + Copyright (C) 1987,1990 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG +#define USG5 +#define IRIS + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "irix" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'a' means it is /dev/ptya0 */ + +#define FIRST_PTY_LETTER 'a' + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* `utime' system call doesn't understand timevals. */ + +#define IRIS_UTIME + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +/* #define NONSYSTEM_DIR_LIBRARY */ + +/* Define this symbol if your system has the functions bcopy, etc. */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The file containing the kernel's symbol table is called /unix. */ + +#define KERNEL_FILE "/unix" + +/* The symbol in the kernel where the load average is found + is named _avenrun. */ + +#define LDAV_SYMBOL "avenrun" + + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* USG systems tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + Foil this. Emacs carefully avoids static vars inside functions. */ + +/* #define static */ + +/* This is how to get the device name of the tty end of a pty. */ +#define PTY_TTY_NAME_SPRINTF \ + sprintf (ptyname, "/dev/ttyq%d", minor (stb.st_rdev)); + + +/* getwd is defined. */ + +#define HAVE_GETWD + +#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 @@ +#include "bsd4-2.h" + +#if 0 /* This may have been needed for an earlier version of Sun OS 4. + It seems to cause warnings in 4.0.3 and 4.1. */ +#define O_NDELAY FNDELAY /* Non-blocking I/O (4.2 style) */ +#endif + +#define LD_SWITCH_SYSTEM -e __start -Bstatic + +/* In SunOS 4.1, a static function called by tzsetwall reportedly + clears the byte just past an eight byte region it mallocs, corrupting + GNU malloc's memory pool. But Sun's malloc doesn't seem to mind. */ + +#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 @@ +#include "sunos4-0.h" + +/* 4.1.1 makes these system calls interruptable. */ + +#define read sys_read +#define write sys_write +#define open sys_open +#define close sys_close + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_CLOSE +#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 @@ +/* Definitions file for GNU Emacs running on UMAX 4.2 + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +/* #define UNIPLUS */ +/* #define USG5 */ +/* #define USG */ +/* #define BSD4_1 */ +#define BSD4_2 +/* #define BSD4_3 */ +#define BSD +#define UMAX4_2 +#define UMAX +/* #define VMS */ + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "berkeley-unix" + +/* NOMULTIPLEJOBS should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* Emacs can read input using SIGIO and buffering characters itself, + or using CBREAK mode and making C-g cause SIGINT. + The choice is controlled by the variable interrupt_input. + Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO) + + SIGIO can be used only on systems that implement it (4.2 and 4.3). + CBREAK mode has two disadvatages + 1) At least in 4.2, it is impossible to handle the Meta key properly. + I hear that in system V this problem does not exist. + 2) Control-G causes output to be discarded. + I do not know whether this can be fixed in system V. + + Another method of doing input is planned but not implemented. + It would have Emacs fork off a separate process + to read the input and send it to the true Emacs process + through a pipe. +*/ + +#define INTERRUPT_INPUT + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'a' means it is /dev/ptya0 */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define this macro if system defines a type `union wait'. */ + +#define HAVE_UNION_WAIT + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +/* #define NONSYSTEM_DIR_LIBRARY */ + +/* Define this symbol if your system has the functions bcopy, etc. */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +#define COFF + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +#define MAIL_USE_FLOCK + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +#define CLASH_DETECTION + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The file containing the kernel's symbol table is called /vmunix. */ + +#define KERNEL_FILE "/vmunix" + +/* The symbol in the kernel where the load average is found + is named _avenrun. */ + +#define LDAV_SYMBOL "_avenrun" + +/* Here, on a separate page, add any special hacks needed + to make Emacs work on this system. For example, + you might define certain system call names that don't + exist on your system, or that do different things on + your system and must be used only through an encapsulation + (Which you should place, by convention, in sysdep.c). */ + +/* Specify alignment requirement for start of text and data sections + in the executable file. */ + +#define SECTION_ALIGNMENT pagemask + + +#define SEGMENT_MASK (64 * 1024 - 1) + + +/* crt0.c needs this for compilation because it uses asm. */ + +#define C_SWITCH_ASM -q nodirect_code + +/* Encore machines with APC processor boards align sections on 4M + boundaries, so it is not easy to remap the start of the text segment + in the unexec() routine. For them you need the following two lines. + For DPC processors you can enable these or not, as you wish, but + you will get better performance without them. */ + +/* #define NO_REMAP + #define TEXT_START 0 +*/ 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 @@ +/* Definitions file for GNU Emacs running on Mips operating system. + That system can emulate either BSD or Sys V, in either case with changes. + If BSD is defined, we assume BSD is being emulated; otherwise, Sys V. */ + +#ifdef BSD +#include "bsd4-3.h" + +#define C_SWITCH_SYSTEM -systype bsd43 +#define LD_SWITCH_SYSTEM -systype bsd43 +#define LIBS_SYSTEM -lmld +#define LIBS_DEBUG +#define START_FILES pre-crt0.o /lib/crt1.o +#define LIB_STANDARD -lc /usr/lib/crtn.o + +#define COFF +#define TERMINFO +#undef MAIL_USE_FLOCK /* Someone should check this. */ +#undef HAVE_UNION_WAIT + +#else /* not BSD */ + +#include "usg5-2-2.h" + +#define LIBS_SYSTEM -lmld +#define LIBS_DEBUG +#define START_FILES pre-crt0.o /usr/lib/crt1.o +#define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o +/* #define LIBS_TERMCAP -lcurses */ + +#define C_SWITCH_SYSTEM -I/usr/include/bsd + +/* Cancel certain parts of standard sysV support. */ +#undef NONSYSTEM_DIR_LIBRARY +#define SYSV_SYSTEM_DIR +#undef static + +/* Don't try to use SIGIO or FIONREAD even though they are defined. */ +#undef SIGIO +#define BROKEN_FIONREAD + +/* Describe special kernel features. */ + +#define HAVE_SYSVIPC + +#define HAVE_TIMEVAL +#if defined(emacs) +#include +#endif + +/* #define HAVE_SELECT + The `select' in the system won't work for pipes, + so don't use it. */ + +#define HAVE_DUP2 +#define HAVE_GETWD +#define HAVE_GETTIMEOFDAY + +#define HAVE_PTYS +#define HAVE_SOCKETS +/* #define BSTRING Supposedly removed. */ + +#undef NOMULTIPLEJOBS + +#define CLASH_DETECTION + +#if defined(HAVE_X_WINDOWS) && defined(HAVE_X11) +#define HAVE_VFORK /* Graciously provided by libX.a */ +#endif + +#define utimes utime /* Someone should check this. */ +/* ??? */ +#define IRIS + +#endif /* not BSD */ + +/* High order bit must be stripped off nlist return values */ +#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 @@ +/* Definitions file for GNU Emacs running on UniSoft's UniPlus 5.0 + Support for this system is not finished; don't expect this to work. + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG /* System III, System V, etc */ + +#define USG5 + +#define UNIPLUS + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "unisoft-unix" + +/* NOMULTIPLEJOBS should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'a' means it is /dev/ptya0 */ + +/* #define FIRST_PTY_LETTER 'a' */ + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +/* #define HAVE_TIMEVAL */ + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +/* #define HAVE_SELECT */ + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +/* #define HAVE_PTYS */ + +/* Define this macro if system defines a type `union wait'. */ + +#define HAVE_UNION_WAIT + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +/* #define HAVE_SOCKETS */ + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +#define NONSYSTEM_DIR_LIBRARY + +/* Define this symbol if your system has the functions bcopy, etc. */ + +/* #define BSTRING */ + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +/* #define subprocesses */ + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* Define SHORTNAMES if the C compiler can distinguish only + short names. It means that the stuff in ../shortnames + must be run to convert the long names to short ones. + + Some USG systems support long names. + If yours is one, DO NOT change this file! + Do #undef SHORTNAMES in the m- file or in config.h. */ + +#define SHORTNAMES + +/* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */ + +/* #define NLIST_STRUCT */ + +/* The file containing the kernel's symbol table is called /unix. */ + +#define KERNEL_FILE "/unix" + +/* The symbol in the kernel where the load average is found + is named avenrun. */ + +#define LDAV_SYMBOL "avenrun" + +/* Special hacks needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +#define sigsetmask(mask) /* Null expansion */ + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* Compiler bug bites when default ADDR_CORRECT is used. */ + +#define ADDR_CORRECT(x) (x) + +/* Special library needed for linking for Uniplus */ + +#define LIBS_SYSTEM -lnet + +/* A system-specific loader switch is needed. */ + +#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 @@ +/* Definitions file for GNU Emacs running on UniSoft's UniPlus 5.2 + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG /* System III, System V, etc */ + +#define USG5 + +#define UNIPLUS + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "unisoft-unix" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'p' means it is /dev/ptyp0 */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define this macro if system defines a type `union wait'. */ + +#define HAVE_UNION_WAIT + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +/* #define HAVE_SOCKETS */ + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +#define NONSYSTEM_DIR_LIBRARY + +/* Define this symbol if your system has the functions bcopy, etc. */ + +/* #define BSTRING */ + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. It is supported under UniPlus + System V Release 2. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +#define COFF + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* Uniplus 5.2 supports long names in C */ + +/* #define SHORTNAMES */ + +/* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */ + +/* #define NLIST_STRUCT */ + +/* The file containing the kernel's symbol table is called /unix. */ + +#define KERNEL_FILE "/unix" + +/* The symbol in the kernel where the load average is found + is named avenrun. */ + +#define LDAV_SYMBOL "avenrun" + +/* Special hacks needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +#define sigsetmask(mask) /* Null expansion */ + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* Compiler bug bites when default ADDR_CORRECT is used. */ + +#define ADDR_CORRECT(x) (x) + +/* Special library needed for linking for Uniplus */ + +#define LIBS_SYSTEM -lnet + +/* A system-specific loader switch is needed. */ + +#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 @@ +/* Definitions file for GNU Emacs running on AT&T's System V.0 + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG /* System III, System V, etc */ + +#define USG5 +#define USG5_0 + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "usg-unix-v" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +#define NOMULTIPLEJOBS + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'p' means it is /dev/ptyp0 */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +/* #define HAVE_TIMEVAL */ + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +/* #define HAVE_SELECT */ + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +/* #define HAVE_PTYS */ + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +/* #define HAVE_SOCKETS */ + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +#define NONSYSTEM_DIR_LIBRARY + +/* Define this symbol if your system has the functions bcopy, etc. */ + +/* #define BSTRING */ + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is supposed to work now on system V release 2. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +#define COFF + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* Define SHORTNAMES if the C compiler can distinguish only + short names. It means that the stuff in ../shortnames + must be run to convert the long names to short ones. */ + +#define SHORTNAMES + +/* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */ + +/* #define NLIST_STRUCT */ + +/* The file containing the kernel's symbol table is called /unix. */ + +#define KERNEL_FILE "/unix" + +/* The symbol in the kernel where the load average is found + is named avenrun. */ + +#define LDAV_SYMBOL "avenrun" + +/* Special hacks needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +#define sigsetmask(mask) /* Null expansion */ + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* USG systems tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + Foil this. Emacs carefully avoids static vars inside functions. */ + +#define static + +/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ + +#define ADDR_CORRECT(x) (x) + +/* Prevent -lg from being used for debugging. Not implemented? */ + +#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 @@ +/* Definitions file for GNU Emacs running on AT&T's System V Release 2.2 + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG /* System III, System V, etc */ + +#define USG5 + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "usg-unix-v" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +#define NOMULTIPLEJOBS + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'p' means it is /dev/ptyp0 */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +/* #define HAVE_TIMEVAL */ + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +/* #define HAVE_SELECT */ + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +/* #define HAVE_PTYS */ + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +/* #define HAVE_SOCKETS */ + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +#define NONSYSTEM_DIR_LIBRARY + +/* Define this symbol if your system has the functions bcopy, etc. */ + +/* #define BSTRING */ + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is supposed to work now on system V release 2. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +#define COFF + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* Define SHORTNAMES if the C compiler can distinguish only + short names. It means that the stuff in ../shortnames + must be run to convert the long names to short ones. */ + +/* #define SHORTNAMES */ + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The file containing the kernel's symbol table is called /unix. */ + +#define KERNEL_FILE "/unix" + +/* The symbol in the kernel where the load average is found + is named avenrun. */ + +#define LDAV_SYMBOL "avenrun" + +/* Special hacks needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +#define sigsetmask(mask) /* Null expansion */ + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* USG systems tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + Foil this. Emacs carefully avoids static vars inside functions. */ + +#define static + +/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ + +#define ADDR_CORRECT(x) (x) + +/* Prevent -lg from being used for debugging. Not implemented? */ + +#define LIBS_DEBUG + +/* Use terminfo instead of termcap. */ + +#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 @@ +/* Definitions file for GNU Emacs running on AT&T's System V Release 2.0 + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG /* System III, System V, etc */ + +#define USG5 + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "usg-unix-v" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +#define NOMULTIPLEJOBS + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'p' means it is /dev/ptyp0 */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +/* #define HAVE_TIMEVAL */ + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +/* #define HAVE_SELECT */ + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +/* #define HAVE_PTYS */ + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +/* #define HAVE_SOCKETS */ + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +#define NONSYSTEM_DIR_LIBRARY + +/* Define this symbol if your system has the functions bcopy, etc. */ + +/* #define BSTRING */ + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is supposed to work now on system V release 2. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +#define COFF + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* Define SHORTNAMES if the C compiler can distinguish only + short names. It means that the stuff in ../shortnames + must be run to convert the long names to short ones. */ + +/* #define SHORTNAMES */ + +/* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */ + +/* #define NLIST_STRUCT */ + +/* The file containing the kernel's symbol table is called /unix. */ + +#define KERNEL_FILE "/unix" + +/* The symbol in the kernel where the load average is found + is named avenrun. */ + +#define LDAV_SYMBOL "avenrun" + +/* Special hacks needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +#define sigsetmask(mask) /* Null expansion */ + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* USG systems tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + Foil this. Emacs carefully avoids static vars inside functions. */ + +#define static + +/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ + +#define ADDR_CORRECT(x) (x) + +/* Prevent -lg from being used for debugging. Not implemented? */ + +#define LIBS_DEBUG + +/* Use terminfo instead of termcap. */ + +#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 @@ +/* system description header for VMS + Copyright (C) 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#ifndef VMS /* Decus cpp doesn't define this but VAX C does */ +#define VMS +#endif /* VMS */ +/* Note that this file is used indirectly via vms4-0.h, or some other + such file. These other files define a symbol VMS4_0, VMS4_2, etc. */ + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "vax-vms" + +/* NOMULTIPLEJOBS should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* INTERRUPT_INPUT controls a default for Unix systems. + VMS uses a separate mechanism. */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'a' means it is /dev/ptya0 */ + +#define FIRST_PTY_LETTER 'a' + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +/* #define HAVE_TIMEVAL */ + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +/* #define HAVE_SELECT */ + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +/* #define HAVE_PTYS */ + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +/* #define HAVE_SOCKETS */ + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +#define NONSYSTEM_DIR_LIBRARY + +/* Define this symbol if your system has the functions bcopy, etc. */ + +/* #define BSTRING */ + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* Define the maximum record length for print strings, if needed. */ + +#define MAX_PRINT_CHARS 300 + + +/* Here, on a separate page, add any special hacks needed + to make Emacs work on this system. For example, + you might define certain system call names that don't + exist on your system, or that do different things on + your system and must be used only through an encapsulation + (Which you should place, by convention, in sysdep.c). */ + +/* Do you have the shareable library bug? If you link with a shareable + library that contains psects with the NOSHR attribute and also refer to + those psects in your program, the linker give you a private version of + the psect which is not related to the version used by the shareable + library. The end result is that your references to variables in that + psect have absolutely nothing to do with library references to what is + supposed to be the same variable. If you intend to link with the standard + C library (NOT the shareable one) you don't need to define this. (This + is NOT fixed in V4.4...) */ + +#define SHAREABLE_LIB_BUG + +/* Partially due to the above mentioned bug and also so that we don't need + to require that people have a shareable C library, the default for Emacs + is to link with the non-shared library. If you want to link with the + shared library, define this and remake xmakefile and fileio.c. This allows + us to ship a guaranteed executable image. */ + +#define LINK_CRTL_SHARE + +/* Define this if you want to read the file SYS$SYSTEM:SYSUAF.DAT for user + information. If you do use this, you must either make SYSUAF.DAT world + readable or install Emacs with SYSPRV. */ + +/* #define READ_SYSUAF */ + +/* On VMS these have a different name */ + +#define index strchr +#define rindex strrchr +#define unlink delete + +/* On later versions of VMS these exist in the C run time library, but + we are using our own implementations. Hide their names to avoid + linker errors */ +#define rename sys_rename +#define execvp sys_execvp +#define system sys_system + +/* Hide these names so that we don't get linker errors */ +#define malloc sys_malloc +#define free sys_free +#define realloc sys_realloc +#define calloc sys_calloc + +/* Don't use the standard brk and sbrk */ +#define sbrk sys_sbrk +#define brk sys_brk + +/* On VMS we want to avoid reading and writing very large amounts of + data at once, so we redefine read and write here. */ + +#define read sys_read +#define write sys_write + +/* sys_creat just calls the real creat with additional args of + "rfm=var", "rat=cr" to get "normal" VMS files... */ +#define creat sys_creat + +/* fwrite forces an RMS PUT on every call. This is abysmally slow, so + we emulate fwrite with fputc, which forces buffering and is much + faster! */ +#define fwrite sys_fwrite + +/* getuid only returns the member number, which is not unique on most VMS + systems. We emulate it with (getgid()<<16 | getuid()). */ +#define getuid sys_getuid + +/* If user asks for TERM, check first for EMACS_TERM. */ +#define getenv sys_getenv + +/* Standard C abort is less useful than it should be. */ +#define abort sys_abort + +/* Case conflicts with C library fread. */ +#define Fread F_read + +/* Case conflicts with C library srandom. */ +#define Srandom S_random + +/* Cause initialization of vmsfns.c to be run. */ +#define SYMS_SYSTEM syms_of_vmsfns () + +/* VAXCRTL access doesn't deal with SYSPRV very well (among other oddites...) + Here, we use $CHKPRO to really determine access. */ +#define access sys_access + +#define PAGESIZE 512 + +#define _longjmp longjmp +#define _setjmp setjmp + +globalref char sdata[]; +#define DATA_START (((int) sdata + 511) & ~511) +#define TEXT_START 512 + +/* Baud-rate values from tty status are not standard. */ + +#define BAUD_CONVERT \ +{ 0, 50, 75, 110, 134, 150, 300, 600, 1200, 1800, \ + 2000, 2400, 3600, 4800, 7200, 9600, 19200 } + +#define PURESIZE 132000 + +/* Stdio FILE type has extra indirect on VMS, so must alter this macro. */ + +#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 @@ +#include "vms.h" +#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 @@ +#include "vms.h" +#define VMS4_2 + 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 @@ +#include "vms.h" +#define VMS4_4 + 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 @@ +/* Definitions file for GNU Emacs running SCO Xenix 386 Release 2.2 + Copyright (C) 1988 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +/* #define UNIPLUS */ +#define XENIX +#define USG5 +#define USG +/* #define HPUX */ +/* #define UMAX */ +/* #define BSD4_1 */ +/* #define BSD4_2 */ +/* #define BSD4_3 */ +/* #define BSD */ +/* #define VMS */ + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "xenix" + +/* NOMULTIPLEJOBS should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +#define NOMULTIPLEJOBS + +/* Emacs can read input using SIGIO and buffering characters itself, + or using CBREAK mode and making C-g cause SIGINT. + The choice is controlled by the variable interrupt_input. + Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO) + + SIGIO can be used only on systems that implement it (4.2 and 4.3). + CBREAK mode has two disadvatages + 1) At least in 4.2, it is impossible to handle the Meta key properly. + I hear that in system V this problem does not exist. + 2) Control-G causes output to be discarded. + I do not know whether this can be fixed in system V. + + Another method of doing input is planned but not implemented. + It would have Emacs fork off a separate process + to read the input and send it to the true Emacs process + through a pipe. +*/ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'p' means it is /dev/ptyp0 */ + +/* #define FIRST_PTY_LETTER 'p' */ + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in for a timeval structure. + */ + +/* #define HAVE_TIMEVAL */ + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +/* #define HAVE_SELECT */ + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +/* #define HAVE_PTYS */ + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +/* #define HAVE_SOCKETS */ + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +#define NONSYSTEM_DIR_LIBRARY + +/* Define this symbol if your system has the functions bcopy, etc. */ + +/* #define BSTRING */ + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is supposed to work now on system V release 2. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* Xenix requires completely different unexec code + which lives in a separate file. Specify the file name. */ + +#define UNEXEC unexenix.o + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +#define MAIL_USE_FLOCK + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* The way this is implemented requires long filenames... */ +/* #define CLASH_DETECTION */ + +/* Define SHORTNAMES if the C compiler can distinguish only + short names. It means that the stuff in ../shortnames + must be run to convert the long names to short ones. */ + +/* #define SHORTNAMES */ + +/* We do not use the Berkeley (and usg5.2.2) interface to nlist. */ + +/* #define NLIST_STRUCT */ + +/* Compensate for one incompatibility between Xenix and V.0. */ +#define n_zeroes n_name[0] + +/* The file containing the kernel's symbol table is called /xenix. */ + +#define KERNEL_FILE "/xenix" + +/* The symbol in the kernel where the load average is found + is named avenrun. */ + +#define LDAV_SYMBOL "_avenrun" + +/* Special hacks needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +#define sigsetmask(mask) /* Null expansion */ + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ + +#define ADDR_CORRECT(x) (x) + +/* Prevent -lg from being used for debugging. Not implemented? */ + +#define LIBS_DEBUG + +/* Switches for linking temacs. */ + +#define LD_SWITCH_SYSTEM -i + +/* Xenix implements sysV style IPC. */ + +#define HAVE_SYSVIPC + +/* Use terminfo instead of termcap. */ + +/* Tell Emacs to use Terminfo. */ + +#define TERMINFO + +/* Tell Xenix curses to BE Terminfo. */ +#define M_TERMINFO + +/* Control program name for etc/fakemail to run. */ + +#ifdef SMAIL +#define MAIL_PROGRAM_NAME "/usr/bin/smail -q0" +#else +#define MAIL_PROGRAM_NAME "/usr/lib/mail/execmail" +#endif + +/* Some variants have TIOCGETC, but the structures to go with it + are not declared. */ + +#define BROKEN_TIOCGETC -- 2.11.4.GIT