5 #define SETPGRP_RELEASES_CTTY
18 #define SYSTEM_TYPE "irix"
20 #ifdef SETUP_SLAVE_PTY
21 #undef SETUP_SLAVE_PTY
24 /* thomas@mathematik.uni-bremen.de says this is needed. */
25 /* Make process_send_signal work by "typing" a signal character on the pty. */
26 #define SIGNALS_VIA_CHARACTERS
28 /* Define HAVE_ALLOCA to say that the system provides a properly
29 working alloca function and it should be used. */
39 /* SGI has all the fancy wait stuff, but we can't include sys/wait.h
40 because it defines BIG_ENDIAN and LITTLE_ENDIAN (ugh!.) Instead
41 we'll just define WNOHANG right here.
42 (An implicit decl is good enough for wait3.) */
44 /* #define WNOHANG 0x1 */
46 /* No need to use sprintf to get the tty name--we get that from _getpty. */
47 #ifdef PTY_TTY_NAME_SPRINTF
48 #undef PTY_TTY_NAME_SPRINTF
50 #define PTY_TTY_NAME_SPRINTF
51 /* No need to get the pty name at all. */
52 #ifdef PTY_NAME_SPRINTF
53 #undef PTY_NAME_SPRINTF
55 #define PTY_NAME_SPRINTF
59 /* We need only try once to open a pty. */
61 /* Here is how to do it. */
62 /* It is necessary to prevent SIGCHLD signals within _getpty.
63 So we block them. But since all of Emacs uses classic SYSV signal()
64 signals, there is no reliable way to do this (unlike BSD sighold or
65 POSIX sigaction). On Irix 5.* systems, the implementation of
66 sigaction is as close as you can get to a universal. */
69 struct sigaction ocstat, cstat; \
71 sigemptyset(&cstat.sa_mask); \
72 cstat.sa_handler = SIG_DFL; \
74 sigaction(SIGCLD, &cstat, &ocstat); \
75 name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); \
76 sigaction(SIGCLD, &ocstat, (struct sigaction *)0); \
81 if (fstat (fd, &stb) < 0) \
83 strcpy (pty_name, name); \
86 /* jpff@maths.bath.ac.uk reports `struct exception' is not defined
87 on this system, so inhibit use of matherr. */
90 /* Info from simon@lia.di.epfl.ch (Simon Leinen) suggests this is needed. */
91 #define GETPGRP_NO_ARG
93 /* Ulimit(UL_GMEMLIM) is busted... */
94 #define ULIMIT_BREAK_VALUE 0x14000000