Initial revision
authorJim Blandy <jimb@redhat.com>
Fri, 13 Dec 1991 18:49:49 +0000 (18:49 +0000)
committerJim Blandy <jimb@redhat.com>
Fri, 13 Dec 1991 18:49:49 +0000 (18:49 +0000)
65 files changed:
src/m/7300.h [new file with mode: 0644]
src/m/alliant.h [new file with mode: 0644]
src/m/altos.h [new file with mode: 0644]
src/m/amdahl.h [new file with mode: 0644]
src/m/apollo.h [new file with mode: 0644]
src/m/aviion.h [new file with mode: 0644]
src/m/celerity.h [new file with mode: 0644]
src/m/clipper.h [new file with mode: 0644]
src/m/cnvrgnt.h [new file with mode: 0644]
src/m/convex.h [new file with mode: 0644]
src/m/cydra5.h [new file with mode: 0644]
src/m/delta.h [new file with mode: 0644]
src/m/dual.h [new file with mode: 0644]
src/m/elxsi.h [new file with mode: 0644]
src/m/gec63.h [new file with mode: 0644]
src/m/gould.h [new file with mode: 0644]
src/m/hp800.h [new file with mode: 0644]
src/m/hp9000s300.h [new file with mode: 0644]
src/m/ibm370aix.h [new file with mode: 0644]
src/m/ibmps2-aix.h [new file with mode: 0644]
src/m/intel386.h [new file with mode: 0644]
src/m/iris4d.h [new file with mode: 0644]
src/m/irist.h [new file with mode: 0644]
src/m/isi-ov.h [new file with mode: 0644]
src/m/masscomp.h [new file with mode: 0644]
src/m/mega68.h [new file with mode: 0644]
src/m/mg1.h [new file with mode: 0644]
src/m/mips.h [new file with mode: 0644]
src/m/mips4.h [new file with mode: 0644]
src/m/news.h [new file with mode: 0644]
src/m/ns16000.h [new file with mode: 0644]
src/m/ns32000.h [new file with mode: 0644]
src/m/nu.h [new file with mode: 0644]
src/m/orion.h [new file with mode: 0644]
src/m/orion105.h [new file with mode: 0644]
src/m/plexus.h [new file with mode: 0644]
src/m/pmax.h [new file with mode: 0644]
src/m/pyramid.h [new file with mode: 0644]
src/m/sequent.h [new file with mode: 0644]
src/m/sparc.h [new file with mode: 0644]
src/m/sps7.h [new file with mode: 0644]
src/m/stride.h [new file with mode: 0644]
src/m/sun1.h [new file with mode: 0644]
src/m/sun2.h [new file with mode: 0644]
src/m/tahoe.h [new file with mode: 0644]
src/m/targon31.h [new file with mode: 0644]
src/m/tek4300.h [new file with mode: 0644]
src/m/template.h [new file with mode: 0644]
src/m/tower32.h [new file with mode: 0644]
src/m/tower32v3.h [new file with mode: 0644]
src/m/ustation.h [new file with mode: 0644]
src/m/vax.h [new file with mode: 0644]
src/m/wicat.h [new file with mode: 0644]
src/m/xps100.h [new file with mode: 0644]
src/s/aix3-1.h [new file with mode: 0644]
src/s/bsd4-3.h [new file with mode: 0644]
src/s/hpux.h [new file with mode: 0644]
src/s/hpux8.h [new file with mode: 0644]
src/s/iris3-6.h [new file with mode: 0644]
src/s/isc2-2.h [new file with mode: 0644]
src/s/rtu.h [new file with mode: 0644]
src/s/sunos4shr.h [new file with mode: 0644]
src/s/template.h [new file with mode: 0644]
src/s/usg5-3.h [new file with mode: 0644]
src/s/usg5-4.h [new file with mode: 0644]

