annotate src/s/usg5-4-2.h @ 4237:589ab12dbe3d

(PTY_OPEN): Use sigaction, not sigsetmask.
author Richard M. Stallman <rms@gnu.org>
date Fri, 23 Jul 1993 04:16:38 +0000
parents 94593e8e6593
children ed596b459f72
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3681
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* s/ file for System V release 4.2. */
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3 #include "usg5-4.h"
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5 /* pcg@aber.ac.uk says this is useless since fork does copy-on-write
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 #define HAVE_VFORK */
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 /* fnf@cygnus.com says these exist. */
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 #define HAVE_TCATTR
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 #define HAVE_GETHOSTNAME
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 #if 0 /* autoconf should take care of this. */
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 #define HAVE_RANDOM
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 #endif
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 /* #define HAVE_GETWD (appears to be buggy on SVR4.2) */
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 /* Info from fnf@cygnus.com suggests this is appropriate. */
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 #define POSIX_SIGNALS
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 /* We don't need the definition from usg5-3.h with POSIX_SIGNALS. */
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19 #undef sigsetmask
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20 #undef HAVE_SYSV_SIGPAUSE
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 /* This is the same definition as in usg5-4.h, but with sigblock/sigunblock
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 rather than sighold/sigrelse, which appear to be BSD4.1 specific and won't
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24 work if POSIX_SIGNALS is defined. It may also be appropriate for SVR4.x
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25 (x<2) but I'm not sure. fnf@cygnus.com */
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26 /* This sets the name of the slave side of the PTY. On SysVr4,
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 grantpt(3) forks a subprocess, so keep sigchld_handler() from
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28 intercepting that death. If any child but grantpt's should die
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29 within, it should be caught after sigrelse(2). */
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31 #undef PTY_TTY_NAME_SPRINTF
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 #define PTY_TTY_NAME_SPRINTF \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 { \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 char *ptsname(), *ptyname; \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35 \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36 sigblock(sigmask(SIGCLD)); \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 if (grantpt(fd) == -1) \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 fatal("could not grant slave pty"); \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 sigunblock(sigmask(SIGCLD)); \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 if (unlockpt(fd) == -1) \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 fatal("could not unlock slave pty"); \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 if (!(ptyname = ptsname(fd))) \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 fatal ("could not enable slave pty"); \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 strncpy(pty_name, ptyname, sizeof(pty_name)); \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 pty_name[sizeof(pty_name) - 1] = 0; \
94593e8e6593 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 }