]> code.delx.au - gnu-emacs/blob - src/s/irix4-0.h
Merge from emacs--rel--22
[gnu-emacs] / src / s / irix4-0.h
1 /* Definitions file for GNU Emacs running on Silicon Graphics Irix system 4.0
2
3 Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006,
4 2007 Free Software Foundation, Inc.
5
6 This file is part of GNU Emacs.
7
8 GNU Emacs is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3, or (at your option)
11 any later version.
12
13 GNU Emacs is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with GNU Emacs; see the file COPYING. If not, write to
20 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
22
23
24 #include "irix3-3.h"
25
26 #define USG5_3
27 #define IRIX4
28 /* XPointer is not defined in the older X headers -- JPff@maths.bath.ac.uk */
29 #define XPointer caddr_t
30
31 #undef NEED_SIOCTL
32
33 /* Include unistd.h, even though we don't define POSIX. */
34 #define NEED_UNISTD_H
35
36 /* Make process_send_signal work by "typing" a signal character on the pty. */
37 #define SIGNALS_VIA_CHARACTERS
38
39 #ifndef __GNUC__
40 /* use K&R C */
41 /* We need to increase the expression tree space with -Wf,-XNh
42 (ghazi@caip.rutgers.edu 7/8/97.)
43 */
44 #define C_SWITCH_SYSTEM -cckr -Wf,-XNh4000
45 #endif
46
47 /* SGI has all the fancy wait stuff, but we can't include sys/wait.h
48 because it defines BIG_ENDIAN and LITTLE_ENDIAN (ugh!.) Instead
49 we'll just define WNOHANG right here.
50 (An implicit decl is good enough for wait3.) */
51
52 #define WNOHANG 0x1
53
54 /* No need to use sprintf to get the tty name--we get that from _getpty. */
55 #undef PTY_TTY_NAME_SPRINTF
56 #define PTY_TTY_NAME_SPRINTF
57 /* No need to get the pty name at all. */
58 #define PTY_NAME_SPRINTF
59 /* We need only try once to open a pty. */
60 #define PTY_ITERATION
61 /* Here is how to do it. */
62 /* It is necessary to prevent SIGCHLD signals within _getpty.
63 So we block them. */
64 #define PTY_OPEN \
65 { \
66 int mask = sigblock (sigmask (SIGCHLD)); \
67 char *name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); \
68 sigsetmask(mask); \
69 if (name == 0) \
70 return -1; \
71 if (fd < 0) \
72 return -1; \
73 if (fstat (fd, &stb) < 0) \
74 return -1; \
75 strcpy (pty_name, name); \
76 }
77
78 /* arch-tag: cfd7e200-a4dc-4f67-9a32-4184c10b0c57
79 (do not change this comment) */