diff --git a/src/m/7300.h b/src/m/7300.h
new file mode 100644 (file)
index 0000000..3160692
--- /dev/null
@@ -0,0 +1,91 @@
+/* machine description file for AT&T UNIX PC model 7300
+   Copyright (C) 1986 Free Software Foundation, Inc.
+   Modified for this machine by mtxinu!rtech!gonzo!daveb
+
+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="usg5-2-2"  */
+
+/* Supposedly now these machines have flexnames.
+
+/* # define SHORTNAMES */
+
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000 are the ones defined so far.  */
+
+# ifndef mc68k
+# define mc68k
+# endif
+#ifndef m68k
+#define m68k
+#endif
+
+/* Cause crt0.c to define errno.  */
+
+#define NEED_ERRNO
+
+/* Data type of load average, as read out of kmem.  */
+/* These are commented out since it is not supported by this machine.  */
+  
+/* #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) */
+
+#define SWITCH_ENUM_BUG
+
+/* These three lines were new in 18.50.  They were said to permit
+   a demand-paged executable, but someone else says they don't work.
+   Someone else says they do.  They didn't work because errno was an
+   initialized variable in crt0.c, and because of %splimit (also therein),
+   both of which have been fixed now. */
+#define SECTION_ALIGNMENT 0x03ff
+#define SEGMENT_MASK 0xffff
+#define LD_SWITCH_MACHINE -z
diff --git a/src/m/alliant.h b/src/m/alliant.h
new file mode 100644 (file)
index 0000000..17ede61
--- /dev/null
@@ -0,0 +1,147 @@
+/* alliant.h  Alliant machine running system version 2 or 3.
+   Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
+   Note that for version 1 of the Alliant system
+   you should use alliant1.h instead of this file.
+   Use alliant4.h for version 4.
+
+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="bsd4-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#ifdef ALLIANT_1
+#define NO_ARG_ARRAY
+#endif
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+
+#define ALLIANT
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+/* On Alliants, bitfields are unsigned. */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* No load average information available for Alliants. */
+
+#undef LOAD_AVE_TYPE
+#undef LOAD_AVE_CVT
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#undef VIRT_ADDR_VARIES
+
+/* 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.  */
+
+#undef C_ALLOCA
+#define HAVE_ALLOCA
+
+#ifdef ALLIANT_1
+#define C_ALLOCA
+#undef HAVE_ALLOCA
+#endif /* ALLIANT_1 */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+/* Actually, Alliant CONCENTRIX does paging "right":
+   data pages are copy-on-write, which means that the pure data areas
+   are shared automatically and remapping is not necessary.  */
+
+#define NO_REMAP
+
+/* Alliant needs special crt0.o because system version is not reentrant */
+
+#define START_FILES crt0.o
+
+/* Alliant dependent code for dumping executing image.
+   See crt0.c code for alliant.  */
+
+#define ADJUST_EXEC_HEADER {\
+extern int _curbrk, _setbrk;\
+_setbrk = _curbrk;\
+hdr.a_bss_addr = bss_start;\
+unexec_text_start = hdr.a_text_addr;}
+
+/* cc screws up on long names.  Try making cpp replace them.  */
+
+#ifdef ALLIANT_1
+#define Finsert_abbrev_table_description Finsert_abbrev_table_descrip
+#define internal_with_output_to_temp_buffer internal_with_output_to_tem
+#endif
+
+/* "vector" is a typedef in /usr/include/machine/reg.h, so its use as
+   a variable name causes errors when compiling under ANSI C.  */
+
+#define vector xxvector
diff --git a/src/m/altos.h b/src/m/altos.h
new file mode 100644 (file)
index 0000000..539f79d
--- /dev/null
@@ -0,0 +1,77 @@
+/* altos machine description file      Altos 3068 Unix System V Release 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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Vax is not big-endian: lowest numbered byte is least significant,
+   but 68000's are. */
+
+#define BIG_ENDIAN
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+#define LIB_STANDARD -lc
+
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#define HAVE_ALLOCA
+#else
+#define C_ALLOCA               /* we have -lPW and alloca but it's broken!
+                                  <vsedev!ron> */
+#endif
+
+#define SWITCH_ENUM_BUG
+
+#define NO_REMAP
+#define STACK_DIRECTION -1
+
+#undef TERMINFO
+
+#undef CANNOT_DUMP
+#undef SHORTNAMES
+#define TERMCAP
+
+#define LIBS_TERMCAP -ltermlib
+#define PURESIZE 220000
+#define ALTOS
+
+#ifdef __GNUC__
+#define COFF_ENCAPSULATE
+#endif
diff --git a/src/m/amdahl.h b/src/m/amdahl.h
new file mode 100644 (file)
index 0000000..261d369
--- /dev/null
@@ -0,0 +1,171 @@
+/* amdahl machine description file 
+   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.  */
+
+/*
+This file for amdahl_uts created by modifying the template.h
+by Jishnu Mukerji 3/1/87
+
+The following line tells the configuration script what sort of
+operating system this machine is likely to run.
+USUAL-OPSYS="usg5-2-2"
+
+This file works with the Amdahl uts native C compiler. The 5.2u370
+compiler is so brain damaged that it is not even worth trying to use it.
+*/
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#undef NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#define WORD_MACHINE /* not actually used anywhere yet! */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (((sign_extend_temp=(c)) & 0x80) \
+                            ? (sign_extend_temp | 0xFFFFFF00) \
+                            : (sign_extend_temp))
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+
+/* uts gets defined automatically */
+/* However for clarity define amdahl_uts */
+#define amdahl_uts
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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)*/
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES*/
+
+/* 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 */
+
+#ifdef HAVE_ALLOCA
+#define LIB_STANDARD -lPW -lc
+#endif
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+/*#define NO_REMAP*/
+
+#define TERMINFO
+
+/* The usual definition of XINT, which involves shifting, does not
+   sign-extend properly on this machine.  */
+
+#define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \
+                ? (sign_extend_temp | 0xFF000000) \
+                : (sign_extend_temp & 0x00FFFFFF))
+
+#ifdef emacs /* Don't do this when making xmakefile! */
+extern int sign_extend_temp;
+#endif
+
+/* The following needed to load the proper crt0.o and to get the
+   proper declaration of data_start in the #undef NO_REMAP case */
+
+#ifndef NO_REMAP
+#define START_FILES pre-crt0.o /lib/crt0.o
+#endif
+
+/* Perhaps this means that the optimizer isn't safe to use.  */
+
+#define C_OPTIMIZE_SWITCH
+
+/* Put text and data on non-segment boundary; makes image smaller */
+
+#define LD_SWITCH_MACHINE      -N 
+
+/* When writing the 'xemacs' file, make text segment ro */
+#define EXEC_MAGIC     0410
+
+/* Mask for address bits within a memory segment */
+#define SEGSIZ 0x10000         /* Should this not be defined elsewhere ? */
+#define SEGMENT_MASK (SEGSIZ - 1)
+
+/* Tell alloca.c which direction stack grows.  */
+#define STACK_DIRECTION -1
+
+/* Compensate for error in signal.h.  */
+#if NSIG==19
+#undef NSIG
+#define NSIG 20
+#endif
diff --git a/src/m/apollo.h b/src/m/apollo.h
new file mode 100644 (file)
index 0000000..7f2ba4c
--- /dev/null
@@ -0,0 +1,101 @@
+/* machine description file for Apollo machine.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="bsd4-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* 68000 has lowest-numbered byte as most significant */
+
+#define BIG_ENDIAN
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Say this machine is a 68000 */
+
+/* #define m68000 */   /* Done by the C compiler */
+
+#define APOLLO
+
+/* Assume we use s-bsd4-3.h for system version 10.  */
+
+#ifdef BSD4_3
+#define APOLLO_SR10
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT
+   since there is no /dev/kmem */
+
+/* Define CANNOT_DUMP because it is impossible to dump.  */
+
+#define CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES because the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.  */
+
+#define VIRT_ADDR_VARIES
+
+/* Define HAVE_ALLOCA because we use the system's version of alloca.  */
+
+#define HAVE_ALLOCA
+
+/* DN460 has a 28 bit virtual address space, and 26 bits are often used */
+
+#define VALBITS 26
+#define GCTYPEBITS 5
+
+/* Prevent -lg from being used for debugging.  Not needed.  */
+
+#define LIBS_DEBUG
+
+/* Must use the system's termcap.  It does special things.  */
+
+#define LIBS_TERMCAP -ltermcap
+
+/* Must use the system's malloc and alloca.  */
+
+#define SYSTEM_MALLOC
+
+/* No crt0 is needed, but control where environ is allocated.  */
+
+#define START_FILES pre-crt0.o
+
+/* Apollo's bcopy said to lose on more than 16k bytes in SR9.5.  */
+
+#ifndef APOLLO_SR10
+#undef BSTRING
+#endif
diff --git a/src/m/aviion.h b/src/m/aviion.h
new file mode 100644 (file)
index 0000000..fa116db
--- /dev/null
@@ -0,0 +1,150 @@
+/* machine description file for Data General AViiON.
+   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.  */
+
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#define WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Define DATA_SEG_BITS if pointers need to be corrected with
+   a segment field.  */
+
+#ifdef FIX_ADDRESS
+#define DATA_SEG_BITS 0xef000000
+#endif
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+
+#ifndef m88k
+#define m88k
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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) */
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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
+#define alloca(x) __builtin_alloca(x)
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+
+/* Use 26 bits instead of 24 for internal pointer values */
+
+#define VALBITS 26
+#define GCTYPEBITS 5
+
+/* Define ADDR_CORRECT(ADDR) to be a macro to correct an int which is
+   the bit pattern of a pointer to a byte into an int which is the
+   number of a byte.
+
+   This macro has a default definition which is usually right.
+   This default definition is a no-op on most machines (where a
+   pointer looks like an int) but not on all machines. */
+
+#define        ADDR_CORRECT(ADDR) ((int)ADDR)
+
+/* Cast pointers to this type to compare them. */
+
+#define        PNTR_COMPARISON_TYPE    void *
+
+/* Some machines that use COFF executables require that each section
+   start on a certain boundary *in the COFF file*.  Such machines should
+   define SECTION_ALIGNMENT to a mask of the low-order bits that must be
+   zero on such a boundary.  This mask is used to control padding between
+   segments in the COFF file.
+
+   If SECTION_ALIGNMENT is not defined, the segments are written
+   consecutively with no attempt at alignment.  This is right for
+   unmodified system V.  */
+
+#define SECTION_ALIGNMENT 0x7
+
diff --git a/src/m/celerity.h b/src/m/celerity.h
new file mode 100644 (file)
index 0000000..7dced85
--- /dev/null
@@ -0,0 +1,73 @@
+/* machine description file for Celerity.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="bsd4-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* XINT must explicitly sign extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* celerity preprocessor defines "accel", however the following is clearer */
+#define celerity
+
+/* #define NO_UNION_TYPE would be preferable,
+   but it does not work, and the reason is not yet known.  */
+
+#define NO_UNION_TYPE
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+/* A machine-specific loader switch is needed.  */
+
+#define LD_SWITCH_MACHINE -k100000
+
+/* alloca is provided by the system.  */
+
+#define HAVE_ALLOCA
+
+/* (short) negative-int doesn't sign-extend correctly */
+#define SHORT_CAST_BUG
diff --git a/src/m/clipper.h b/src/m/clipper.h
new file mode 100644 (file)
index 0000000..6614f52
--- /dev/null
@@ -0,0 +1,117 @@
+/* machine description file for clipper
+   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.  */
+
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+/* #define BIG_ENDIAN */
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) ((((int) (c)) << 24) >> 24)
+/* #define SIGN_EXTEND_CHAR(c) (c) */
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically */
+
+#define clipper 1
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* crt0.c should define a symbol `start' and do .globl with a dot.  */
+
+#define DOT_GLOBAL_START
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+/* #define EXPLICIT_SIGN_EXTEND */
+
+/* USG systems I know of running on Vaxes do not actually
+   support the load average, so disable it for them.  */
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */  /* Karl Kleinpaste says this isn't needed.  */
+
+/* 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 NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+/* #define NO_REMAP */
+
+#ifdef USG
+#define TEXT_START 0
+#endif /* USG */
+
+#define LD_TEXT_START_ADDR 8000
diff --git a/src/m/cnvrgnt.h b/src/m/cnvrgnt.h
new file mode 100644 (file)
index 0000000..dcbeb3c
--- /dev/null
@@ -0,0 +1,124 @@
+/* machine description file for convergent S series.
+   Copyright (C) 1989 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 three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically.  */
+
+#define m68000
+
+/* Use type int rather than a union, to represent Lisp_Object.
+   This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.
+   These are commented out since it is not supported by this machine.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0 */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#undef VIRT_ADDR_VARIES
+
+/* 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
+#undef HAVE_ALLOCA
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+\f
+/* Change some things to avoid bugs in compiler.  */
+
+#define SWITCH_ENUM_BUG
+
+/* fork(2) and vfork() are the same here.  */
+
+#define HAVE_VFORK
+
+/* grows towards lower addresses.  */
+
+#define        STACK_DIRECTION -1
+
+/* some errno.h's don't actually allocate the variable itself.
+   Cause crt0.c to define errno.  */
+
+#define NEED_ERRNO
diff --git a/src/m/convex.h b/src/m/convex.h
new file mode 100644 (file)
index 0000000..e6bfbec
--- /dev/null
@@ -0,0 +1,173 @@
+/* machine description file for convex C1.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="bsd4-3"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.
+ * Maybe it would be better to simply correct the code. */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically.  */
+
+/* convex already defined... */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* crt0.c should use the vax-bsd style of entry, with no dummy args.  */
+
+#define CRT0_DUMMIES
+
+/* crt0.c should define a symbol `start' and do .globl with a dot.  */
+
+#define DOT_GLOBAL_START
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) (int) ((x) * 100.0)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/*#define VIRT_ADDR_VARIES*/
+
+/* 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
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+/* #define NO_REMAP */
+\f
+/* Addresses on the Convex have the high bit set.  */
+#define DATA_SEG_BITS (1 << (INTBITS-1))
+
+/* Right shift is logical shift.
+   And the usual way of handling such machines, which involves
+   copying the number into sign_extend_temp, does not work
+   for reasons as yet unknown.  */
+
+#define XINT(a)  sign_extend_lisp_int (a)
+
+/* Convex uses a special version of unexec.  */
+
+#define UNEXEC unexconvex.o
+
+/* you gotta define 'COFF' for post 6.1 unexec. */
+
+#define COFF
+#define TEXT_START 0x80001000
+
+/* Posix stuff for Convex OS 8.1 and up. */
+
+#define C_SWITCH_MACHINE -pcc
+#define LD_SWITCH_MACHINE \
+    -e__start -L /usr/lib \
+    '-A__iob=___ap$$iob' '-A_use_libc_sema=___ap$$use_libc_sema'
+
+/* Use setsid when starting up inferiors. */
+#define HAVE_SETSID
+
+/* Use <dirent.h>. */
+#define SYSV_SYSTEM_DIR
+#define HAVE_CLOSEDIR
+
+#ifdef _POSIX_SOURCE
+
+/* These symbols have been undefined to advance the state of the art. */
+
+#define S_IFMT _S_IFMT
+#define S_IFDIR _S_IFDIR
+
+#define S_IREAD _S_IREAD
+#define S_IWRITE _S_IWRITE
+#define S_IEXEC _S_IEXEC
+
+#endif
+
+/* Ptys may start below ptyp0; call a routine to hunt for where. */
+
+#undef FIRST_PTY_LETTER
+#define FIRST_PTY_LETTER first_pty_letter()
+
+#if 0
+/*
+ * Force a K&R compilation and libraries with the Convex V 4.0 C compiler
+ */
+#define C_SWITCH_MACHINE -pcc
+#define LIB_STANDARD -lc_old
+#define LIBS_MACHINE -lC2_old
+#define LD_SWITCH_MACHINE -X -NL -fn -Enoposix -A__iob=___ap\$$iob \
+ -A_use_libc_sema=___ap\$$use_libc_sema -L /usr/lib
+#endif
diff --git a/src/m/cydra5.h b/src/m/cydra5.h
new file mode 100644 (file)
index 0000000..772e9b6
--- /dev/null
@@ -0,0 +1,139 @@
+/* machine description file for Cydrome's CYDRA 5 mini super computer
+   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="usg5-3"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#undef NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/*#define CANNOT_DUMP*/
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that data space precedes text space,
+   numerically.  */
+
+#undef VIRT_ADDR_VARIES
+
+/* 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
+#undef HAVE_ALLOCA
+
+/* The data segment in this machine always starts at address 0x10000000.
+   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 0x20000000
+#define DATA_START    0x20000000
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+#define BROKEN_FIONREAD /* We son't even have it */
+#define        LIBS_MACHINE    -lsocket -lnsl
+
+/* Stack grows downward in memory.  */
+#define        STACK_DIRECTION -1
+
+/* The data section in a coff file must be aligned in the file.  */
+#define        DATA_SECTION_ALIGNMENT  0xFFF
+
+/* Compiler won't allow switch (x) when x is an enum.  */
+#define        SWITCH_ENUM_BUG
+
+
+/* Explain how pty filenames work.  */
+
+#define PTY_ITERATION  for (i = 47; i >= 0; i--)
+#define PTY_NAME_SPRINTF  sprintf (ptyname, "/dev/pty%03x", i);
+#define PTY_TTY_NAME_SPRINTF  sprintf (ptyname, "/dev/ptm%03x", i);
+
+/* We can't do interrupt-driven input, so don't let user try.  */
+
+#undef SIGIO
diff --git a/src/m/delta.h b/src/m/delta.h
new file mode 100644 (file)
index 0000000..8dda4fd
--- /dev/null
@@ -0,0 +1,168 @@
+/* machine description file for the Motorola delta running System V.3.
+   tested on sys1147 (mvme147 - based system).
+   Copyright (C) 1986 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY.  No author or distributor
+accepts responsibility to anyone for the consequences of using it
+or for whether it serves any particular purpose or works at all,
+unless he says so in writing.  Refer to the GNU Emacs General Public
+License for full details.
+
+Everyone is granted permission to copy, modify and redistribute
+GNU Emacs, but only under the conditions described in the
+GNU Emacs General Public License.   A copy of this license is
+supposed to have been given to you along with GNU Emacs so you
+can know your rights and responsibilities.  It should be in a
+file named COPYING.  Among other things, the copyright notice
+and this notice must be preserved on all copies.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-3"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+#define m68000
+#define NO_REMAP
+
+#define HAVE_SYSVIPC
+
+#define HAVE_PTYS
+#define SYSV_PTYS
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE 
+#define SWITCH_ENUM_BUG
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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) */
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that data space precedes text space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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 */
+
+#ifdef __GNUC__
+/* easy. use builtin one. also be sure that no other ones are tried out. */
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA
+# undef C_ALLOCA
+#else
+# ifdef C_ALLOCA
+#  define STACK_DIRECTION (-1)  /* C_ALLOCA needs to know about stack. */
+# else /* C_ALLOCA */
+#  ifndef HAVE_ALLOCA
+#   define BAT_ALLOCA            /* if not in library, alloca.s needs this. */
+#  endif /* HAVE_ALLOCA */
+# endif /* C_ALLOCA */
+#endif /* __GNUC__ */
+
+/* The standard C library is -lcieee, not -lc.
+   Also use the PW library, which contains alloca.
+   DO NOT USE -lPW. That version of alloca is broken, at last until version
+   SVR3V5.1 . -riku@field.fi */
+
+#define LIB_STANDARD -lc
+
+#define LIBS_TERMCAP -lcurses
+
+/* define this if you want to use X11 */
+#undef HAVE_X_WINDOWS
+
+#ifdef HAVE_X_WINDOWS
+/* debug switches enabled because of some difficulties w/X11 */
+# define C_DEBUG_SWITCH -g
+# define OBJECTS_MACHINE -lg
+# define C_OPTIMIZE_SWITCH
+# define CANNOT_DUMP
+/*# define XDEBUG*/
+# define X11
+/* X library implements these. */
+# define BSTRING
+/* X library is in 'nonstandard' location. */
+# define LD_SWITCH_MACHINE -L/usr/lib/X11/
+#else
+/* No sufficient justification for this.  */
+/* # define C_DEBUG_SWITCH */
+# define C_OPTIMIZE_SWITCH -O
+#endif /* HAVE_X_WINDOWS */
+
+/* enable batdevice-dependent code to compile. */
+#define BAT68K
+
+#define HAVE_SOCKETS
+
+/* crt0.c should use the vax-bsd style of entry, with no dummy args.  */
+
+
+/* emacs's magic number isn't temacs's;
+   temacs is writeable text (the default!).  */
diff --git a/src/m/dual.h b/src/m/dual.h
new file mode 100644 (file)
index 0000000..0af8db5
--- /dev/null
@@ -0,0 +1,82 @@
+/* machine description file for Dual machines using unisoft port.
+   Copyright (C) 1985 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
+Dual running System V (-machine=dual -opsystem=usg5-2)
+
+  As of 17.46, this works except for a few changes
+  needed in unexec.c.
+
+Dual running Uniplus (-machine=dual -opsystem=unipl5-2)
+
+  Works, as of 17.51.
+NOTE-END */
+
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000 are the ones defined so far.  */
+
+#ifndef m68000
+#define m68000
+#endif
+
+/* Data type of load average, as read out of kmem.  */
+/* These are commented out since it does not really work in uniplus */
+  
+/* #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) */
+
+/* Change some things to avoid bugs in compiler */
+
+#define SWITCH_ENUM_BUG 1
diff --git a/src/m/elxsi.h b/src/m/elxsi.h
new file mode 100644 (file)
index 0000000..9f79c79
--- /dev/null
@@ -0,0 +1,153 @@
+/* machine description file for Elxsi machine (running enix).
+   Copyright (C) 1986 Free Software Foundation, Inc.
+   Adapted by John Salmon
+
+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="usg5-2"  */
+
+/* This file was modified by Matt Crawford <matt@tank.uchicago.edu>
+   to work under Elxsi's 12.0 release of BSD unix. */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+/*#define BIG_ENDIAN*/
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/*#define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/*#define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) ((int)c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+
+#ifndef elxsi
+#define elxsi
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+
+/* Name of kernel load average variable */
+
+#undef LDAV_SYMBOL
+#define LDAV_SYMBOL "avenrun"
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) (int) ((x) * 100.0)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.
+
+   The Elxsi can in principle dump, but the necessary changes to
+   unexec, which involve byte-swapping, were too ugly to install.
+   If someone submits simple code that supports dumping on the Elxsi,
+   it can be installed and CANNOT_DUMP can be turned off.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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 */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+/*#define NO_REMAP*/
+
+/* This is a guess for an alternate solution to whatever
+   problem motivated defining _sobuf in sysdep,c with extern char *_sobuf.  */
+#define _sobuf xsobuf
+
+/* Address of start of text segment as loaded.  */
+
+#define TEXT_START     0x800
+
+/* Tell crt0.c not to define environ.  */
+
+#define DONT_NEED_ENVIRON
+
+/* The elxsi has no debugger, so might as well optimize instead
+   of trying to make a symbol table.  */
+
+#define C_DEBUG_SWITCH -O
+
+/* Elxsi uses COFF under both Sys V and BSD environments */
+
+#define COFF
+
+#define ADJUST_EXEC_HEADER {\
+extern int _init_brk;\
+_init_brk = bss_start;\
+}
diff --git a/src/m/gec63.h b/src/m/gec63.h
new file mode 100644 (file)
index 0000000..4f8fe4a
--- /dev/null
@@ -0,0 +1,83 @@
+/* machine description file for gec63
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* GEC63 is big-endian: lowest numbered byte is most significant. */
+
+#define BIG_ENDIAN
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (((c)<<24)>>24)
+
+/* Say this machine is a 68000 */
+
+#define gec63
+
+/* Use an int to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* GEC63 has alloca in the PW/ux63 library.  */
+#define LIB_STANDARD -lPW -lc
+#define HAVE_ALLOCA
+
+/* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT
+   since there is no /dev/kmem */
+
+#undef ADDR_CORRECT(x)
+#define NO_ARG_ARRAY
+
+#undef TERMCAP
+#define TERMINFO
+
+/* Define sizes of portions of a Lisp_Object.  */
+#define VALBITS 22
+#define GCTYPEBITS 5
+
+#define VALAMASK (((1<<VALBITS) - 1)| 0xF0000000L)
+
+#define XTYPE(a) ((enum Lisp_Type) (((a) >> VALBITS) & GCTYPEMASK))
+#define XSETTYPE(a, b) ((a)  =  ((a) & VALAMASK)  +  ((int)(b) << VALBITS))
+
+#define XPNTR(a) ((a) & VALAMASK)
+#define XSETPNTR(a, b) ((a) = ((a) & ~VALAMASK)  +  ((b) & VALAMASK))
+
+#define XSET(var, type, ptr) \
+   ((var) = ((int)(type) << VALBITS) + ((int) (ptr) & VALAMASK))
+
+/* Move some garbage-collector flag bits to different bit positions.  */
+#define ARRAY_MARK_FLAG (1 << 27)
+#define DONT_COPY_FLAG (1 << 26)
+
+#define NO_REMAP
diff --git a/src/m/gould.h b/src/m/gould.h
new file mode 100644 (file)
index 0000000..a9e6752
--- /dev/null
@@ -0,0 +1,208 @@
+/* machine description file for Gould PowerNodes with UTX/32 2.0 and 2.1.
+   (See MACHINES for older versions.)
+
+* NOTE: If you are running a pre-release of UTX/32 2.1 you should #define
+* RELEASE2_1 in config.h. This may also be necessary with un-updated
+* official releases of 2.1
+
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="note"
+
+NOTE-START
+Gould Power Node (-machine=gould -opsystem=bsd4-2 or bsd4-3)
+(gould.h; s-bsd4-2.h or s-bsd4-3.h)
+
+  18.36 worked on versions 1.2 and 2.0 of the operating system.
+
+  On UTX/32 2.0, use -opsystem=bsd4-3
+
+  On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling 
+  lib-src/sorted-doc tickles a compiler bug:  remove the -g flag to cc in the 
+  makefile.
+
+  UTX/32 1.3 has a bug in the bcopy library routine.  Fix it by 
+  #undef BSTRING in gould.h.
+
+  Version 19 incorporates support for releases 2.1 and later of UTX/32.
+  A site running a pre-release of 2.1 should #define RELEASE2_1 in config.h.
+NOTE-END */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically */
+
+#ifndef GOULD
+#define GOULD
+#endif
+
+/* sel is an old preprocessor name on gould machines 
+  - it is no longer needed and interferes with a variable in xmenu.c */
+#undef sel
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* 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)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#define VIRT_ADDR_VARIES
+
+/* 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        STACK_DIRECTION -1  /* grows towards lower addresses on Gould UTX/32 */
+
+/* No need to extend the user stack. */
+
+/* If this is a 2.1 system, COFF will be predefined by cpp. If it's */
+/* pre-2.1 COFF won't be defined, which is as it should be. */
+
+#ifdef COFF
+
+#define HEADER_INCL_IN_TEXT
+#define COFF_BSD_SYMBOLS
+
+/* Seems to be necessary with coff */
+#define NO_REMAP
+
+#ifndef GOULD_NP1
+/* gould-np1.h includes this file */
+/* keep the old value - don't skip over the headers */
+#define KEEP_OLD_TEXT_SCNPTR
+#define KEEP_OLD_PADDR
+#ifndef RELEASE2_1
+#define ADJUST_TEXTBASE
+#endif /*RELEASE2_1*/
+#endif /* GOULD_NP1 */
+
+#ifdef IN_UNEXEC
+/* make Gould NP and PN COFF look like USG COFF */
+/* PN COFF */
+#define aouthdr old_exec
+/* PN COFF doesn't have a data_start or a_dtbase field in its */
+/* optional header, so substitute a junk field */
+#define a_dtbase a_ccvers
+/* Gould COFF */
+#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
+#endif /* IN_UNEXEC */
+
+/* Define how to search all pty names.
+ * This is for UTX 2.1 and greater on PN and all NP versions. It is only
+ * accident that this happens to correspond to the same versions of UTX
+ * as COFF does, but we'll take advantage of that here.
+ */
+
+/*#define USE_PTY_PAIR*/
+
+#endif /* COFF */
+
+/* -g is sometimes broken on the Gould.  */
+
+#define C_DEBUG_SWITCH
+
+/* Comparing pointers as unsigned ints tickles a bug in older compilers.  */
+
+#define PNTR_COMPARISON_TYPE int
+
+/* The GOULD machine counts the a.out file header as part of the text.  */
+
+#define A_TEXT_OFFSET(HDR) sizeof (HDR)
+
+/* Machine-dependent action when about to dump an executable file.  */
+
+#ifndef COFF
+#define ADJUST_EXEC_HEADER   \
+  unexec_text_start = hdr.a_txbase + sizeof (hdr);
+#endif
+
+/* We use the system's crt0.o.  Somehow it avoids losing
+   with `environ' the way most standard crt0.o's do.  */
+
+#define START_FILES pre-crt0.o /lib/crt0.o
diff --git a/src/m/hp800.h b/src/m/hp800.h
new file mode 100644 (file)
index 0000000..4b06826
--- /dev/null
@@ -0,0 +1,193 @@
+/* machine description file for hp9000 series 800 machines.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="hpux"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+#ifndef hp9000s800
+#      define hp9000s800
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) (x * 100.0))
+
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#define VIRT_ADDR_VARIES
+
+/* 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 */
+\f
+/* the data segment on this machine always starts at address 0x40000000. */
+
+#define DATA_SEG_BITS 0x40000000
+
+#define VALBITS    26
+#define GCTYPEBITS 5
+
+#define DATA_START    0x40000000
+#define TEXT_START    0x00000000
+
+#define STACK_DIRECTION 1 
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+
+/* This machine requires completely different unexec code
+   which lives in a separate file.  Specify the file name.  */
+
+#define UNEXEC unexhp9k800.o
+
+#define LIBS_MACHINE
+#define LIBS_DEBUG
+
+/* Define NEED_BSDTTY if you have such. */
+
+#define NEED_BSDTTY
+\f
+/* The standard definitions of these macros would work ok,
+   but these are faster because the constants are short. */
+   
+
+#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS)
+
+#define XSET(var, type, ptr) \
+   ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS))
+
+#define XSETINT(a, b)  XSET(a, XTYPE(a), b)
+#define XSETUINT(a, b) XSET(a, XTYPE(a), b)
+#define XSETPNTR(a, b) XSET(a, XTYPE(a), b)
+#define XMARKBIT(a) ((a) < 0)
+#define XSETMARKBIT(a,b) ((a) = ((b) ? (a)|MARKBIT : (a) & ~MARKBIT))
+
+#if 0  /* Loses when sign bit of type field is set.  */
+#define XUNMARK(a) ((a) = (((a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS))
+#endif
+
+/* The symbol in the kernel where the load average is found
+   is named _avenrun.  At this time there are two major flavors
+   of hp-ux (there is the s800 and s300 (s200) flavors).  The
+   differences are thusly moved to the corresponding machine description file.
+*/
+
+/* no underscore please */
+#define LDAV_SYMBOL "avenrun"
+#define CPTIME_SYMBOL "cp_time"
+#define DKXFER_SYMBOL "dk_xfer"
+
+#if 0   /* Supposedly no longer true.  */
+/* In hpux, for unknown reasons, S_IFLNK is defined even though
+   symbolic links do not exist.
+   Make sure our conditionals based on S_IFLNK are not confused.
+
+   Here we assume that stat.h is included before config.h
+   so that we can override it here.  */
+
+#undef S_IFLNK
+#endif
+
+/* Define the BSTRING functions in terms of the sysV functions. */
+
+#define bcopy(a,b,s)   memcpy (b,a,s)
+#define bzero(a,s)     memset (a,0,s)
+#define bcmp           memcmp
+
+/* On USG systems these have different names. */
+
+#define index strchr
+#define rindex strrchr
+
+/* Include the file bsdtty.h, since this machine has job control.  */
+#define NEED_BSDTTY
diff --git a/src/m/hp9000s300.h b/src/m/hp9000s300.h
new file mode 100644 (file)
index 0000000..1e6c232
--- /dev/null
@@ -0,0 +1,224 @@
+/* machine description file for hp9000 series 200 or 300 on either HPUX or BSD.
+   Copyright (C) 1985 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
+HP 9000 series 200 or 300 (-machine=hp9000s300)
+
+  These machines are 68000-series CPUs running HP-UX
+  (a derivative of sysV with some BSD features) or BSD 4.3 ported by Utah.
+
+  If you're running HP-UX, specify `-opsystem=hpux'.
+
+  If you're running Utah's BSD port, don't use this -machine option;
+  instead, specify `-machine=hp300bsd' and `-opsystem=bsd4-3'.
+NOTE-END */
+
+/* Define this symbol if you are running a version of HP-UX
+   which predates version 6.5 */
+
+/* #define NOMULTIPLEJOBS */
+
+/* Define this symbol if you are running a version of HP-UX
+   which predates version 6.01 */
+
+/* #define HPUX_5 */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically.  */
+
+#ifndef hp9000s300
+#define hp9000s300
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+\f
+/* For University of Utah 4.3bsd implemetation on HP300s.
+   The #ifndef __GNUC__ definitions are required for the "standard" cc,
+   a very old, brain-dead version of PCC. */
+
+#ifdef BSD4_3
+/* Tell crt0.c that this is an ordinary 68020.  */
+#undef hp9000s300
+#define CRT0_DUMMIES           bogus_a6,
+
+#define HAVE_ALLOCA
+
+#ifndef __GNUC__
+#define LIBS_DEBUG             /* don't have -lg that works */
+#define C_DEBUG_SWITCH         /* don't support -g */
+#endif
+
+#undef LOAD_AVE_TYPE
+#undef LOAD_AVE_CVT
+#define LOAD_AVE_TYPE long
+#define LOAD_AVE_CVT(x) ((int) (((double) (x)) / 2048.0 * 100.0))
+
+#endif /* BSD4_3 */
+\f
+#ifndef BSD4_3
+/* The following definitions are for HPUX only.  */
+
+/* The symbol in the kernel where the load average is found
+   is named _avenrun on this machine.  */
+
+#define LDAV_SYMBOL "_avenrun"
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+/* This library is needed with -g, on the 200/300 only.  */
+
+#if !defined(__GNUC__) || defined(__HPUX_ASM__)
+#define LIBS_DEBUG /usr/lib/end.o
+#endif
+
+/* The symbol FIONREAD is defined, but the feature does not work
+   on the 200/300.  */
+
+#define BROKEN_FIONREAD
+
+/* In older versions of hpux, for unknown reasons, S_IFLNK is defined
+   even though symbolic links do not exist.
+   Make sure our conditionals based on S_IFLNK are not confused.
+
+   Here we assume that stat.h is included before config.h
+   so that we can override it here.
+
+   Version 6 of HP-UX has symbolic links.  */
+
+#ifdef HPUX_5
+#undef S_IFLNK
+#endif
+
+/* Define the BSTRING functions in terms of the sysV functions.
+   Version 6 of HP-UX supplies these in the BSD library. */
+
+#ifdef HPUX_5
+#define bcopy(a,b,s)   memcpy (b,a,s)
+#define bzero(a,s)     memset (a,0,s)
+#define bcmp           memcmp
+#endif
+
+/* On USG systems these have different names.
+   Version 6 of HP-UX supplies these in the BSD library. */
+
+#ifdef HPUX_5
+#define index strchr
+#define rindex strrchr
+#endif
+
+/* Define C_SWITCH_MACHINE to be +X if you want the s200/300
+ * Emacs to run on both 68010 and 68020 based hp-ux's.
+ *
+ * Define OLD_HP_ASSEMBLER if you have an ancient assembler
+ *
+ * Define HPUX_68010 if you are using the new assembler but
+ * compiling for a s200 (upgraded) or s310.  68010 based
+ * processor without 68881.
+ */
+
+/* These switches increase the size of some internal C compiler tables.
+   They are required for compiling the X11 interface files. */
+
+#ifndef HPUX_5
+#ifndef __GNUC__
+#define C_SWITCH_MACHINE -Wc,-Nd4000,-Ns3000
+#endif
+#endif
+
+#endif /* not BSD4_3 */
+
+/* Define NEED_BSDTTY if you have such. */
+
+#ifndef NOMULTIPLEJOBS
+#define NEED_BSDTTY
+#endif
+
+#ifndef NOT_C_CODE
+#ifndef NO_SHORTNAMES
+#include <sys/wait.h>
+#define WAITTYPE int
+#endif
+#define WRETCODE(w) (((w) >> 8) & 0377)
+#endif
diff --git a/src/m/ibm370aix.h b/src/m/ibm370aix.h
new file mode 100644 (file)
index 0000000..49f06e5
--- /dev/null
@@ -0,0 +1,174 @@
+/* ibm370.h
+   For IBM 3090 type systems running AIX370.
+   Concocted by Scott Schwartz <schwartz@cs.psu.edu>
+   Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY.  No author or distributor
+accepts responsibility to anyone for the consequences of using it
+or for whether it serves any particular purpose or works at all,
+unless he says so in writing.  Refer to the GNU Emacs General Public
+License for full details.
+
+Everyone is granted permission to copy, modify and redistribute
+GNU Emacs, but only under the conditions described in the
+GNU Emacs General Public License.   A copy of this license is
+supposed to have been given to you along with GNU Emacs so you
+can know your rights and responsibilities.  It should be in a
+file named COPYING.  Among other things, the copyright notice
+and this notice must be preserved on all copies.  */
+
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (((c) & 0x80) ? ((c) | 0xffffff80) : (c))
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+/* high-c defines _AIX370 */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+/* XXX */
+#define LOAD_AVE_CVT(x) (int)(((double) (x)) * 100.0 / 1.0)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+#define CANNOT_DUMP 
+#define CANNOT_UNEXEC
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#define VIRT_ADDR_VARIES
+
+/* 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
+
+#ifndef NO_SHORTNAMES
+#include <alloca.h>
+#include <setjmp.h>
+#endif
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+
+/* Don't try to include sioctl.h.  */
+#undef NEED_SIOCTL
+/* That probably means we shouldn't try ptem.h either.  */
+#undef NEED_PTEM_H
+
+/* Note we do not define IBMAIX, since the `hft' features
+   don't exist on this machine.  */
+
+#define LIBS_DEBUG -lg
+#ifndef LD_SWITCH_SYSTEM
+#define LD_SWITCH_SYSTEM
+#endif
+
+#define LIBS_SYSTEM -lbsd
+
+/* The symbol in the kernel where the load average is found
+   is named _avenrun.  */
+
+#undef LDAV_SYMBOL
+#define LDAV_SYMBOL "_avenrun"
+
+/* 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 BSTRING
+
+/* 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 <sys/time.h> 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
diff --git a/src/m/ibmps2-aix.h b/src/m/ibmps2-aix.h
new file mode 100644 (file)
index 0000000..1503d3e
--- /dev/null
@@ -0,0 +1,238 @@
+/* machine description file for ibm ps/2 aix386.
+   Copyright (C) 1989 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 -opsystem=usg5-3 on AIX 1.2.
+  -opsystem=usg5-2-2 should work on either AIX 1.1 or 1.2, but may not
+  work with certain new X window managers, and may be suboptimal.
+NOTE-END */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* i386 is not big-endian: lowest numbered byte is least significant. */
+
+/* #undef BIG_ENDIAN */
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) ((signed char) (c))
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+
+#define INTEL386
+#define aix386
+#undef  SYSTEM_TYPE
+#define SYSTEM_TYPE "ibm-aix-386"
+
+#define IBMAIX
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* crt0.c, if it is used, should use the i386-bsd style of entry.
+   with no extra dummy args.  On USG and XENIX,
+   NO_REMAP says this isn't used. */
+
+#define CRT0_DUMMIES bogus_fp,
+
+/* crt0.c should define a symbol `start' and do .globl with a dot.  */
+
+#define DOT_GLOBAL_START
+
+/* USG systems do not actually support the load average,
+so disable it for them.  */
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* Define addresses, macros, change some setup for dump */
+
+#define NO_REMAP
+#undef static
+  /* Since NO_REMAP, problem with statics doesn't exist */
+
+#ifdef USG5_3
+#define TEXT_START 0x00000000
+#else
+#define TEXT_START 0x00400000
+#define TEXT_END 0
+#define DATA_START 0x00800000
+#define DATA_END 0
+
+/* The data segment in this machine always starts at address 0x00800000.
+   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 0x00800000
+#endif
+
+#if 0 /* I refuse to promulgate a recommendation that would make
+         users unable to debug - RMS.  */
+/* delete the following line to foil optimization, enable debugging */
+#define C_DEBUG_SWITCH -O
+#endif
+
+#define BSTRING
+#define HAVE_DUP2
+#define HAVE_GETTIMEOFDAY
+#define HAVE_SELECT
+#define HAVE_TIMEVAL
+#define HAVE_VFORK
+
+/*
+ *     Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir
+ *     library functions.  Almost, but not quite the same as
+ *     the 4.2 functions
+ */
+#define SYSV_SYSTEM_DIR
+
+/*
+ *     Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
+ *      The 4.2 opendir, etc., library functions.
+ */
+#undef  NONSYSTEM_DIR_LIBRARY
+
+/* But don't use utimes() -- it causes SIGSEGV!  Use utime() instead. */
+#define USE_UTIME
+
+/* AIX defines FIONREAD, but it does not work.  */
+#define BROKEN_FIONREAD
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE long     /* For AIX (sysV) */
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) (int) (((double) (x)/65535.0) * 100.0)
+\f
+/* This page was added in June 1990.  It may be incorrect for some versions
+   of aix, so delete it if it causes trouble.  */
+
+/* AIX has sigsetmask() */
+#undef sigsetmask
+
+/* AIX386 has BSD4.3 PTYs */
+
+#define HAVE_PTYS
+
+/* AIX has IPC. It also has sockets, and either can be used for client/server.
+   I would suggest the client/server code be changed to use HAVE_SOCKETS rather
+   than BSD as the conditional if sockets provide any advantages. */
+
+#define HAVE_SYSVIPC
+
+/* AIX has sockets */
+
+#define HAVE_SOCKETS
+/* #define SKTPAIR */ /* SKTPAIR works, but what is advantage over pipes? */
+
+/* Specify the font for X to use.  */
+
+#define X_DEFAULT_FONT "8x13"
+
+/* AIX has a wait.h.  */
+
+#define HAVE_WAIT_HEADER
+\f
+/* sioctl.h should not be included, says bytheway@cs.utah.edu.  */
+#undef NEED_SIOCTL
+/* I'm guessing that that means it doesn't want ptem.h either.  */
+#undef NEED_PTEM_H
+
+/* aix has `union wait'  */
+#define HAVE_UNION_WAIT
+
+/* Here override various assumptions in ymakefile */
+
+/* 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.  */
+
+#ifdef __GNUC__
+#define HAVE_ALLOCA
+#define alloca(n) __builtin_alloca(n)
+#define LIB_STANDARD /usr/local/lib/gcc-gnulib -lbsd -lrts -lc 
+/* -g fails to work, so it is omitted.  */
+/* tranle says that -fstrength-reduce does not help.  */
+#define C_DEBUG_SWITCH -O -fwritable-strings
+#else
+#define C_ALLOCA
+#define STACK_DIRECTION -1 /* tell alloca.c which way it grows */
+#define LIBS_MACHINE -lbsd -lrts
+#endif
+
+#define OBJECTS_MACHINE hftctl.o
+#define LD_SWITCH_MACHINE -T0x00400000 -K -e start
+
+#ifdef USG5_3
+#define XICCC
+#define HAVE_GETWD
+#define HAVE_RENAME
+#undef LD_SWITCH_MACHINE
+#define LD_SWITCH_MACHINE -T0x0 -K -e start
+
+/* Things defined in s-usg5-3.h that need to be overridden.  */
+#undef NOMULTIPLEJOBS
+#undef BROKEN_TIOCGETC
+#undef LIBX10_SYSTEM
+#undef LIBX11_SYSTEM
+#endif
diff --git a/src/m/intel386.h b/src/m/intel386.h
new file mode 100644 (file)
index 0000000..de07923
--- /dev/null
@@ -0,0 +1,182 @@
+/* machine description file for intel 386.
+   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.  */
+
+
+/* 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.
+
+Cubix QBx/386 (-machine=intel386 -opsystem=usg5-3)
+
+  Changes merged in 19.1.  Systems before 2/A/0 may fail to compile etags.c
+  due to a compiler bug.
+
+Prime EXL (-machine=intel386 -opsystem=usg5-3)
+
+  Minor changes merged in 19.1.
+NOTE-END */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* i386 is not big-endian: lowest numbered byte is least significant. */
+
+/* #undef BIG_ENDIAN */
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+
+#define INTEL386
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* crt0.c, if it is used, should use the i386-bsd style of entry.
+   with no extra dummy args.  On USG and XENIX,
+   NO_REMAP says this isn't used. */
+
+#define CRT0_DUMMIES bogus_fp,
+
+/* crt0.c should define a symbol `start' and do .globl with a dot.  */
+
+#define DOT_GLOBAL_START
+
+#ifdef XENIX
+/* Data type of load average, as read out of kmem.  */
+#define LOAD_AVE_TYPE short
+
+/* 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))
+  
+#define FSCALE 256.0         /* determined by experimentation...  */
+#endif
+
+#ifdef USG5_4 /* Older USG systems do not support the load average.  */
+/* 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  */
+/* This is totally uncalibrated. */
+
+#define LOAD_AVE_CVT(x) ((int) ((double) (x)) * 100.0 / FSCALE)
+#define FSCALE 256.0
+*endif
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+#ifdef XENIX
+#define VALBITS 26
+#define GCTYPEBITS 5
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+
+#define STACK_DIRECTION -1
+
+/* Since cannot purify, use standard Xenix 386 startup code. */
+
+#define START_FILES    /lib/386/Sseg.o pre-crt0.o /lib/386/Scrt0.o
+
+/* These really use terminfo.  */
+
+#define LIBS_TERMCAP /lib/386/Slibcurses.a  \
+   /lib/386/Slibtinfo.a /lib/386/Slibx.a
+
+/* Standard libraries for this machine.  Since `-l' doesn't work in `ld'.  */
+/* '__fltused' is unresolved w/o Slibcfp.a */
+#define LIB_STANDARD /lib/386/Slibcfp.a /lib/386/Slibc.a
+#else /* not XENIX */
+
+#ifdef USG
+#define LIB_STANDARD -lPW -lc
+#define HAVE_ALLOCA
+#define NO_REMAP 
+#define TEXT_START 0
+#endif /* USG */
+#endif /* not XENIX */
+
+#ifdef BSD
+#define HAVE_ALLOCA
+#endif /* BSD */
+ BSD */
+
+/* If compiling with GCC, let GCC implement alloca.  */
+#if defined(__GNUC__) && !defined(alloca)
+#define alloca(n) __builtin_alloca(n)
+#define HAVE_ALLOCA
+#endif
+
+/* Search these directories just in case; I'm told they might be needed.  */
+#define C_SWITCH_MACHINE  -I/usr/X/include -I/usr/netinclude
diff --git a/src/m/iris4d.h b/src/m/iris4d.h
new file mode 100644 (file)
index 0000000..89d022f
--- /dev/null
@@ -0,0 +1,193 @@
+/* machine description file for Iris-4D machines.  Use with s-iris3-6.h
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="irix3-3"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+
+#ifndef mips
+#define mips
+#endif
+
+#ifndef IRIS_4D
+#define IRIS_4D
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE long     /* This doesn't quite work on the 4D */
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) (int)(((double)(x)*100)/1024.0)
+
+/* s-iris3-6.h uses /vmunix */
+
+#undef KERNEL_FILE
+#define KERNEL_FILE "/unix"
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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 */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+
+/* This machine requires completely different unexec code
+   which lives in a separate file.  Specify the file name.  */
+
+#define UNEXEC unexmips.o
+
+#define TEXT_START 0x400000
+
+/*
+ * DATA_SEG_BITS forces that bit to be or'd in with any pointers which
+ * are trying to access pure strings (as gnu-emacs only allows 24 bits
+ * for the value field of a LISP_OBJECT).
+ */
+
+#define DATA_START 0x10000000
+#define DATA_SEG_BITS  0x10000000
+
+#undef LIBS_MACHINE
+/* -lsun in case using Yellow Pages for passwords.  */
+#define LIBS_MACHINE -lsun -lmld
+#define LIBS_DEBUG
+
+/* Define this if you have a fairly recent system,
+   in which crt1.o and crt1.n should be used.  */
+#define HAVE_CRTN
+
+#ifdef HAVE_CRTN
+/* Must define START-FILES so that the linker can find /usr/lib/crt0.o.  */
+#define START_FILES pre-crt0.o /usr/lib/crt1.o
+#define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o
+#else
+#define START_FILES pre-crt0.o /usr/lib/crt0.o
+/* The entry-point label (start of text segment) is `start', not `__start'.  */
+#define DEFAULT_ENTRY_ADDRESS start
+#define LIB_STANDARD -lbsd -lc
+#endif
+\f
+/* Use terminfo instead of termcap.  */
+
+#define TERMINFO
+
+/* sioctl.h should be included where appropriate.  */
+
+#define NEED_SIOCTL
+
+/* Letter to use in finding device name of first pty,
+  if system supports pty's.  'a' means it is /dev/ptya0  */
+
+#undef FIRST_PTY_LETTER
+#define FIRST_PTY_LETTER 'q'
+
+/* Define STACK_DIRECTION for alloca.c */
+
+#define STACK_DIRECTION -1
+\f
+/* The standard definitions of these macros would work ok,
+   but these are faster because the constants are short.  */
+
+#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS)
+
+#define XSET(var, type, ptr) \
+   ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS))
+
+#define XSETINT(a, b)  XSET(a, XTYPE(a), b)
+#define XSETUINT(a, b) XSET(a, XTYPE(a), b)
+#define XSETPNTR(a, b) XSET(a, XTYPE(a), b)
+
+#define XMARKBIT(a) ((a) < 0)
+#define XSETMARKBIT(a,b) ((a) = ((a) & ~MARKBIT) | ((b) ? MARKBIT : 0))
+#define XUNMARK(a) ((a) = (((unsigned)(a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS))
diff --git a/src/m/irist.h b/src/m/irist.h
new file mode 100644 (file)
index 0000000..11c58e2
--- /dev/null
@@ -0,0 +1,155 @@
+/* machine description file for Silicon Graphics Iris 2500 Turbos;
+   also possibly for non-turbo Irises with system release 2.5.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="note"
+NOTE-START
+Version 18 said to work; use -opsystem=irist3-5 for system version 2.5
+and -opsystem=iris3-6 for system versions 3.6 and up.
+NOTE-END */
+
+#if 0
+  Message-Id: <8705050653.AA20004@orville.arpa>
+  Subject: gnu emacs 18.41 on iris [23].5 machines
+  Date: 04 May 87 23:53:11 PDT (Mon)
+  From: raible@orville.arpa
+
+  Aside from the SIGIOT, I know of only one bug, a real strange one:
+  I wrote a utimes interface, which copies elements from timevals
+  to utimbufs. This code is known good.  The problem is that in
+  emacs, the utime doesn't seem to take effect (i.e. doesn't change the
+  dates at all) unless I call report_file_error *after* the utime returns!
+
+    if (utime (name, &utb) < 0)
+      return;
+    else
+      /* XXX XXX XXX */
+      /* For some reason, if this is taken out, then the utime above breaks! */
+      /* (i.e. it doesn't set the time. This just makes no sense... */
+      /* Eric - May 4, 1987 */
+      report_file_error ("Worked just find\n", Qnil);
+
+  Without any sort of debugger that works on emacs (I know... but I don't have
+  *time* right now to start with gdb), it was quite time consuming to track
+  it down to this.
+
+  But since this code is only used for an optional 4th argument to one command
+  (copy-file), it would say that it is non-critical...
+#endif /* 0 */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+
+#ifndef m68000
+#define m68000
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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 FSCALE 1.0
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+/* #define NO_REMAP */
+
+/* There is an inconsistency between the sgi assembler, linker which barfs
+   on these. */
+
+#define internal_with_output_to_temp_buffer    stupid_long_name1
+#define Finsert_abbrev_table_description       stupid_long_name2
diff --git a/src/m/isi-ov.h b/src/m/isi-ov.h
new file mode 100644 (file)
index 0000000..2f30f7f
--- /dev/null
@@ -0,0 +1,105 @@
+/* machine description file for ISI 68000's
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="note"
+
+NOTE-START
+Use `-opsystem=bsd4-2' or `-opsystem=bsd4-3'.
+NOTE-END */
+
+#define ISI68K
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* 68000 has lowest-numbered byte as most significant */
+
+#define BIG_ENDIAN
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Say this machine is a 68000 */
+
+#define m68000
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#ifdef BSD4_3
+#define LOAD_AVE_TYPE long
+#else
+#define LOAD_AVE_TYPE double
+#endif BSD4_3
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#ifdef BSD4_3
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+#else
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+#endif
+
+/* Mask for address bits within a memory segment */
+
+#define SEGMENT_MASK 0x1ffff
+
+/* use the -20 switch to get the 68020 code */
+/* #define C_SWITCH_MACHINE -20 */
+
+/* Use the version of the library for the 68020
+   because the standard library requires some special hacks in crt0
+   which the GNU crt0 does not have.  */
+
+#define LIB_STANDARD -lmc
+
+/* macros to make unexec work right */
+
+#define A_TEXT_OFFSET(HDR) sizeof(HDR)
+#define A_TEXT_SEEK(HDR) sizeof(HDR)
+
+/* A few changes for the newer systems.  */
+
+#ifdef BSD4_3
+#define HAVE_ALLOCA
+/* The following line affects crt0.c.  */
+#undef m68k
+
+#undef LIB_STANDARD
+#define LIB_STANDARD -lmc -lc
+#define C_DEBUG_SWITCH -20 -O -X23
+#endif
diff --git a/src/m/masscomp.h b/src/m/masscomp.h
new file mode 100644 (file)
index 0000000..f0970ed
--- /dev/null
@@ -0,0 +1,150 @@
+/* machine description file for Masscomp 5000 series running RTU, ucb universe.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="rtu"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#undef NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+/* Masscomp predefines mc68000. */
+#define m68000 mc68000
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#undef EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#undef VIRT_ADDR_VARIES
+
+/* 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.  */
+
+/* On return from a subroutine, the 68020 compiler restores old contents of
+   register variables relative to sp, so alloca() screws up such routines.
+   The following definitions should work on all Masscomps.  On the MC-5500
+   (a 68000) one can #undef C_ALLOCA and #define HAVE_ALLOCA.  */
+#ifdef mc500
+#undef C_ALLOCA
+#define HAVE_ALLOCA
+#else
+#define C_ALLOCA
+#undef HAVE_ALLOCA
+#endif
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#undef NO_REMAP
+
+/* crt0.c should use the vax-bsd style of entry, with a dummy arg.  */
+
+#define CRT0_DUMMIES bogus_fp,
+
+/* Name of file the to look in
+   for the kernel symbol table (for load average) */
+
+#define KERNEL_FILE "/unix"
+
+/* This triggers some stuff to avoid a compiler bug */
+
+#define MASSC_REGISTER_BUG
+
+/* Prevent -lg from being used for debugging.  Not implemented?  */
+
+#define LIBS_DEBUG
+
+/*
+ *     Define HAVE_TERMIO if the system provides sysV-style ioctls
+ *     for terminal control.
+ */
+
+#define HAVE_TERMIO
+
+/* Adjust a header field for the executable file about to be dumped.  */
+
+#define ADJUST_EXEC_HEADER   \
+  hdr.a_stamp = STAMP13; /* really want the latest stamp, whatever it is */
diff --git a/src/m/mega68.h b/src/m/mega68.h
new file mode 100644 (file)
index 0000000..976f1bf
--- /dev/null
@@ -0,0 +1,61 @@
+/* machine description file for Megatest 68000's.
+   Copyright (C) 1985 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="bsd4-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* 68000 has lowest-numbered byte as most significant */
+
+#define BIG_ENDIAN
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Say this machine is a 68000 */
+
+#define m68000
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
diff --git a/src/m/mg1.h b/src/m/mg1.h
new file mode 100644 (file)
index 0000000..0ad56ae
--- /dev/null
@@ -0,0 +1,126 @@
+/* machine description file for Whitechapel Computer Works MG1 (ns16000 based).
+   Copyright (C) 1985 Free Software Foundation, Inc.
+   MG-1 version by L.M.McLoughlin
+
+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
+We are in the dark about what operating system runs on the Whitechapel
+systems.  Consult share-lib/MACHINES for information on which
+operating systems Emacs has already been ported to; one of them might
+work.  If you find an existing system name that works or write your
+own configuration files, please let the Free Software Foundation in on
+your work; we'd like to distribute this information.
+NOTE-END  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+/* ns16000 is not big-endian: lowest numbered byte is least significant. */
+#undef BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+/* ns16000 call sequence used on mg1 means that &arg = the args as an array */
+#undef NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+/* ns16000 addresses are byte addresses */
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+/* Say this machine is a 16000 and an mg1, cpp says its a 32000 */
+#define ns16000
+#define mg1
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+/* Not sure on mg-1 but this shouldn't hurt! */
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+/* mg1 its an unsigned long */
+#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 CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+/* ns16000's have an unexec, so should the mg-1 */
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+/* hmmmm... not sure.  copied sequent.h */
+#undef VIRT_ADDR_VARIES
+
+/* 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.  */
+/* hmmmm... again not sure.  so copied sequent.h again! */
+#undef C_ALLOCA
+#undef HAVE_ALLOCA
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+/* mapping seems screwy */
+#define NO_REMAP
+
+/* Avoids a compiler bug */
+/* borrowed from sequent.h */
diff --git a/src/m/mips.h b/src/m/mips.h
new file mode 100644 (file)
index 0000000..d797540
--- /dev/null
@@ -0,0 +1,213 @@
+/* machine description file for Mips machines.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="note"
+
+NOTE-START
+Use -opsystem=usg5-2-2 normally, or -opsystem=bsd4-3 with the BSD
+world.
+NOTE-END  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+#ifndef mips
+#      define mips
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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 / 256.0)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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 */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+
+/* This machine requires completely different unexec code
+   which lives in a separate file.  Specify the file name.  */
+
+#define UNEXEC unexmips.o
+
+/* Describe layout of the address space in an executing process.  */
+
+#define TEXT_START 0x400000
+#define DATA_START 0x800000
+
+/* Alter some of the options used when linking.  */
+
+#ifdef BSD
+
+/* Supposedly the dec machine doesn't have this library.
+   #define LIBS_MACHINE -lmld  */
+
+#define LD_SWITCH_MACHINE -D 800000
+#define LIBS_DEBUG
+
+#else
+
+#define LIBS_MACHINE -lmld
+#define LD_SWITCH_MACHINE -D 800000 -g3
+#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
+#define C_DEBUG_SWITCH -O -g3
+
+#if defined(HAVE_X_WINDOWS) && defined(HAVE_X11)
+#define HAVE_VFORK             /* Graciously provided by libX.a */
+#endif
+#endif
+\f
+/* The standard definitions of these macros would work ok,
+   but these are faster because the constants are short.  */
+
+#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS)
+
+#define XSET(var, type, ptr) \
+   ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS))
+
+#define XSETINT(a, b)  XSET(a, XTYPE(a), b)
+#define XSETUINT(a, b) XSET(a, XTYPE(a), b)
+#define XSETPNTR(a, b) XSET(a, XTYPE(a), b)
+
+#define XUNMARK(a) ((a) = (((unsigned)(a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS))
+#ifdef USG
+
+/* 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 <bsd/sys/time.h>
+#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
+
+#undef NOMULTIPLEJOBS
+#define utimes utime  /* Someone should check this.  */
+
+/* ??? */
+#define IRIS
+
+#endif
+
+#ifdef BSD
+#define COFF
+#define TERMINFO
+#undef MAIL_USE_FLOCK  /* Someone should check this.  */
+#undef HAVE_UNION_WAIT
+#endif /* BSD */
diff --git a/src/m/mips4.h b/src/m/mips4.h
new file mode 100644 (file)
index 0000000..91cda93
--- /dev/null
@@ -0,0 +1,33 @@
+/* machine description file for Mips running RISCOS version 4.  */
+
+#include "mips.h"
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="note"
+
+NOTE-START
+Use -opsystem=usg5-2-2 normally, or -opsystem=bsd4-3 with the BSD
+world.
+NOTE-END  */
+
+/* Define MIPS2 if you have an R6000 or R4000.  */
+/* #define MIPS2 */
+
+#ifdef MIPS2
+#define C_DEBUG_SWITCH -systype bsd43 -O -Olimit 791 -g3 -mips2
+#else
+#define C_DEBUG_SWITCH -systype bsd43 -O -Olimit 791 -g3
+#endif
+
+#ifdef TERMINFO
+#undef TERMINFO
+#endif
+
+#define START_FILES pre-crt0.o /lib/crt1.o
+#define LIB_STANDARD -lmld -lc /lib/crtn.o
+
+
+#define COFF
+#undef LD_SWITCH_MACHINE
+#define LD_SWITCH_MACHINE -systype bsd43 -g3 -D 800000
diff --git a/src/m/news.h b/src/m/news.h
new file mode 100644 (file)
index 0000000..618477c
--- /dev/null
@@ -0,0 +1,76 @@
+/* machine description file for Sony's NEWS workstations, NEWS-OS 3.0.
+   Copyright (C) 1985, 1986, 1989 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 -opsystem=bsd4-2, or -opsystem=bsd4-3 for system release 3.
+NOTE-END  */
+
+/* Say this machine is a 68000 */
+
+#ifndef m68000
+#define m68000
+#endif
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* 68000 has lowest-numbered byte as most significant */
+
+#define BIG_ENDIAN
+
+/* One CRT0 Dummy variable */
+
+#define CRT0_DUMMIES one_dummy,
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* The News machine has alloca. */
+
+#define HAVE_ALLOCA
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+/* Must use the system's termcap.  It does special things.  */
+
+#define LIBS_TERMCAP -ltermcap
+
diff --git a/src/m/ns16000.h b/src/m/ns16000.h
new file mode 100644 (file)
index 0000000..3aa798d
--- /dev/null
@@ -0,0 +1,112 @@
+/* machine description file for ns16000.
+   Copyright (C) 1985 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
+For the Encore, use `-opsystem=umax'.
+For a Tektronix 16000 box (a 6130, perhaps?), use `-opsystem=bsd4-2'.
+Use `-machine=ns16000' for both.
+NOTE-END  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* 16000 is little-endian (lowest-numbered byte is least significant) */
+
+/* #define BIG_ENDIAN */  /* So don't define this.  */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Say this machine is a 16000 */
+
+#define ns16000 1
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* Data type of load average, as read out of kmem.  */
+
+#ifndef USG
+#define LOAD_AVE_TYPE double
+#endif
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#ifndef USG
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+#endif
+\f
+#ifdef USG
+
+/* Control assembler syntax used in alloca.s.  */
+#define NS5
+
+/* On early NS systems ulimit was buggy. If set emacs uses this value
+ * for the maximum sbrk value instead of getting it from ulimit.
+ */
+#define ULIMIT_BREAK_VALUE 0x7E0000
+
+/* Early NS compilers have this bug. I believe it has been fixed in later
+ * releases.
+ */
+#define SHORT_CAST_BUG
+
+#define SEGMENT_MASK (NBPS - 1)
+
+/* Variables to get crt0.c to come out correctly */
+#define CRT0_DUMMIES bogus_fp,
+#define DOT_GLOBAL_START
+
+/* Control how emacsclient communicates.  */
+#define HAVE_SYSVIPC
+
+/* Set this to /bin/mail unless you have a better mail posting program */
+#define MAIL_PROGRAM_NAME "/usr/local/bin/remail"
+
+/* Tell sysdep.c not to define bzero, etc.  */
+#undef BSTRING
+#define BSTRING
+
+/* Macro definitions to emulate BSD functions with SysV ones */
+#undef bcopy
+#undef bzero
+#undef bcmp
+
+#define bcopy(a,b,s)   memcpy(b,a,s)
+#define bzero(a,s)     memset(a,0,s)
+#define bcmp           memcmp
+
+/* This avoids problems with uninitialized static variables going in .data.  */
+#define static
+
+#endif /* USG */
diff --git a/src/m/ns32000.h b/src/m/ns32000.h
new file mode 100644 (file)
index 0000000..bca1825
--- /dev/null
@@ -0,0 +1,121 @@
+/* machine description file for Netional Semiconductor 32000, running Genix.
+   Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY.  No author or distributor
+accepts responsibility to anyone for the consequences of using it
+or for whether it serves any particular purpose or works at all,
+unless he says so in writing.  Refer to the GNU Emacs General Public
+License for full details.
+
+Everyone is granted permission to copy, modify and redistribute
+GNU Emacs, but only under the conditions described in the
+GNU Emacs General Public License.   A copy of this license is
+supposed to have been given to you along with GNU Emacs so you
+can know your rights and responsibilities.  It should be in a
+file named COPYING.  Among other things, the copyright notice
+and this notice must be preserved on all copies.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+/* #define BIG_ENDIAN */
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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) */
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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 */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+/* #define NO_REMAP */
+
+#define TEXT_START 0
+
+#define STACK_DIRECTION -1
+
+#define EXEC_MAGIC 0410
+
+#define PURESIZE 140000
+
+#define START_FILES pre-crt0.o /lib/crt0.o
diff --git a/src/m/nu.h b/src/m/nu.h
new file mode 100644 (file)
index 0000000..ef12ccc
--- /dev/null
@@ -0,0 +1,84 @@
+/* machine description file for TI Nu machines using system V.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000 are the ones defined so far.  */
+
+#ifndef m68000
+#define m68000
+#endif
+
+#ifndef NU
+#define NU
+#endif
+
+/* Data type of load average, as read out of kmem.  */
+/* These are commented out since it does not really work in uniplus */
+  
+/* #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) */
+
+/* Change some things to avoid bugs in compiler */
+
+#define SWITCH_ENUM_BUG 1
+
+/* The NU machine has a compiler that can handle long names.  */
+
+#undef SHORTNAMES
+
+/* Specify alignment requirement for start of text and data sections
+   in the executable file.  */
+
+#define SECTION_ALIGNMENT pagemask
diff --git a/src/m/orion.h b/src/m/orion.h
new file mode 100644 (file)
index 0000000..fec8a0c
--- /dev/null
@@ -0,0 +1,84 @@
+/* machine description file for HLH Orion.
+   Copyright (C) 1985 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="bsd4-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#undef BIG_ENDIAN
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically.  */
+
+#ifndef orion
+#define orion
+#endif
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#define WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) ((((int) (c)) << 24) >> 24)
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#ifndef FSCALE
+#define FSCALE 1.0
+#endif
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+
+/* It is necessary to use the portable imitation of alloca,
+   since a true stack-allocating one is impossible.  */
+
+#define C_ALLOCA
diff --git a/src/m/orion105.h b/src/m/orion105.h
new file mode 100644 (file)
index 0000000..9820b6c
--- /dev/null
@@ -0,0 +1,90 @@
+/* machine description file for HLH Orion 1/05 (Clipper).
+   Copyright (C) 1985 Free Software Foundation, Inc.
+   Lee McLoughlin <lmjm%doc.imperial.ac.uk@nss.cs.ucl.ac.uk>
+
+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="bsd4-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#undef BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#define SIGN_EXTEND_CHAR(c) ((int)(c))
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Data type of load average, as read out of kmem.  */
+/* This used to be `double'.  */
+
+#define LOAD_AVE_TYPE long
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+/* This used to be 1.0.  */
+#ifndef FSCALE
+#define FSCALE 256
+#endif
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+
+/* HLH have a SIGWINCH defined (but unimplemented) so we need a sigmask */
+#ifndef sigmask
+#define sigmask(m) (1 << ((m) - 1))
+#endif
+
+#define HAVE_ALLOCA
+
+/* Here is where programs actually start running */
+#define TEXT_START 0x8000
+#define LD_TEXT_START_ADDR 8000
+
+/* Arguments to ignore before argc in crt0.c.  */
+#define DUMMIES dummy1, dummy2,
+
+/* dbx can't cope so what the heck - currently (July 88) eval.c causes
+ * the compiler to go into an infinite loop - so compile it by hand
+ *    cc -c -Demacs eval.c
+ * before running make
+ */
+#define C_DEBUG_SWITCH -O
+
+/* Since not debugging don't add dbx lib */
+#define LIBS_DEBUG 
diff --git a/src/m/plexus.h b/src/m/plexus.h
new file mode 100644 (file)
index 0000000..327ff78
--- /dev/null
@@ -0,0 +1,128 @@
+/* machine description file for the Plexus running System V.2.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#undef NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+/* Plexus predefines m68 instead of m68000. */
+#define m68000 m68
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#undef EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#undef LOAD_AVE_TYPE
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#undef LOAD_AVE_CVT
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#undef VIRT_ADDR_VARIES
+
+/* 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.  */
+
+#undef C_ALLOCA
+#define HAVE_ALLOCA
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#undef NO_REMAP
+
+/* Use the following on ld so we can use the gnu crt0 
+   The plexus ld looks for start                      */
+#define LD_SWITCH_MACHINE -e __start
+
+/* Use the PW library, which contains alloca.  */
+
+#define LIB_STANDARD -lPW -lc
+
+/* crt0.c should use the vax-bsd style of entry, with no dummy args.  */
+
+#define CRT0_DUMMIES zero1, zero2,
+
+/* This triggers some stuff to avoid a compiler bug */
+
+#define TAHOE_REGISTER_BUG
diff --git a/src/m/pmax.h b/src/m/pmax.h
new file mode 100644 (file)
index 0000000..393b735
--- /dev/null
@@ -0,0 +1,22 @@
+#include "mips.h"
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="bsd4-2"  */
+
+#undef BIG_ENDIAN
+#define LIBS_DEBUG
+
+/* This line starts being needed with ultrix 4.0.  */
+/* You may need to delete it on version 3.1.  */
+#define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o
+
+/* Supposedly the following will overcome a kernel bug.  */
+#undef LD_SWITCH_MACHINE
+#undef DATA_START
+#define DATA_START 0x10000000
+#define DATA_SEG_BITS 0x10000000
+
+/* In Ultrix 4.1, XvmsAlloc.o in libX11.a seems to insist
+   on defining malloc itself.  This should avoid conflicting with it.  */
+#define SYSTEM_MALLOC
diff --git a/src/m/pyramid.h b/src/m/pyramid.h
new file mode 100644 (file)
index 0000000..e478eae
--- /dev/null
@@ -0,0 +1,76 @@
+/* machine description file for pyramid.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="bsd4-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#ifdef __GNUC__
+#define NO_ARG_ARRAY
+#endif
+
+/* XINT must explicitly sign extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* pyramid preprocessor defines "pyr", however the following is clearer */
+#define pyramid
+
+/* Don't use the union types any more.  They were used until Emacs 17.45.  */
+
+#define NO_UNION_TYPE
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+/* Don't use the ordinary -g for debugging in cc */
+
+#define C_DEBUG_SWITCH -gx
+
+/* Reenable this #define for old versions of the Pyramid system.  */
+
+/* #define PYRAMID_OLD */
diff --git a/src/m/sequent.h b/src/m/sequent.h
new file mode 100644 (file)
index 0000000..e760213
--- /dev/null
@@ -0,0 +1,188 @@
+/* machine description file for SEQUENT BALANCE 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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="note"  
+
+NOTE-START
+Use -opsystem=bsd4-2, or -opsystem=bsd4-3 on newer systems.
+NOTE-END */
+
+/* NOTE: this file works for DYNIX release 2.0 
+         (not tested on 1.3) on NS32000's */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+/* #define BIG_ENDIAN */
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+
+/* BTW: DYNIX defines sequent, ns32000, and ns16000 (GENIX compatibility) */
+#ifndef        sequent         /* pre DYNIX 2.1 releases */
+# define sequent
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* crt0.c should use the vax-bsd style of entry, with these dummy args.  */
+
+#define CRT0_DUMMIES bogus_fp,
+
+/* crt0.c should define a symbol `start' and do .globl with a dot.  */
+
+#define DOT_GLOBAL_START
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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 CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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"
+
+/* 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))
+
+/* (short) negative-int doesn't sign-extend correctly */
+#define SHORT_CAST_BUG
+
+/* Cause compilations to be done in parallel in ymakefile.  */
+#define MAKE_PARALLEL &
+
+/* Say that mailer interlocking uses flock.  */
+#define MAIL_USE_FLOCK
+
+/* On many 4.2-based systems, there's a rather tricky bug
+ * with the interpretation of the pid/pgrp value given to
+ * the F_SETOWN fcntl() call.  It works as documented EXCEPT
+ * when applied to filedescriptors for sockets, in which case
+ * the sign must be reversed.  If your emacs subprocesses get
+ * SIGIO's when they shouldn't, while running on a socket
+ * (e.g. under X windows), you should probably define this.
+ */
+
+#define F_SETOWN_SOCK_NEG
+
+/* Some really obscure 4.2-based systems (like Sequent DYNIX)
+ * do not support asynchronous I/O (using SIGIO) on sockets,
+ * even though it works fine on tty's.  If you have one of
+ * these systems, define the following, and then use it in
+ * config.h (or elsewhere) to decide when (not) to use SIGIO.
+ */
+
+#define NO_SOCK_SIGIO
+
+/* 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/sparc.h b/src/m/sparc.h
new file mode 100644 (file)
index 0000000..b06fa35
--- /dev/null
@@ -0,0 +1,119 @@
+/* machine description file for Sun 4 SPARC.
+   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.  */
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="note"
+
+NOTE-START
+Use -opsystem=sunos4 for operating system version 4, and
+-opsystem=bsd4-2 for earlier versions.
+NOTE-END  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* SPARC has lowest-numbered byte as most significant */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Say this machine is a sparc */
+
+#ifndef sparc
+#define sparc
+#endif
+
+#ifdef __GNUC__
+# define C_OPTIMIZE_SWITCH -O
+#else
+     /* This level of optimization is reported to work.  */
+# define C_OPTIMIZE_SWITCH -O2
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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)
+
+/* 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 HAVE_ALLOCA
+#include <alloca.h>
+
+/* Must use the system's termcap.  It does special things.  */
+
+#define LIBS_TERMCAP -ltermcap
+
+/* Mask for address bits within a memory segment */
+
+#define SEGMENT_MASK (SEGSIZ - 1)
+
+/* 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 130000
+#endif
+
+/* 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))
diff --git a/src/m/sps7.h b/src/m/sps7.h
new file mode 100644 (file)
index 0000000..e1583f6
--- /dev/null
@@ -0,0 +1,140 @@
+/* machine description file for Bull SPS-7.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* 68000 has lowest-numbered byte as most significant */
+
+#define BIG_ENDIAN
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Say this machine is a 68000 */
+
+#ifndef m68000
+#define m68000
+#endif
+
+#define sps7  
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+/* Suspect there is something wierd about this machine, so turn it off.  */
+
+/* #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) */
+\f
+#define SMX
+#define        V3x
+
+/*
+ *     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
+
+/*     Have the socketpair call
+*/
+
+#define SKTPAIR
+
+/* 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
+
+/* Use Berkeley style interface to nlist */
+
+#define NLIST_STRUCT
+
+/* Define this to cause -N to be passed to ld.  This is needed
+ *  in uniplus because of its funny memory space layout.
+ * SMX--If you are using 32 bit (COFF) use "-N", else don't use anything.
+ */
+
+#define LD_SWITCH_MACHINE -N -T32 -e __start
+
+/* If you are compiling for a 68020, then use -lc32 else use -lc */
+
+#define LIB_STANDARD -lc32
+
+/* Fore 16 bit, -linet, for 32 bit -linet32 (be sure you have it!). */
+
+#define LIBS_MACHINE -linet32
+
+/* Use -T32 for 68020, -T16 otherwise */
+
+#define C_SWITCH_MACHINE -T32
+
+/*
+   Here we assume that signal.h is included before config.h
+   so that we can override it here.  */
+  
+#undef SIGIO
+
+/* Some additional system facilities exist.  */
+
+#define HAVE_DUP2
+
+/* Other than 68020 use ld16, as32, or undefine (defaults ld and as). */
+
+#define ASS as32
+
+#ifdef V3x
+#define EXEC_MAGIC 0x10b
+#define SEGMENT_MASK (NBPS-1)
+#define        ADJUST_EXEC_HEADER f_hdr.f_magic = SMROMAGIC;\
+ f_ohdr.stsize = 0;
+#endif
diff --git a/src/m/stride.h b/src/m/stride.h
new file mode 100644 (file)
index 0000000..5ea57e3
--- /dev/null
@@ -0,0 +1,136 @@
+/* Definitions file for GNU Emacs running on Stride Micro System-V.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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* 68000 has lowest-numbered byte as most significant */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#undef NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe, APOLLO and STRIDE
+   are the ones defined so far.  */
+
+#define m68000                 /* because the SGS compiler defines "m68k" */
+#ifndef STRIDE
+#define STRIDE
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#undef VIRT_ADDR_VARIES
+
+/* The STRIDE system is more powerful than standard USG5.  */
+
+#define HAVE_PTYS
+#define HAVE_TIMEVAL
+#define HAVE_SELECT
+#define HAVE_GETTIMEOFDAY
+#define BSTRING
+#define SKTPAIR
+#define HAVE_SOCKETS
+
+#define MAIL_USE_FLOCK
+#undef TERMINFO
+#define EXEC_MAGIC 0413
+
+/* USG wins again: Foo! I can't get SIGIO to work properly on the Stride, because I'm
+   running a System V variant, and don't have a reliable way to block SIGIO
+   signals without losing them.  So, I've gone back to non-SIGIO mode, so
+   please append this line to the file "stride.h":
+ */
+#undef SIGIO
+
+/* Specify alignment requirement for start of text and data sections
+   in the executable file.  */
+
+#define SECTION_ALIGNMENT (getpagesize() - 1)
+
+/*
+ * UniStride has this in /lib/libc.a.
+ */
+#undef NONSYSTEM_DIR_LIBRARY
+
+/* UniStride defines getwd.  */
+
+#define HAVE_GETWD
+
+/* Define this macro if system defines a type `union wait'.  */
+
+#define HAVE_UNION_WAIT
diff --git a/src/m/sun1.h b/src/m/sun1.h
new file mode 100644 (file)
index 0000000..4edf292
--- /dev/null
@@ -0,0 +1,88 @@
+/* machine description file for Sun 68000's
+   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.  */
+
+
+/* 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  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* 68000 has lowest-numbered byte as most significant */
+
+#define BIG_ENDIAN
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Say this machine is a 68000 */
+
+#define m68000
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* Sun can't write competant compilers */
+#define COMPILER_REGISTER_BUG
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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)
+
+/* Must use the system's termcap.  It does special things.  */
+
+#define LIBS_TERMCAP -ltermcap
+
+/* Mask for address bits within a memory segment */
+
+#define SEGMENT_MASK (SEGSIZ - 1)
diff --git a/src/m/sun2.h b/src/m/sun2.h
new file mode 100644 (file)
index 0000000..717e16c
--- /dev/null
@@ -0,0 +1,109 @@
+/* machine description file for Sun 68000's OPERATING SYSTEM version 2.
+  Note that "sun2.h" refers to the operating system version, not the
+  CPU model number.  See the MACHINES file for details.
+   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.  */
+
+
+/* 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  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* 68000 has lowest-numbered byte as most significant */
+
+#define BIG_ENDIAN
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Say this machine is a 68000 */
+
+#ifndef m68000
+#define m68000
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* Sun can't write competent compilers */
+#define COMPILER_REGISTER_BUG
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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)
+
+/* Say that this is a Sun 2; must check for and maybe reinitialize
+   the "sky" board.  */
+
+#define sun2
+
+/* Must use the system's termcap.  It does special things.  */
+
+#define LIBS_TERMCAP -ltermcap
+
+/* Mask for address bits within a memory segment */
+
+#define SEGMENT_MASK (SEGSIZ - 1)
+
+/* 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
diff --git a/src/m/tahoe.h b/src/m/tahoe.h
new file mode 100644 (file)
index 0000000..9c994ba
--- /dev/null
@@ -0,0 +1,92 @@
+/* machine description file for tahoe.
+   Copyright (C) 1985 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 -opsystem=bsd4-2 or -opsystem=bsd4-3, depending on the version of
+Berkeley you are running.
+NOTE-END  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* lowest-numbered byte is most significant */
+
+#define BIG_ENDIAN
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Say this machine is a tahoe */
+
+#ifndef tahoe
+#define tahoe
+#endif /* not tahoe */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* crt0.c should use the vax-bsd style of entry, with no dummy args.  */
+
+#define CRT0_DUMMIES
+
+/* crt0.c should define a symbol `start' and do .globl with a dot.  */
+
+#define DOT_GLOBAL_START
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+/* This triggers some stuff to avoid a compiler bug */
+
+#define TAHOE_REGISTER_BUG
+
+/* System provides alloca.  */
+
+#define HAVE_ALLOCA
+
+/* Control header files used by loadst.c.
+   Some users report machines have dkstat.h while others report dk.h,
+   so it's hard to tell what this should say.  */
+
+#ifdef BSD
+#define DKSTAT_HEADER_FILE
+#endif
diff --git a/src/m/targon31.h b/src/m/targon31.h
new file mode 100644 (file)
index 0000000..49d4eb6
--- /dev/null
@@ -0,0 +1,117 @@
+/* targon31 machine description file 
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#define WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+
+/* #define m68k is defined by the Compiler */
+/* #define m68000 */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+/* #define LOAD_AVE_TYPE double */
+
+/* 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)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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 */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+/* #define NO_REMAP */
+/* Supposedly NO_REMAP is not needed with the following change.  */
+#define SEGMENT_MASK 0xffff
+
+#define SWITCH_ENUM_BUG 1
diff --git a/src/m/tek4300.h b/src/m/tek4300.h
new file mode 100644 (file)
index 0000000..9164701
--- /dev/null
@@ -0,0 +1,98 @@
+/* machine description file for tek4300.
+   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="bsd4-3"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* 68000 has lowest-numbered byte as most significant */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#undef NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically.  */
+
+#define tek4300
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* 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)
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+
+/* Define C_ALLOCA if this machine does not support a true alloca
+   and the one written in C should be used instead. */
+
+#define C_ALLOCA
+
+/* setjmp and longjmp can safely replace _setjmp and _longjmp, */
+
+#define _longjmp longjmp
+#define _setjmp setjmp
+
+/* The text segment always starts at a fixed address.
+   This way we don't need to have a label _start defined.  */
+
+#define TEXT_START 0
+
+/* The Tektronix exec struct for ZMAGIC files is struct zexec */
+
+#define EXEC_HDR_TYPE struct zexec
+
+/* The entry-point label (start of text segment) is `start', not `__start'.  */
+
+#define DEFAULT_ENTRY_ADDRESS start
diff --git a/src/m/template.h b/src/m/template.h
new file mode 100644 (file)
index 0000000..f69e037
--- /dev/null
@@ -0,0 +1,110 @@
+/* machine description file template.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#define WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#define CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#define VIRT_ADDR_VARIES
+
+/* 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
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
diff --git a/src/m/tower32.h b/src/m/tower32.h
new file mode 100644 (file)
index 0000000..8ab0b91
--- /dev/null
@@ -0,0 +1,134 @@
+/* machine description file for the NCR Tower 32 running System V.2.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+#define m68000
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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) */
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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
+
+/* Change some things to avoid bugs in compiler */
+
+#define SWITCH_ENUM_BUG 1
+
+/* The standard C library is -lcieee, not -lc.
+   Also use the PW library, which contains alloca.  */
+
+#define LIB_STANDARD -lPW -lcieee
+
+/* crt0.c should use the vax-bsd style of entry.  Beware that if you have
+   OS release 2.00.00 or later, *and* change src/ymakefile so that CFLAGS
+   includes C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH, you need to
+   uncomment CRT0_DUMMIES and C_OPTIMIZE_SWITCH below.  */
+
+/* With the optimizer OFF */
+
+#define CRT0_DUMMIES zero, bogus_fp,
+
+/* With the optimizer ON */
+
+/* #define CRT0_DUMMIES */
+/* #define C_OPTIMIZE_SWITCH -O2 */
+
+/* emacs's magic number isn't temacs's;
+   temacs is writeable text (the default!).  */
+
+#include <asld.h>
+#define EXEC_MAGIC AOUT1MAGIC
+#define EXEC_PAGESIZE DATACLICK
diff --git a/src/m/tower32v3.h b/src/m/tower32v3.h
new file mode 100644 (file)
index 0000000..ca8f287
--- /dev/null
@@ -0,0 +1,139 @@
+/* machine description file for the NCR Tower 32 running System V.3.
+   Copyright (C) 1986 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY.  No author or distributor
+accepts responsibility to anyone for the consequences of using it
+or for whether it serves any particular purpose or works at all,
+unless he says so in writing.  Refer to the GNU Emacs General Public
+License for full details.
+
+Everyone is granted permission to copy, modify and redistribute
+GNU Emacs, but only under the conditions described in the
+GNU Emacs General Public License.   A copy of this license is
+supposed to have been given to you along with GNU Emacs so you
+can know your rights and responsibilities.  It should be in a
+file named COPYING.  Among other things, the copyright notice
+and this notice must be preserved on all copies.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-3"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+#define m68000
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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) */
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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.  */
+
+#ifdef __GNUC__
+#define HAVE_ALLOCA
+#define alloca __builtin_alloca
+#define C_OPTIMIZE_SWITCH -O -fstrength-reduce -fomit-frame-pointer
+#define LIB_STANDARD -lc /lib/crtn.o
+#else
+/* This section is correct if you do *not* change src/ymakefile so that
+   CFLAGS includes C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH.  */
+#define HAVE_ALLOCA
+#define C_DEBUG_SWITCH -g -O0
+#define LIB_STANDARD -lc -lPW /lib/crtn.o
+/* This section is correct if you do enable C_OPTIMIZE_SWITCH.  */
+/* #define C_ALLOCA */
+/* #define STACK_DIRECTION -1 */
+/* #define C_OPTIMIZE_SWITCH -O2 */
+/* #define LIB_STANDARD -lc /lib/crtn.o */
+#endif
+
+/* The OS maps the data section far away from the text section.  */
+#define NO_REMAP
+#define TEXT_START 0
+#undef static
+#define START_FILES pre-crt0.o /lib/crt1.o
+
+/* This is needed since many Tower models start the data/bss segment at
+   an address as large as 0x2000000.  */
+#define VALBITS 26
+#define GCTYPEBITS 5
+
+/* The OS has an implementation of symlinks that is semantically different
+   from BSD, but for some silly reason it partly has the same syntax.  */
+#undef S_IFLNK
+
+/* The OS needs stream.h+ptem.h included in sysdep.c.  */
+#define NO_SIOCTL_H
+#define NEED_PTEM_H
diff --git a/src/m/ustation.h b/src/m/ustation.h
new file mode 100644 (file)
index 0000000..a5ecb75
--- /dev/null
@@ -0,0 +1,158 @@
+/* machine description file for U-station (Nihon Unisys, SS5E; Sumitomo Denkoh, U-Station E30).
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-3"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#undef NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
+   are the ones defined so far.  */
+/* Masscomp predefines mc68000. */
+
+#define m68000 mc68000
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#undef EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that data space precedes text space,
+   numerically.  */
+
+#undef VIRT_ADDR_VARIES
+
+/* 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.  */
+
+/* On return from a subroutine, the 68020 compiler restores old contents of
+   register variables relative to sp, so alloca() screws up such routines.
+   The following definitions should work on all Masscomps.  On the MC-5500
+   (a 68000) one can #undef C_ALLOCA and #define HAVE_ALLOCA.  */
+
+#define C_ALLOCA
+#undef HAVE_ALLOCA
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#undef NO_REMAP
+
+/* Name of file the to look in
+   for the kernel symbol table (for load average) */
+
+#define KERNEL_FILE "/unix"
+
+/* This triggers some stuff to avoid a compiler bug */
+
+#define MASSC_REGISTER_BUG
+
+/* Prevent -lg from being used for debugging.  Not implemented?  */
+
+#define LIBS_DEBUG
+
+/*
+ *     Define HAVE_TERMIO if the system provides sysV-style ioctls
+ *     for terminal control.
+ */
+
+#define HAVE_TERMIO
+
+/* -lnet is not standard library */
+
+#undef HAVE_SELECT
+#undef LIBS_SYSTEM
+
+/* Compiler's bug */
+
+#define SWITCH_ENUM_BUG
+
+/* Termcap is available */
+
+#define LIBS_TERMCAP -ltermcap
+
+#define EXEC_PAGESIZE 1024
+#define PURESIZE 130000
+
+#undef SIGIO
+#undef SIGTSTP
+#undef HAVE_TIMEVAL
diff --git a/src/m/vax.h b/src/m/vax.h
new file mode 100644 (file)
index 0000000..488f89a
--- /dev/null
@@ -0,0 +1,132 @@
+/* machine description file for vax.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="note"
+
+NOTE-START
+The vax (-machine=vax) runs zillions of different operating systems.
+
+Vax running Berkeley Unix (-opsystem=bsd4-1, -opsystem=bsd4-2 or
+                          -opsystem=bsd4-3)
+
+  Works.
+
+Vax running Ultrix (-opsystem=bsd4-2)
+
+  Works.  See under Ultrix in share-lib/MACHINES for problems using X
+  windows on Ultrix.
+
+Vax running System V rel 2 (-opsystem=usg5-2)
+
+  18.27 Works.
+
+Vax running System V rel 0 (-opsystem=usg5-0)
+
+  Works as of 18.36.
+
+Vax running VMS (-opsystem=vms)
+
+  18.36 believed to work.  Addition of features is necessary to make
+  this Emacs version more usable.
+
+NOTE-END  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Vax is not big-endian: lowest numbered byte is least significant. */
+
+/* #undef BIG_ENDIAN */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* #define vax    -- appears to be done automatically  */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* crt0.c should use the vax-bsd style of entry, with no dummy args.  */
+
+#define CRT0_DUMMIES
+
+/* crt0.c should define a symbol `start' and do .globl with a dot.  */
+
+#define DOT_GLOBAL_START
+
+#ifdef BSD
+/* USG systems I know of running on Vaxes do not actually
+   support the load average, so disable it for them.  */
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+#endif /* BSD */
+
+#ifdef VMS
+
+/* Data type of load average, as read out of driver.  */
+
+#define LOAD_AVE_TYPE float
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
+
+#endif /* VMS */
+
+/* Vax sysV has alloca in the PW library.  */
+
+#ifdef USG
+#define LIB_STANDARD -lPW -lc
+#define HAVE_ALLOCA
+
+/* There is some bug in unexec in for usg 5.2 on a vax
+   which nobody who runs such a system has yet tracked down. */
+#ifndef USG5_0
+#define NO_REMAP
+#endif /* USG 5_0 */
+
+#define TEXT_START 0
+#endif /* USG */
+
+#ifdef BSD
+#define HAVE_ALLOCA
+#endif /* BSD */
+
+#ifdef VMS
+#define C_ALLOCA
+#endif
diff --git a/src/m/wicat.h b/src/m/wicat.h
new file mode 100644 (file)
index 0000000..6069714
--- /dev/null
@@ -0,0 +1,168 @@
+/* machine description file for WICAT machines.
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#undef NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   vax, m68000, ns16000 are the ones defined so far.  */
+
+#ifndef m68000
+#define m68000
+#endif
+
+/* This flag is used only in alloca.s.  */
+#define WICAT
+
+/* Use type int rather than a union, to represent Lisp_Object */
+
+#define NO_UNION_TYPE
+
+/* XINT must explicitly sign-extend */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#undef LOAD_AVE_TYPE
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#undef LOAD_AVE_CVT
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#undef VIRT_ADDR_VARIES
+
+/* 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.  */
+
+/* For the Wicat C compiler version 4.2, this can be removed
+   and the alloca in alloca.s used.  */
+#define C_ALLOCA
+#define        STACK_DIRECTION -1  /* grows towards lower addresses on WICAT */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#undef NO_REMAP
+
+/* For WICAT, define TAHOE_REGISTER_BUG if you have a pre-4.2 C compiler */
+
+#define TAHOE_REGISTER_BUG
+
+/* pagesize definition */
+
+#define EXEC_PAGESIZE  0x1000
+
+/* Delete this for WICAT sys V releases before 2.0.  */
+
+#define        LIB_STANDARD -lc-nofp
+
+/* Special magic number */
+
+#define EXEC_MAGIC     MC68ROMAGIC
+
+/* Special switches to give to ld.  */
+
+#define LD_SWITCH_MACHINE -e __start -N
+
+/* Sigh...cannot define this for WICAT cuz 0 length memcpy blows chunks */
+
+#undef BSTRING
+
+#ifdef BSTRING
+#undef bcopy
+#undef bzero
+#undef bcmp
+
+#define bcopy(a,b,s)   memcpy(b,a,s)
+#define bzero(a,s)     memset(a,0,s)
+#define bcmp           memcmp
+#endif
+
+/*
+ * Define optimflags if you want to optimize.
+ *     - Set to null string for pre-4.2 C compiler
+ *     - Set to "-O -Wopt,-O-f" for 4.2
+ */
+
+#define C_OPTIMIZE_SWITCH /* -O -Wopt,-O-f */
+
+/* For WICAT version supporting PTYs and select (currently internal only) */
+
+#ifdef HAVE_PTYS
+#undef FIRST_PTY_LETTER
+#define FIRST_PTY_LETTER 'q'
+#endif
+
+/* there is a select() in libcurses.a that causes a conflict so use termlib */
+#ifdef HAVE_SELECT
+#undef TERMINFO
+#define LIBS_TERMCAP select.o -ltermlib
+#endif
diff --git a/src/m/xps100.h b/src/m/xps100.h
new file mode 100644 (file)
index 0000000..4b6fb54
--- /dev/null
@@ -0,0 +1,118 @@
+/* xps100.h for the Honeywell XPS100 running UNIX System V.2
+   Mark J. Hewitt (mjh@uk.co.kernel)
+
+   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.  */
+
+
+/* The following line tells the configuration script what sort of 
+   operating system this machine is likely to run.
+   USUAL-OPSYS="usg5-2"  */
+
+/* The following three symbols give information on
+ the size of various data types.  */
+
+#define SHORTBITS 16           /* Number of bits in a short */
+
+#define INTBITS 32             /* Number of bits in an int */
+
+#define LONGBITS 32            /* Number of bits in a long */
+
+/* Define BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+/* #define NO_ARG_ARRAY */
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Define how to take a char and sign-extend into an int.
+   On machines where char is signed, this is a no-op.  */
+
+#define SIGN_EXTEND_CHAR(c) (c)
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* 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) */
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* 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 */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+#define STACK_DIRECTION -1
+#define TERMINFO
+#define SWITCH_ENUM_BUG
+#define LIB_STANDARD  -lc
+#define LD_SWITCH_MACHINE -X
+#define SECTION_ALIGNMENT (0x3ff)
diff --git a/src/s/aix3-1.h b/src/s/aix3-1.h
new file mode 100644 (file)
index 0000000..366ef83
--- /dev/null
@@ -0,0 +1,232 @@
+/* Definitions file for GNU Emacs running on IBM AIX version 3.1
+   Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY.  No author or distributor
+accepts responsibility to anyone for the consequences of using it
+or for whether it serves any particular purpose or works at all,
+unless he says so in writing.  Refer to the GNU Emacs General Public
+License for full details.
+
+Everyone is granted permission to copy, modify and redistribute
+GNU Emacs, but only under the conditions described in the
+GNU Emacs General Public License.   A copy of this license is
+supposed to have been given to you along with GNU Emacs so you
+can know your rights and responsibilities.  It should be in a
+file named COPYING.  Among other things, the copyright notice
+and this notice must be preserved on all copies.  */
+
+
+/*
+ *     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
+
+/*      Specify IBM AIX version of system */
+
+#ifndef AIX
+#define AIX
+#endif
+
+/*      turn off c prototypes */
+#ifndef _NO_PROTO
+#define _NO_PROTO
+#endif
+
+/*      This symbol should be defined on AIX Version 3  ??????? */
+#ifndef _AIX
+#define _AIX
+#endif
+
+/*      Specify "_BSD" to invoke Berkeley compatibility in header files */
+/*#ifndef _BSD
+#define _BSD
+#endif
+*/
+
+/* SYSTEM_TYPE should indicate the kind of system you are using.
+ It sets the Lisp variable system-type.  */
+
+#define SYSTEM_TYPE "aix-v3"
+
+
+/* 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 <sys/time.h> 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 SYSV_SYSTEM_DIR to use the V.3 getdents/readir
+ *     library functions.  Almost, but not quite the same as
+ *     the 4.2 functions
+ */
+
+#define SYSV_SYSTEM_DIR
+
+/* 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"
+\f
+/* Special itemss 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.  */
+
+#undef static
+
+/* Compiler bug bites on many systems when default ADDR_CORRECT is used.  */
+
+/* #define ADDR_CORRECT(x) (x) */
+
+#define LD_CMD cc
+
+/* Prevent -lg from being used for debugging.  Not needed.  */
+
+#define LIBS_DEBUG
+
+/* No need to specify -lc when linking.  */
+
+#define LIB_STANDARD
+
+/* Use terminfo instead of termcap.  */
+
+#define TERMINFO
+
+/* The following definition seems to be needed in AIX version 3.1.6.8.
+   It may not have been needed in certain earlier versions.  */
+#define HAVE_TCATTR
+
+#define SYSTEM_MALLOC
+
+
+
diff --git a/src/s/bsd4-3.h b/src/s/bsd4-3.h
new file mode 100644 (file)
index 0000000..e9754af
--- /dev/null
@@ -0,0 +1,129 @@
+/* Definitions file for GNU Emacs running on bsd 4.3
+   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_3
+#define        BSD     43              /* 4.3 * 10, as cpp doesn't do floats */
+#endif /* BSD4_3 */
+
+#ifndef BSD
+#define BSD4_3 1
+#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 */
+
+/* Do not use interrupt_input = 1 by default, because in 4.3
+   we can make noninterrupt input work properly.  */
+
+#undef 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 <sys/time.h> 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/hpux.h b/src/s/hpux.h
new file mode 100644 (file)
index 0000000..5920a1c
--- /dev/null
@@ -0,0 +1,260 @@
+/* Definitions file for GNU Emacs running on HPUX release 7.0.
+   Based on AT&T System V.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 HPUX
+
+/* SYSTEM_TYPE should indicate the kind of system you are using.
+ It sets the Lisp variable system-type.  */
+
+#define SYSTEM_TYPE "hpux"
+
+/* `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).
+
+ On hpux this depends on the precise kind of machine in use,
+ so the m- file defines this symbol if appropriate.  */
+
+/* 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/ptym/ptyp0  */
+
+#define FIRST_PTY_LETTER 'p'
+
+/*
+ *     Define HAVE_TERMIO if the system provides sysV-style ioctls
+ *     for terminal control.
+ */
+
+#define HAVE_TERMIO
+
+/* Says to include time.h, and not include sys/time.h.  */
+
+#define NEED_TIME_H
+
+/*
+ *     Define HAVE_TIMEVAL if the system supports the BSD style clock values.
+ *     Look in <sys/time.h> for a timeval structure.
+ */
+
+#define HAVE_TIMEVAL
+
+/* With HAVE_TIMEVAL define, Emacs expects to use `utimes'.
+   But HPUX does not have one.  */
+
+#define MISSING_UTIMES
+
+/*
+ *     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.
+ * s800 and later versions of s300 (s200) kernels have equivilents
+ * of the BSTRING functions of BSD.  If your s200 kernel doesn't have
+ * em comment out this section.
+ */
+
+#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 */
+
+/* Say we have the SYSV style of interprocess communication.  */
+
+#define HAVE_SYSVIPC
+
+/* 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 use the Berkeley (and usg5.2.2) interface to nlist.  */
+
+#define NLIST_STRUCT
+
+/* The file containing the kernel's symbol table is called /hp-ux.  */
+
+#define KERNEL_FILE "/hp-ux"
+
+/* The symbol in the kernel where the load average is found
+   depends on the cpu type, so we let the m- files define LDAV_SYMBOL.  */
+
+/* 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.
+ */
+
+/* HPUX has sigsetmask */
+/* #define sigsetmask(mask)    / * Null expansion * / */
+
+/* setjmp and longjmp can safely replace _setjmp and _longjmp,
+   but they will run slower.  */
+
+/* HP-UX has _setjmp and _longjmp */
+/*
+#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
+
+/* Use the system provided termcap(3) library */
+#define TERMINFO
+
+/* The 48-bit versions are more winning for Emacs.  */
+
+#define rand lrand48
+#define srand srand48
+
+/* In hpux, the symbol SIGIO is defined, but the feature
+   does not really exist.
+
+   Here we assume that signal.h is included before config.h
+   so that we can override it here.  */
+
+#undef SIGIO
+
+/* 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
+
+/* Define extra libraries to load.
+   This should have -lBSD, but that library is said to make
+   `signal' fail to work.  */
+
+#ifdef HPUX_NET
+#define LIBS_SYSTEM -ln
+#else
+#define LIBS_SYSTEM
+#endif
+
+/* Some additional system facilities exist.  */
+
+#define HAVE_DUP2
+#define HAVE_GETTIMEOFDAY
+#define HAVE_VFORK
+#define HAVE_PERROR  /* Delete this line for version 6.  */
+
+/* The following maps shared exec file to demand loaded exec.
+   Don't do this as demand loaded exec is broken in hpux.  */
+
+#if 0
+
+/* Adjust a header field for the executable file about to be dumped.  */
+
+#define ADJUST_EXEC_HEADER   \
+  hdr.a_magic = ((ohdr.a_magic.file_type == OLDMAGIC.file_type) ?  \
+                NEWMAGIC : ohdr.a_magic);
+
+#endif
+
+/* Baud-rate values in tty status have nonstandard meanings.  */
+
+#define BAUD_CONVERT  \
+{ 0, 50, 75, 110, 135, 150, 200, 300, 600, 900, 1200,  \
+  1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 }
+
+/* This is needed for HPUX version 6.2; it may not be needed for 6.2.1.  */
+#define SHORT_CAST_BUG
+
+/* This is how to get the device name of the tty end of a pty.  */
+#define PTY_TTY_NAME_SPRINTF \
+            sprintf (ptyname, "/dev/pty/tty%c%x", c, i);
+
+/* This is how to get the device name of the control end of a pty.  */
+#define PTY_NAME_SPRINTF \
+       sprintf (ptyname, "/dev/ptym/pty%c%x", c, i);
diff --git a/src/s/hpux8.h b/src/s/hpux8.h
new file mode 100644 (file)
index 0000000..ac04714
--- /dev/null
@@ -0,0 +1,13 @@
+/* system description file for hpux version 8.
+   This contains changes that were suggested "for the hp700".
+   They were not needed for the 800.
+   Our conjecture that they are needed for hpux version 8,
+   which is what runs on the 700.  */
+
+#include "hpux.h"
+
+#define LIB_X11_LIB -L/usr/lib/X11R4 -lX11
+#define C_SWITCH_SYSTEM -I/usr/include/X11R4
+
+/* Don't use shared libraries.  unexec doesn't handle them.  */
+#define LD_SWITCH_SYSTEM -a archive
diff --git a/src/s/iris3-6.h b/src/s/iris3-6.h
new file mode 100644 (file)
index 0000000..d295fe3
--- /dev/null
@@ -0,0 +1,193 @@
+/* Definitions file for GNU Emacs running on Silicon Graphics system 3.6.
+   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 <sys/time.h> 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"
+
+\f
+/* 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 */
+#define sigblock(x) x
+
+/* 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
+
+/* 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/isc2-2.h b/src/s/isc2-2.h
new file mode 100644 (file)
index 0000000..907974a
--- /dev/null
@@ -0,0 +1,13 @@
+/* system description file for Interactive (ISC) Unix version 2.2 on
+   the 386.  */
+
+#include "usg5-3.h"
+
+#define HAVE_PTYS
+#define HAVE_RENAME
+#define HAVE_CLOSEDIR
+#define MAXNAMLEN 512
+#define LIB_STANDARD -lcposix -lc
+#define O_NDELAY O_NONBLOCK
+#define MEMORY_IN_STRING_H
+#undef SIGTSTP
diff --git a/src/s/rtu.h b/src/s/rtu.h
new file mode 100644 (file)
index 0000000..273db7a
--- /dev/null
@@ -0,0 +1,172 @@
+/* Definitions file for GNU Emacs running on RTU 3.0, ucb universe.
+   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.
+ */
+
+#define BSD4_2
+#define BSD
+#define RTU
+
+/* SYSTEM_TYPE should indicate the kind of system you are using.
+ It sets the Lisp variable system-type.  */
+
+#define SYSTEM_TYPE "rtu"
+
+/* 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.
+*/
+
+#undef 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 'z'   /* i.e. no PTY_LETTERs */
+
+/*
+ *     Define HAVE_TIMEVAL if the system supports the BSD style clock values.
+ *     Look in <sys/time.h> 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. */
+/* The system library bcopy() is broken in RTU.  For one thing, it expects
+   the length to be less than 64k. */
+#undef 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". */
+
+#undef 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.  */
+
+#undef 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
+
+/* We use the Berkeley (and usg5.2.2) interface to nlist.  */
+
+#define NLIST_STRUCT
+
+/* The symbol in the kernel where the load average is found
+   is named _avenrun.  */
+
+#define LDAV_SYMBOL "_avenrun"
+\f
+/* Special hacks needed to make Emacs run on this system.  */
+
+/* On RTU systems (like USG) 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
+
+/* The "fsync" call on RTU versions 3.0 and 3.1 is badly broken!
+   This hack below isn't the best solution, but without it this
+   program will cause the whole system to hang!  !@#$#%$ Masscomp!  */
+
+#define fsync(x) 0     /* "Comment out" fsync calls */
+
+/* RTU has IPC instead of Unix-domain sockets.  */
+
+#define HAVE_SYSVIPC
+
+/* This is how to get the device name of the tty end of a pty.  */
+#define PTY_TTY_NAME_SPRINTF \
+            sprintf (ptyname, "/dev/ttyp%x", i);
+
+/* This is how to get the device name of the control end of a pty.  */
+#define PTY_NAME_SPRINTF \
+       sprintf (ptyname, "/dev/pty%x", i);
diff --git a/src/s/sunos4shr.h b/src/s/sunos4shr.h
new file mode 100644 (file)
index 0000000..2b66551
--- /dev/null
@@ -0,0 +1,30 @@
+#include "bsd4-2.h"
+
+/* 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 O_NDELAY        FNDELAY /* Non-blocking I/O (4.2 style) */
+
+/* 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
+
+/*  Misleading!  Actually gets loaded after crt0.o */
+#define START_FILES pre-crt0.o
+
+/*
+ *  Kludge!  can't get at symbol "start" in std crt0.o
+ *  Who the #$%&* decided to remove the __ characters!
+ *  Someone needs to fix this in sysdep.c  with an #ifdef BROKEN_START in
+ * sysdep.c.  We do not use this address so any value should do really.  Still
+ *  may need it in the future?
+ */
+#define BROKEN_START
+#define TEXT_START 0x2020
+
+#define UNEXEC unexsunos4.o
+#define RUN_TIME_REMAP
+#define LD_CMD cc
diff --git a/src/s/template.h b/src/s/template.h
new file mode 100644 (file)
index 0000000..6cf4905
--- /dev/null
@@ -0,0 +1,143 @@
+/* Template for system description header files.
+   This file describes the parameters that system description files
+   should define or not.
+   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 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 "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 'a'
+
+/*
+ *     Define HAVE_TIMEVAL if the system supports the BSD style clock values.
+ *     Look in <sys/time.h> 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 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
+
+/* 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).  */
+\f
+/* 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 */
diff --git a/src/s/usg5-3.h b/src/s/usg5-3.h
new file mode 100644 (file)
index 0000000..c54ec47
--- /dev/null
@@ -0,0 +1,215 @@
+/* Definitions file for GNU Emacs running on AT&T's System V Release 3
+   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                            /* 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 <sys/time.h> 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.
+ */
+
+/* Some versions of V.3 have this, but not all.
+   #define HAVE_PTYS
+   #define SYSV_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 SYSV_SYSTEM_DIR to use the V.3 getdents/readir
+ *     library functions.  Almost, but not quite the same as
+ *     the 4.2 functions
+ */
+#define SYSV_SYSTEM_DIR
+
+/* 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"
+
+/* Define this if system V IPC is available.  */
+
+#define HAVE_SYSVIPC
+\f
+/* 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 write sys_write
+#define open sys_open
+#define close sys_close
+
+#define INTERRUPTIBLE_OPEN
+#define INTERRUPTIBLE_CLOSE
+#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
+
+/* X needs to talk on the network, so search the network library.  */
+
+#define LIBX10_SYSTEM -lnsl_s
+#define LIBX11_SYSTEM -lnsl_s
+
+/* Some variants have TIOCGETC, but the structures to go with it
+   are not declared.  */
+
+#define BROKEN_TIOCGETC
+
+/* Enable support for shared libraries in unexec.  */
+
+#define USG_SHARED_LIBRARIES
diff --git a/src/s/usg5-4.h b/src/s/usg5-4.h
new file mode 100644 (file)
index 0000000..817ff06
--- /dev/null
@@ -0,0 +1,163 @@
+/* Definitions file for GNU Emacs running on AT&T's System V Release 4
+   Copyright (C) 1987 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY.  No author or distributor
+accepts responsibility to anyone for the consequences of using it
+or for whether it serves any particular purpose or works at all,
+unless he says so in writing.  Refer to the GNU Emacs General Public
+License for full details.
+
+Everyone is granted permission to copy, modify and redistribute
+GNU Emacs, but only under the conditions described in the
+GNU Emacs General Public License.   A copy of this license is
+supposed to have been given to you along with GNU Emacs so you
+can know your rights and responsibilities.  It should be in a
+file named COPYING.  Among other things, the copyright notice
+and this notice must be preserved on all copies.  */
+
+/* This file written by James Van Artsdalen of Dell Computer Corporation.
+ * james@bigtex.cactus.org.
+ */
+
+/* Use the SysVr3 file for at least base configuration. */
+
+#include "usg5-3.h"
+
+#define USG5_4
+
+/* We do have multiple jobs.  Handle ^Z. */
+
+#undef NOMULTIPLEJOBS
+
+/* If compiled by GNU C, we must have gnulib */
+
+#ifdef __GNUC__
+#define GNULIB /usr/local/lib/gcc-gnulib
+#define LIBS_DEBUG
+#else
+#define GNULIB
+#endif
+
+#define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o
+
+#define LIB_STANDARD GNULIB -lsocket -lnsl -lelf -lc /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o
+
+#define DATA_SEG_BITS 0x08000000
+
+/* Use ptem.h to get structures related to windows.  */
+
+#define NEED_PTEM_H
+
+/* Undump with ELF */
+
+#undef COFF
+
+#define UNEXEC unexelf.o
+
+/* Get FIONREAD from <sys/filio.h>.  Get <sys/ttold.h> to get struct
+ * tchars. But get <termio.h> first to make sure ttold.h doesn't
+ * interfere.  And don't try to use SIGIO yet.
+ */
+
+#ifdef emacs
+#include <sys/filio.h>
+#include <termio.h>
+#include <sys/ttold.h>
+#include <signal.h>
+#undef SIGIO
+#endif
+
+/* libc has this stuff, but not utimes. */
+
+#define HAVE_RENAME
+#define HAVE_SELECT
+#define HAVE_TIMEVAL
+#define HAVE_CLOSEDIR
+#define HAVE_GETTIMEOFDAY
+#define HAVE_DUP2
+
+#define USE_UTIME
+
+/* <sys/stat.h> *defines* stat(2) as a static function.  If "static"
+ * is blank, then many files will have a public definition for stat(2).
+ */
+
+#undef static
+
+/* We need bss_end from emacs.c for undumping */
+
+#ifndef USG_SHARED_LIBRARIES
+#define USG_SHARED_LIBRARIES
+#endif
+
+/* We can support this */
+
+#define CLASH_DETECTION
+
+#define HAVE_PTYS
+#define HAVE_SETSID
+
+/* It is possible to receive SIGCHLD when there are no children
+   waiting, because a previous waitsys(2) cleaned up the carcass of child
+   without clearing the SIGCHLD pending info.  So, use a non-blocking
+   wait3 instead, which maps to waitpid(2) in SysVr4. */
+
+#define HAVE_WAIT_HEADER
+#define WAITTYPE int
+#define wait3(status, options, rusage) \
+  waitpid((pid_t) -1, (status), (options))
+#define WRETCODE(w) (w >> 8)
+
+/* TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY
+   subprocesses the usual way.  But TIOCSIGNAL does work for PTYs, and
+   this is all we need.  */
+
+#define TIOCSIGSEND TIOCSIGNAL
+
+/* This change means that we don't loop through allocate_pty too many
+   times in the (rare) event of a failure. */
+
+#undef FIRST_PTY_LETTER
+#define FIRST_PTY_LETTER 'z'
+
+/* This sets the name of the master side of the PTY. */
+
+#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");
+
+/* This sets the name of the slave side of the PTY.  On SysVr4,
+   grantpt(3) forks a subprocess, so keep sigchld_handler() from
+   intercepting that death.  If any child but grantpt's should die
+   within, it should be caught after sigrelse(2). */
+
+#define PTY_TTY_NAME_SPRINTF                   \
+  {                                            \
+    char *ptsname(), *ptyname;                 \
+                                               \
+    sighold(SIGCLD);                           \
+    if (grantpt(fd) == -1)                     \
+      fatal("could not grant slave pty");      \
+    sigrelse(SIGCLD);                          \
+    if (unlockpt(fd) == -1)                    \
+      fatal("could not unlock slave pty");     \
+    if (!(ptyname = ptsname(fd)))              \
+      fatal ("could not enable slave pty");    \
+    strncpy(pty_name, ptyname, sizeof(pty_name)); \
+    pty_name[sizeof(pty_name) - 1] = 0;                \
+  }
+
+/* Push various streams modules onto a PTY channel. */
+
+#define SETUP_SLAVE_PTY \
+  if (ioctl (xforkin, I_PUSH, "ptem") == -1)   \
+    fatal ("ioctl I_PUSH ptem", errno);                \
+  if (ioctl (xforkin, I_PUSH, "ldterm") == -1) \
+    fatal ("ioctl I_PUSH ldterm", errno);      \
+  if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \
+    fatal ("ioctl I_PUSH ttcompat", errno);
+
+/* The definition of this in usg5-3.h is not needed in 5.4.  */
+
+#undef LIBX11_SYSTEM