Initial revision
authorroland <roland>
Wed, 12 Jun 1991 19:37:18 +0000 (19:37 +0000)
committerroland <roland>
Wed, 12 Jun 1991 19:37:18 +0000 (19:37 +0000)
sysdeps/unix/bsd/signum.h [new file with mode: 0644]
sysdeps/unix/bsd/sigsuspend.c [new file with mode: 0644]
sysdeps/unix/bsd/stty.c [new file with mode: 0644]
sysdeps/unix/seekdir.c [new file with mode: 0644]

diff --git a/sysdeps/unix/bsd/signum.h b/sysdeps/unix/bsd/signum.h
new file mode 100644 (file)
index 0000000..258850e
--- /dev/null
@@ -0,0 +1,70 @@
+/* Copyright (C) 1991 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library 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.
+
+The GNU C Library 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 the GNU C Library; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#ifdef _SIGNAL_H
+
+/* This file defines the fake signal functions and signal
+   number constants for 4.2 or 4.3 BSD-derived Unix system.  */
+
+/* Fake signal functions.
+   These lines MUST be split!  m4 will not change them otherwise.  */
+#define        SIG_ERR /* Error return.  */    \
+       ((void EXFUN((*), (int sig))) -1)
+#define        SIG_DFL /* Default action.  */  \
+       ((void EXFUN((*), (int sig))) 0)
+#define        SIG_IGN /* Ignore signal.  */   \
+       ((void EXFUN((*), (int sig))) 1)
+
+
+/* Signals.  */
+#define        SIGHUP          1       /* Hangup (POSIX).  */
+#define        SIGINT          2       /* Interrupt (ANSI).  */
+#define        SIGQUIT         3       /* Quit (POSIX).  */
+#define        SIGILL          4       /* Illegal instruction (ANSI).  */
+#define        SIGABRT         SIGIOT  /* Abort (ANSI).  */
+#define        SIGTRAP         5       /* Trace trap (POSIX).  */
+#define        SIGIOT          6       /* IOT trap (4.2 BSD).  */
+#define        SIGEMT          7       /* EMT trap (4.2 BSD).  */
+#define        SIGFPE          8       /* Floating-point exception (ANSI).  */
+#define        SIGKILL         9       /* Kill, unblockable (POSIX).  */
+#define        SIGBUS          10      /* Bus error (4.2 BSD).  */
+#define        SIGSEGV         11      /* Segmentation violation (ANSI).  */
+#define        SIGSYS          12      /* Bad argument to system call (4.2 BSD)*/
+#define        SIGPIPE         13      /* Broken pipe (POSIX).  */
+#define        SIGALRM         14      /* Alarm clock (POSIX).  */
+#define        SIGTERM         15      /* Termination (ANSI).  */
+#define        SIGURG          16      /* Urgent condition on socket (4.2 BSD).*/
+#define        SIGSTOP         17      /* Stop, unblockable (POSIX).  */
+#define        SIGTSTP         18      /* Keyboard stop (POSIX).  */
+#define        SIGCONT         19      /* Continue (POSIX).  */
+#define        SIGCHLD         20      /* Child status has changed (POSIX).  */
+#define        SIGCLD          SIGCHLD /* Same as SIGCHLD (System V).  */
+#define        SIGTTIN         21      /* Background read from tty (POSIX).  */
+#define        SIGTTOU         22      /* Background write to tty (POSIX).  */
+#define        SIGIO           23      /* I/O now possible (4.2 BSD).  */
+#define        SIGPOLL         SIGIO   /* Same as SIGIO? (SVID).  */
+#define        SIGXCPU         24      /* CPU limit exceeded (4.2 BSD).  */
+#define        SIGXFSZ         25      /* File size limit exceeded (4.2 BSD).  */
+#define        SIGVTALRM       26      /* Virtual alarm clock (4.2 BSD).  */
+#define        SIGPROF         27      /* Profiling alarm clock (4.2 BSD).  */
+#define        SIGWINCH        28      /* Window size change (4.3 BSD, Sun).  */
+#define        SIGUSR1         30      /* User-defined signal 1 (POSIX).  */
+#define        SIGUSR2         31      /* User-defined signal 2 (POSIX).  */
+
+#endif /* <signal.h> included.  */
+
+#define        _NSIG           32      /* Biggest signal number + 1.  */
diff --git a/sysdeps/unix/bsd/sigsuspend.c b/sysdeps/unix/bsd/sigsuspend.c
new file mode 100644 (file)
index 0000000..d7653d1
--- /dev/null
@@ -0,0 +1,45 @@
+/* Copyright (C) 1991 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library 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.
+
+The GNU C Library 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 the GNU C Library; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#include <errno.h>
+#include <signal.h>
+#include <stddef.h>
+#include <unistd.h>
+
+
+/* Change the set of blocked signals to SET,
+   wait until a signal arrives, and restore the set of blocked signals.  */
+int
+DEFUN(sigsuspend, (set), CONST sigset_t *set)
+{
+  int mask;
+  int sig;
+
+  if (set == NULL)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+
+  mask = 0;
+  for (sig = 1; sig <= NSIG; ++sig)
+    if (__sigismember(set, sig))
+      mask |= sigmask(sig);
+
+  return __sigpause(mask);
+}
diff --git a/sysdeps/unix/bsd/stty.c b/sysdeps/unix/bsd/stty.c
new file mode 100644 (file)
index 0000000..6b6b448
--- /dev/null
@@ -0,0 +1,28 @@
+/* Copyright (C) 1991 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library 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.
+
+The GNU C Library 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 the GNU C Library; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#include <errno.h>
+#include <sgtty.h>
+
+/* Set the terminal parameters associated with FD to *PARAMS.  */
+int
+DEFUN(stty, (fd, params),
+      int fd AND CONST struct sgttyb *params)
+{
+  return ioctl(fd, TIOCSETP, (PTR) params);
+}
diff --git a/sysdeps/unix/seekdir.c b/sysdeps/unix/seekdir.c
new file mode 100644 (file)
index 0000000..5ff954c
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 1991 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library 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.
+
+The GNU C Library 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 the GNU C Library; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#include <errno.h>
+#include <stddef.h>
+#include <dirent.h>
+#include <unistd.h>
+
+/* Seek to position POS in DIRP.  */
+void
+DEFUN(seekdir, (dirp, pos), DIR *dirp AND __off_t pos)
+{
+  pos -= dirp->__size - dirp->__offset;
+  (void) __lseek(dirp->__fd, pos, SEEK_SET);
+  dirp->__size = 0;
+  dirp->__offset = 0;
+}