usg5-4.h 4.4 KB
Newer Older
Jim Blandy's avatar
Jim Blandy committed
1
/* Definitions file for GNU Emacs running on AT&T's System V Release 4
2 3 4

Copyright (C) 1987, 1990, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
  2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
Jim Blandy's avatar
Jim Blandy committed
5

6 7 8
Written by James Van Artsdalen of Dell Computer Corp. james@bigtex.cactus.org.
Subsequently improved for Dell 2.2 by Eric S. Raymond <esr@snark.thyrsus.com>.

Jim Blandy's avatar
Jim Blandy committed
9 10
This file is part of GNU Emacs.

11
GNU Emacs is free software: you can redistribute it and/or modify
Jim Blandy's avatar
Jim Blandy committed
12
it under the terms of the GNU General Public License as published by
13 14
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Jim Blandy's avatar
Jim Blandy committed
15

Jim Blandy's avatar
Jim Blandy committed
16
GNU Emacs is distributed in the hope that it will be useful,
Jim Blandy's avatar
Jim Blandy committed
17 18 19 20 21
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
22
along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
Jim Blandy's avatar
Jim Blandy committed
23

24
/* Use the SysVr3 file for at least base configuration.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
25
#define USG				/* System III, System V, etc */
Jim Blandy's avatar
Jim Blandy committed
26

Dan Nicolaescu's avatar
Dan Nicolaescu committed
27
#define USG5
Jim Blandy's avatar
Jim Blandy committed
28 29
#define USG5_4

Dan Nicolaescu's avatar
Dan Nicolaescu committed
30
/* SYSTEM_TYPE should indicate the kind of system you are using.
31
   It sets the Lisp variable system-type.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
32
#define SYSTEM_TYPE "usg-unix-v"
Jim Blandy's avatar
Jim Blandy committed
33

34 35
/* Define HAVE_TERMIO if the system provides sysV-style ioctls
   for terminal control.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
36 37
#define HAVE_TERMIO

38 39
/* Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir library
   functions. Almost, but not quite the same as the 4.2 functions.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
40 41 42 43 44
#define SYSV_SYSTEM_DIR

/* The file containing the kernel's symbol table is called /unix.  */
#define KERNEL_FILE "/unix"

45
/* The kernel symbol where the load average is found is named avenrun.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
46 47 48 49 50 51 52
#define LDAV_SYMBOL "avenrun"

/* setjmp and longjmp can safely replace _setjmp and _longjmp,
   but they will run slower.  */
#define _setjmp setjmp
#define _longjmp longjmp

53
/* On USG systems these have different names.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
54 55 56 57 58 59 60
#ifndef HAVE_INDEX
#define index strchr
#endif /* ! defined (HAVE_INDEX) */
#ifndef HAVE_RINDEX
#define rindex strrchr
#endif /* ! defined (HAVE_RINDEX) */

61
/* The docs for system V/386 suggest v.3 has sigpause, so let's try it.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
62 63
#define HAVE_SYSV_SIGPAUSE

64
/* On USG systems signal handlers return void.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
65
#define SIGTYPE void
66

Jim Blandy's avatar
Jim Blandy committed
67 68
#undef COFF

69 70 71
/* 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.  */
72 73
#include <sys/wait.h>

Jim Blandy's avatar
Jim Blandy committed
74 75 76 77 78
#ifdef emacs
#include <sys/filio.h>
#include <termio.h>
#include <sys/ttold.h>
#include <signal.h>
Jim Blandy's avatar
Jim Blandy committed
79 80 81
#include <sys/stream.h>
#include <sys/stropts.h>
#include <sys/termios.h>
Paul Eggert's avatar
Paul Eggert committed
82
#define BROKEN_SIGIO
Jim Blandy's avatar
Jim Blandy committed
83 84
#endif

85
/* Some SVr4s don't define NSIG in sys/signal.h for ANSI environments;
86 87
   instead, there's a system variable _sys_nsig.  Unfortunately, we need the
   constant to dimension an array.  So wire in the appropriate value here.  */
Paul Eggert's avatar
Paul Eggert committed
88
#define NSIG_MINIMUM 32
89

90
/* We can support this.  */
Jim Blandy's avatar
Jim Blandy committed
91 92
#define CLASH_DETECTION

93
/* Define HAVE_PTYS if the system supports pty devices.  */
Jim Blandy's avatar
Jim Blandy committed
94
#define HAVE_PTYS
95
#define HAVE_TERMIOS
Jim Blandy's avatar
Jim Blandy committed
96 97 98 99 100 101

/* 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 wait3(status, options, rusage) \
102
  waitpid ((pid_t) -1, (status), (options))
Jim Blandy's avatar
Jim Blandy committed
103 104 105 106 107 108 109 110
#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
111
   times in the (rare) event of a failure.  */
Jim Blandy's avatar
Jim Blandy committed
112 113
#define FIRST_PTY_LETTER 'z'

114
/* This sets the name of the master side of the PTY.  */
Jim Blandy's avatar
Jim Blandy committed
115 116
#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");

117
/* Push various streams modules onto a PTY channel.  */
Jim Blandy's avatar
Jim Blandy committed
118 119 120 121 122 123 124 125
#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);

126
/* This definition was suggested for next release.  So give it a try.  */
Jim Blandy's avatar
Jim Blandy committed
127
#define HAVE_SOCKETS
128

Miles Bader's avatar
Miles Bader committed
129 130
/* arch-tag: 1a0ed909-5faa-434b-b7c3-9d86c63d53a6
   (do not change this comment) */