diff src/s/dgux.h @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children 0132846995bd
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/s/dgux.h	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,272 @@
+/* Definitions file for GNU Emacs running on Data General's DG/UX
+   version 4.32 upto and including 5.4.1.
+   Copyright (C) 1994 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 2, 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 XEmacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* Synched up with: FSF 19.31. */
+
+/*
+ *	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 BSD4_4
+#define BSD
+
+/* SYSTEM_TYPE should indicate the kind of system you are using.
+ It sets the Lisp variable system-type.  */
+
+#define SYSTEM_TYPE "dgux"
+
+/* XEmacs: There is apparently a bug in DGUX involving a SIGTTOU getting
+   sent to the process if a background write is attempted when we're
+   started under a job-control shell, if we turn on FASYNC (which we
+   do when SIGIO is working).  So don't use SIGIO. */
+#define BROKEN_SIGIO
+
+/*
+ *	Define HAVE_UNIX_DOMAIN if the system supports Unix
+ *      domain sockets.
+ */
+
+#define HAVE_UNIX_DOMAIN
+
+/*
+ *	Define HAVE_PTYS if the system supports pty devices.
+ */
+
+#define HAVE_PTYS
+
+/* If your system uses COFF (Common Object File Format) then define the
+   preprocessor symbol "COFF".
+
+   DGUX can use either COFF or ELF; the default is ELF.
+   To compile for COFF (or BCS) use the TARGET_BINARY_INTERFACE
+   environment variable.   */
+
+#if defined(_DGUXCOFF_TARGET) || defined(_DGUXBCS_TARGET)
+#undef ELF
+#ifndef COFF
+#define COFF
+#endif  /* COFF */
+#else   /* defined(_DGUXCOFF_TARGET) || defined(_DGUXBCS_TARGET) */
+#undef COFF
+#ifndef ELF
+#define ELF
+#endif  /* ELF */
+#endif  /* defined(_DGUXCOFF_TARGET) || defined(_DGUXBCS_TARGET) */
+
+#ifndef COFF /* People will probably find this apparently unreliable
+		till the NFS dumping bug is fixed.  */
+
+/* It is possible to undump to ELF with DG/UX 5.4, but for revisions below
+   5.4.1 the undump MUST be done on a local file system, or the kernel will
+   panic.  ELF executables have the advantage of using shared libraries,
+   while COFF executables will still work on 4.2x systems. */
+
+#define UNEXEC unexelf.o
+
+/* This makes sure that all segments in the executable are undumped,
+   not just text, data, and bss.  In the case of Mxdb and shared
+   libraries, additional information is stored in other sections.
+   It does not hurt to have this defined if you don't use Mxdb or
+   shared libraries.  In fact, it makes no difference. */
+
+/* Necessary for shared libraries and Mxdb debugging information. */
+#define USG_SHARED_LIBRARIES
+#endif
+
+/* 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 a replacement for the baud rate switch, since DG/UX uses a different
+   from BSD.  */
+
+#define	BAUD_CONVERT    { 0, 110, 134, 150, 300, 600, 1200, 1800, 2400, \
+			  4800, 9600, 19200, 38400 }
+
+/*
+ *      Make WM Interface Compliant.
+ */
+
+#define XICCC
+
+/* Here, on a separate page, add any special hacks needed
+   to make Emacs work on this system.  For example,
+   you might define certain system call names that don't
+   exist on your system, or that do different things on
+   your system and must be used only through an encapsulation
+   (Which you should place, by convention, in sysdep.c).  */
+
+/* DG/UX SPECIFIC ADDITIONS TO TEMPLATE FOLLOW: */
+
+/* Use the Berkeley flavors of the library routines, instead of System V.  */
+
+#define setpgrp(pid, pgrp) setpgrp2 (pid, pgrp)
+#define getpgrp(pid) getpgrp2 (pid)
+
+/* Use TERMINFO instead of termcap */
+
+#define	TERMINFO
+
+/*
+ *      Send signals to subprocesses using characters.
+ *
+ */
+
+#define SIGNALS_VIA_CHARACTERS
+
+/*
+ *	Prevent redundant inclusion of termio.h.
+ */
+
+#define NO_TERMIO
+
+/*
+ *	Use a Berkeley style sys/wait.h.
+ *      This makes WIF* macros operate on structures instead of ints.
+ */
+
+#define _BSD_WAIT_FLAVOR
+
+/* #define SYSTEM_MALLOC */
+
+/* MAKING_MAKEFILE must be defined in "ymakefile" before including config.h */
+#ifndef NOT_C_CODE
+
+/* Define this if you use System 5 Release 4 Streams */
+
+#define INTERRUPTIBLE_OPEN
+#define INTERRUPTIBLE_CLOSE
+/* can't hurt to define these, even though read/write should auto restart */
+#define INTERRUPTIBLE_IO
+
+#endif /* not NOT_C_CODE */
+
+#ifndef __GNUC__
+#error You must use GCC to compile Emacs on DGUX
+#endif
+
+#define ORDINARY_LINK
+#define START_FILES pre-crt0.o
+#define LIB_GCC /usr/lib/gcc/libgcc.a
+
+#ifdef _M88KBCS_TARGET
+/* Karl Berry says: the environment
+   recommended by gcc (88/open, a.k.a. m88kbcs) doesn't support some system
+   functions, and gcc doesn't make it easy to switch environments.  */
+#define NO_GET_LOAD_AVG
+#endif
+
+/* definitions for xmakefile production */
+#ifdef COFF
+
+/* Define the following to use all of the available pty's. */
+
+#define PTY_ITERATION 						\
+  for (c = 'p'; c < 't'; c++)					\
+    for (i = 0; (((c == 'p') && (i < 64)) || ((c != 'p') && (i < 16))); i++)
+
+#define PTY_NAME_SPRINTF					\
+      if (c == 'p')						\
+        sprintf (pty_name, "/dev/pty%c%d", c, i);		\
+      else							\
+        sprintf (pty_name, "/dev/pty%c%x", c, i);
+
+#define PTY_TTY_NAME_SPRINTF					\
+      if (c == 'p')						\
+        sprintf (pty_name, "/dev/tty%c%d", c, i);		\
+      else							\
+        sprintf (pty_name, "/dev/tty%c%x", c, i);
+
+#define C_DEBUG_SWITCH -g
+
+#else /* not COFF */
+
+/* We are generating ELF object format.  This makes the system more
+   SVR4 like. */
+
+#define SVR4
+
+/* Pseudo-terminal support under SVR4 only loops to deal with errors. */
+
+#define PTY_ITERATION for (i = 0; i < 1; i++)
+
+/* 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 EMACS_UNBLOCK_SIGNAL. */
+
+#define PTY_TTY_NAME_SPRINTF				\
+  {							\
+    char *ptyname;					\
+							\
+    EMACS_BLOCK_SIGCHLD;				\
+    if (grantpt (fd) == -1)				\
+      { close (fd); return -1; }			\
+    EMACS_UNBLOCK_SIGCHLD;				\
+    if (unlockpt (fd) == -1)				\
+      { close (fd); return -1; }			\
+    if (!(ptyname = ptsname (fd)))			\
+      { close (fd); return -1; }			\
+    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);
+
+#ifdef __GNUC__
+#define C_DEBUG_SWITCH -g -V2 -mversion-03.00 -mstandard
+#endif
+
+#endif /* ELF */
+
+/* Extra stuff which probably should be someplace else but is here out
+   of expediency. */
+
+#define LIB_X11_LIB -lX11
+#define LIB_MOTIF -lXm -lgen
+
+/* Formerly "BSD_PGRPS" */
+
+#define SIGIO_REQUIRES_SEPARATE_PROCESS_GROUP