New for Linux/MIPS port.
authorUlrich Drepper <drepper@redhat.com>
Sat, 12 Jul 1997 23:32:57 +0000 (23:32 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 12 Jul 1997 23:32:57 +0000 (23:32 +0000)
36 files changed:
sysdeps/unix/sysv/linux/mips/Dist [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/Makefile [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/endian.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/fcntl.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/ipc.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/shm.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/sigaction.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/signum.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/socket.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/stat.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/statfs.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/termios.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/time.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/clone.S [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/entry.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/fpregdef.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/fxstat.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/kernel_sigaction.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/kernel_stat.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/kernel_termios.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/lxstat.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/regdef.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/sgidef.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/sys/acct.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/sys/asm.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/sys/cachectl.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/sys/fpregdef.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/sys/procfs.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/sys/regdef.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/sys/syscall.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/sys/sysmips.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/syscalls.list [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/ustat.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/xmknod.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/xstat.c [new file with mode: 0644]

diff --git a/sysdeps/unix/sysv/linux/mips/Dist b/sysdeps/unix/sysv/linux/mips/Dist
new file mode 100644 (file)
index 0000000..a205c94
--- /dev/null
@@ -0,0 +1,3 @@
+clone.S
+kernel_sigaction.h
+kernel_stat.h
diff --git a/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile
new file mode 100644 (file)
index 0000000..e6240ea
--- /dev/null
@@ -0,0 +1,10 @@
+ifeq ($(subdir),signal)
+#sysdep_routines += sigsuspend
+endif
+
+ifeq ($(subdir),misc)
+sysdep_routines += cachectl cacheflush sysmips
+
+headers += regdef.h fpregdef.h sys/asm.h sys/cachectl.h sys/fpregdef.h \
+          sys/regdef.h sys/sysmips.h
+endif
diff --git a/sysdeps/unix/sysv/linux/mips/bits/endian.h b/sysdeps/unix/sysv/linux/mips/bits/endian.h
new file mode 100644 (file)
index 0000000..9f60758
--- /dev/null
@@ -0,0 +1,12 @@
+/* The MIPS architecture has selectable endianness.
+   Linux/MIPS exists in two both little and big endian flavours and we
+   want to be able to share the installed headerfiles between both,
+   so we define __BYTE_ORDER based on GCC's predefines.  */
+
+#ifdef __MIPSEB__
+#define __BYTE_ORDER __BIG_ENDIAN
+#else
+#ifdef __MIPSEL__
+#define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+#endif
diff --git a/sysdeps/unix/sysv/linux/mips/bits/fcntl.h b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
new file mode 100644 (file)
index 0000000..2586140
--- /dev/null
@@ -0,0 +1,100 @@
+/* O_*, F_*, FD_* bit values for Linux.
+   Copyright (C) 1995, 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _FCNTL_H
+#error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#include <sys/types.h>
+
+
+/* In GNU, read and write are bits (unlike BSD).  */
+#ifdef __USE_GNU
+#define O_READ         O_RDONLY        /* Open for reading.  */
+#define O_WRITE                O_WRONLY        /* Open for writing.  */
+#endif
+/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
+   located on an ext2 file system */
+#define O_ACCMODE      0x0003
+#define O_RDONLY       0x0000
+#define O_WRONLY       0x0001
+#define O_RDWR         0x0002
+#define O_APPEND       0x0008
+#define O_SYNC         0x0010
+#define O_NONBLOCK     0x0080
+#define O_CREAT         0x0100 /* not fcntl */
+#define O_TRUNC                0x0200  /* not fcntl */
+#define O_EXCL         0x0400  /* not fcntl */
+#define O_NOCTTY       0x0800  /* not fcntl */
+#define O_FSYNC                O_SYNC
+#define O_ASYNC                020000
+
+#define O_NDELAY       O_NONBLOCK
+
+#define F_DUPFD                0       /* dup */
+#define F_GETFD                1       /* get f_flags */
+#define F_SETFD                2       /* set f_flags */
+#define F_GETFL                3       /* more flags (cloexec) */
+#define F_SETFL                4
+#define F_GETLK                14
+#define F_SETLK                6
+#define F_SETLKW       7
+
+#define F_SETOWN       24      /*  for sockets. */
+#define F_GETOWN       23      /*  for sockets. */
+
+/* for F_[GET|SET]FL */
+#define FD_CLOEXEC     1       /* actually anything with low bit set goes */
+
+/* for posix fcntl() and lockf() */
+#define F_RDLCK                0
+#define F_WRLCK                1
+#define F_UNLCK                2
+
+/* for old implementation of bsd flock () */
+#define F_EXLCK                4       /* or 3 */
+#define F_SHLCK                8       /* or 4 */
+
+/* operations for bsd flock(), also used by the kernel implementation */
+#define LOCK_SH                1       /* shared lock */
+#define LOCK_EX                2       /* exclusive lock */
+#define LOCK_NB                4       /* or'd with one of the above to prevent                XXXXXXXXXXXXXXXXXX
+                                  blocking */
+#define LOCK_UN                8       /* remove lock */
+
+typedef struct flock {
+       short l_type;
+       short l_whence;
+       __off_t l_start;
+       __off_t l_len;
+       long  l_sysid;                  /* XXX */
+       __pid_t l_pid;
+       long  pad[4];                   /* XXX */
+} flock_t;
+
+
+/* Define some more compatibility macros to be backward compatible with
+   BSD systems which did not managed to hide these kernel macros.  */
+#ifdef __USE_BSD
+#define        FAPPEND         O_APPEND
+#define        FFSYNC          O_FSYNC
+#define FASYNC         O_ASYNC
+#define        FNONBLOCK       O_NONBLOCK
+#define        FNDELAY         O_NDELAY
+#endif /* Use BSD.  */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
new file mode 100644 (file)
index 0000000..486022e
--- /dev/null
@@ -0,0 +1,71 @@
+/* Structure types for pre-termios terminal ioctls.  Linux/MIPS version.
+   Copyright (C) 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/*
+ * Never include this file directly; use <sys/ioctl.h> instead.
+ */
+
+#ifndef _BITS_IOCTL_TYPES_H
+#define _BITS_IOCTL_TYPES_H 1
+
+/* Get definition of constants for use with `ioctl'.  */
+#include <asm/ioctls.h>
+
+struct winsize
+  {
+    unsigned short ws_row;
+    unsigned short ws_col;
+    unsigned short ws_xpixel;
+    unsigned short ws_ypixel;
+  };
+
+#define NCC    8
+struct termio
+  {
+    unsigned short c_iflag;            /* input mode flags */
+    unsigned short c_oflag;            /* output mode flags */
+    unsigned short c_cflag;            /* control mode flags */
+    unsigned short c_lflag;            /* local mode flags */
+    char c_line;                       /* line discipline */
+    /* Yes, this is really NCCS.  */
+    unsigned char c_cc[32 /* NCCS */]; /* control characters */
+  };
+
+/* modem lines */
+#define TIOCM_LE       0x001           /* line enable */
+#define TIOCM_DTR      0x002           /* data terminal ready */
+#define TIOCM_RTS      0x004           /* request to send */
+#define TIOCM_ST       0x010           /* secondary transmit */
+#define TIOCM_SR       0x020           /* secondary receive */
+#define TIOCM_CTS      0x040           /* clear to send */
+#define TIOCM_CAR      0x100           /* carrier detect */
+#define TIOCM_CD       TIOCM_CAR
+#define TIOCM_RNG      0x200           /* ring */
+#define TIOCM_RI       TIOCM_RNG
+#define TIOCM_DSR      0x400           /* data set ready */
+
+/* line disciplines */
+#define N_TTY          0
+#define N_SLIP         1
+#define N_MOUSE                2
+#define N_PPP          3
+#define N_STRIP                4
+#define N_AX25         5
+
+#endif /* bits/ioctl-types.h */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/ipc.h b/sysdeps/unix/sysv/linux/mips/bits/ipc.h
new file mode 100644 (file)
index 0000000..c5a3cd0
--- /dev/null
@@ -0,0 +1,85 @@
+/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _SYS_IPC_BUF_H
+
+#define _SYS_IPC_BUF_H 1
+#include <features.h>
+
+#include <sys/types.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'.  */
+#define IPC_CREAT      01000           /* Create key if key does not exist. */
+#define IPC_EXCL       02000           /* Fail if key exists.  */
+#define IPC_NOWAIT     04000           /* Return error on wait.  */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'.  */
+#define IPC_RMID       0               /* Remove identifier.  */
+#define IPC_SET                1               /* Set `ipc_perm' options.  */
+#define IPC_STAT       2               /* Get `ipc_perm' options.  */
+#define IPC_INFO       3               /* See ipcs.  */
+
+
+__BEGIN_DECLS
+
+/* Special key values.  */
+#define IPC_PRIVATE    ((__key_t) 0)   /* Private key.  */
+
+
+/* Data structure used to pass permission information to IPC operations.  */
+struct ipc_perm
+  {
+    __key_t __key;                     /* Key.  */
+    long uid;                          /* Owner's user ID.  */
+    long gid;                          /* Owner's group ID.  */
+    long cuid;                         /* Creator's user ID.  */
+    long cgid;                         /* Creator's group ID.  */
+    unsigned long mode;                        /* Read/write permission.  */
+    unsigned short int __seq;          /* Sequence number.  */
+  };
+
+
+/* Kludge to work around Linux' restriction of only up to five
+   arguments to a system call.  */
+struct ipc_kludge
+  {
+    void *msgp;
+    long int msgtyp;
+  };
+
+/* The actual system call: all functions are multiplexed by this.  */
+extern int __ipc __P ((int __call, int __first, int __second, int __third,
+                      void *__ptr));
+
+/* The codes for the functions to use the multiplexer `__ipc'.  */
+#define IPCOP_semop     1
+#define IPCOP_semget    2
+#define IPCOP_semctl    3
+#define IPCOP_msgsnd   11
+#define IPCOP_msgrcv   12
+#define IPCOP_msgget   13
+#define IPCOP_msgctl   14
+#define IPCOP_shmat    21
+#define IPCOP_shmdt    22
+#define IPCOP_shmget   23
+#define IPCOP_shmctl   24
+
+__END_DECLS
+
+#endif /* bits/ipc_buf.h */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/shm.h b/sysdeps/unix/sysv/linux/mips/bits/shm.h
new file mode 100644 (file)
index 0000000..9d4b20b
--- /dev/null
@@ -0,0 +1,92 @@
+/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _SYS_SHM_BUF_H
+
+#define _SYS_SHM_BUF_H 1
+#include <features.h>
+
+#include <sys/types.h>
+
+/* Permission flag for shmget.  */
+#define SHM_R          0400            /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W          0200            /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'.  */
+#define SHM_RDONLY     010000          /* attach read-only else read-write */
+#define SHM_RND                020000          /* round attach address to SHMLBA */
+#define SHM_REMAP      040000          /* take-over region on attach */
+
+/* Commands for `shmctl'.  */
+#define SHM_LOCK       11              /* lock segment (root only) */
+#define SHM_UNLOCK     12              /* unlock segment (root only) */
+
+
+__BEGIN_DECLS
+
+/* Data structure describing a set of semaphores.  */
+struct shmid_ds
+{
+  struct ipc_perm shm_perm;            /* operation permission struct */
+  int shm_segsz;                       /* size of segment in bytes */
+  __time_t shm_atime;                  /* time of last shmat() */
+  __time_t shm_dtime;                  /* time of last shmdt() */
+  __time_t shm_ctime;                  /* time of last change by shmctl() */
+  long shm_cpid;                       /* pid of creator */
+  long shm_lpid;                       /* pid of last shmop */
+  unsigned short int shm_nattch;       /* number of current attaches */
+  unsigned short int __shm_npages;     /* size of segment (pages) */
+  unsigned long int *__shm_pages;      /* array of ptrs to frames -> SHMMAX */
+  struct vm_area_struct *__attaches;   /* descriptors for attaches */
+};
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+#define SHM_STAT       13
+#define SHM_INFO       14
+
+/* shm_mode upper byte flags */
+#define        SHM_DEST        01000   /* segment will be destroyed on last detach */
+#define SHM_LOCKED      02000   /* segment will not be swapped */
+
+struct shminfo
+{
+  int shmmax;
+  int shmmin;
+  int shmmni;
+  int shmseg;
+  int shmall;
+};
+
+struct shm_info
+{
+  int   used_ids;
+  ulong shm_tot;       /* total allocated shm */
+  ulong shm_rss;       /* total resident shm */
+  ulong shm_swp;       /* total swapped shm */
+  ulong swap_attempts;
+  ulong swap_successes;
+};
+
+#endif /* __USE_MISC */
+
+__END_DECLS
+
+#endif /* bits/shm_buf.h */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
new file mode 100644 (file)
index 0000000..66c58cc
--- /dev/null
@@ -0,0 +1,62 @@
+/* The proper definitions for Linux/MIPS's sigaction.
+   Copyright (C) 1993, 1994, 1995, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Structure describing the action to be taken when a signal arrives.  */
+struct sigaction
+  {
+    /* Special flags.  */
+    unsigned int sa_flags;
+
+    /* Signal handler.  */
+    __sighandler_t sa_handler;
+
+    /* Additional set of signals to be blocked.  */
+    __sigset_t sa_mask;
+
+    /* The ABI says here are two unused ints following. */
+    /* Restore handler.  */
+    void (*sa_restorer) __P ((void));
+
+#if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2)
+    int sa_resv[1];
+#endif
+  };
+
+/* Bits in `sa_flags'.  */
+#define        SA_NOCLDSTOP 1          /* Don't send SIGCHLD when children stop.  */
+#ifdef __USE_MISC
+#define SA_STACK     0x08000000        /* Use signal stack by using `sa_restorer'.  */
+#define SA_RESTART   0x10000000        /* Don't restart syscall on signal return.  */
+#define SA_INTERRUPT 0x20000000        /* Historical no-op.  */
+#define SA_NODEFER   0x40000000        /* Don't automatically block the signal when
+                                  its handler is being executed.  */
+#define SA_RESETHAND 0x80000000        /* Reset to SIG_DFL on entry to handler.  */
+
+/* Some aliases for the SA_ constants.  */
+#define SA_NOMASK      SA_NODEFER
+#define SA_ONESHOT     SA_RESETHAND
+#endif
+
+/* Values for the HOW argument to `sigprocmask'.  */
+#define SIG_NOP                0       /* 0 is unused to catch errors */
+#define        SIG_BLOCK       1       /* Block signals.  */
+#define        SIG_UNBLOCK     2       /* Unblock signals.  */
+#define        SIG_SETMASK     3       /* Set the set of blocked signals.  */
+#define SIG_SETMASK32  256     /* Goodie from SGI for BSD compatibility:
+                                  set only the low 32 bit of the sigset.  */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/signum.h b/sysdeps/unix/sysv/linux/mips/bits/signum.h
new file mode 100644 (file)
index 0000000..5254a2b
--- /dev/null
@@ -0,0 +1,30 @@
+/* Signal number definitions.  Linux version.
+   Copyright (C) 1995, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifdef _SIGNAL_H
+
+/* Take these architecture specific stuff from the kernel header files.  */
+#define __need_fake_sigfuns
+#define __need_signums
+#include <asm/signal.h>
+
+#endif /* <signal.h> included.  */
+
+#define __need__nsig
+#include <asm/signal.h>
diff --git a/sysdeps/unix/sysv/linux/mips/bits/socket.h b/sysdeps/unix/sysv/linux/mips/bits/socket.h
new file mode 100644 (file)
index 0000000..15f420f
--- /dev/null
@@ -0,0 +1,178 @@
+/* System-specific socket constants and types.  Linux version.
+   Copyright (C) 1991, 92, 94, 95, 96, 97 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _SYS_SOCKET_H
+#error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
+#endif
+
+
+#include <features.h>
+
+#define        __need_size_t
+#define __need_NULL
+#include <stddef.h>
+
+
+__BEGIN_DECLS
+
+/* Supported address families. */
+#define PF_UNSPEC      0
+#define PF_UNIX                1               /* Unix domain sockets          */
+#define PF_LOCAL       1               /* POSIX name for AF_UNIX       */
+#define PF_FILE                PF_LOCAL        /* POSIX name for PF_LOCAL.     */
+#define PF_INET                2               /* Internet IP Protocol         */
+#define PF_AX25                3               /* Amateur Radio AX.25          */
+#define PF_IPX         4               /* Novell IPX                   */
+#define PF_APPLETALK   5               /* Appletalk DDP                */
+#define PF_NETROM      6               /* Amateur Radio NET/ROM        */
+#define PF_BRIDGE      7               /* Multiprotocol bridge         */
+#define PF_AAL5                8               /* Reserved for Werner's ATM    */
+#define PF_X25         9               /* Reserved for X.25 project    */
+#define PF_INET6       10              /* IP version 6                 */
+#define PF_ROSE                11              /* Amateur Radio X.25 PLP       */
+#define PF_DECNET      12              /* Reserved for DECnet project  */
+#define PF_NETBEUI     13              /* Reserved for 802.2LLC project*/
+#define PF_MAX         32              /* For now.. */
+
+/* Protocol families, same as address families. */
+#define AF_UNSPEC      PF_UNSPEC
+#define AF_UNIX                PF_UNIX
+#define AF_LOCAL       PF_LOCAL
+#define AF_FILE                PF_FILE
+#define AF_INET                PF_INET
+#define AF_AX25                PF_AX25
+#define AF_IPX         PF_IPX
+#define AF_APPLETALK   PF_APPLETALK
+#define        AF_NETROM       PF_NETROM
+#define AF_BRIDGE      PF_BRIDGE
+#define AF_AAL5                PF_AAL5
+#define AF_X25         PF_X25
+#define AF_INET6       PF_INET6
+#define AF_ROSE                PF_ROSE
+#define AF_DECNET      PF_DECNET
+#define AF_NETBEUI     PF_NETBEUI
+
+#define AF_MAX         PF_MAX
+
+/* Raw IP packet level.  */
+#define SOL_RAW                255
+
+/* Maximum queue length specifiable by listen.  */
+#define SOMAXCONN      128
+
+/* Get the definition of the macro to define the common sockaddr members.  */
+#include <bits/sockaddr.h>
+
+/* Structure describing a generic socket address.  */
+struct sockaddr
+  {
+    __SOCKADDR_COMMON (sa_);   /* Common data: address family and length.  */
+    char sa_data[14];          /* Address data.  */
+  };
+
+
+/* Bits in the FLAGS argument to `send', `recv', et al.  */
+enum
+  {
+    MSG_OOB            = 0x01, /* Process out-of-band data.  */
+    MSG_PEEK           = 0x02, /* Peek at incoming messages.  */
+    MSG_DONTROUTE      = 0x04, /* Don't use local routing.  */
+    MSG_CTRUNC         = 0x08, /* Control data lost before delivery.  */
+    MSG_PROXY          = 0x10  /* Supply or ask second address.  */
+  };
+
+
+/* Structure describing messages sent by
+   `sendmsg' and received by `recvmsg'.  */
+struct msghdr
+  {
+    __ptr_t msg_name;          /* Address to send to/receive from.  */
+    int msg_namelen;           /* Length of address data.  */
+    /* XXX Should be type `size_t' according to POSIX.1g.  */
+
+    struct iovec *msg_iov;     /* Vector of data to send/receive into.  */
+    int msg_iovlen;            /* Number of elements in the vector.  */
+    /* XXX Should be type `size_t' according to POSIX.1g.  */
+
+    __ptr_t msg_control;       /* Ancillary data (eg BSD filedesc passing). */
+    int msg_controllen;                /* Ancillary data buffer length.  */
+    /* XXX Should be type `size_t' according to POSIX.1g.  */
+    int msg_flags;             /* Flags on received message.  */
+  };
+
+/* Structure used for storage of ancillary data object information.  */
+struct cmsghdr
+  {
+    int cmsg_len;              /* Length of data in cmsg_data plus length
+                                  of cmsghdr structure.  */
+    /* XXX Should be type `size_t' according to POSIX.1g.  */
+    int cmsg_level;            /* Originating protocol.  */
+    int cmsg_type;             /* Protocol specific type.  */
+#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
+    unsigned char __cmsg_data[0]; /* Ancillary data.  */
+#endif
+  };
+
+/* Ancillary data object manipulation macros.  */
+#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
+# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
+#else
+# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
+#endif
+#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
+#define CMSG_FIRSTHDR(mhdr) \
+  ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr)                        \
+   ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
+
+
+#ifndef _EXTERN_INLINE
+# define _EXTERN_INLINE extern __inline
+#endif
+extern struct cmsghdr *__cmsg_nxthdr __P ((struct msghdr *__mhdr,
+                                          struct cmsghdr *__cmsg));
+_EXTERN_INLINE struct cmsghdr *
+__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
+{
+  unsigned char *__p;
+
+  if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
+    /* The kernel header does this so there may be a reason.  */
+    return NULL;
+
+  __p = (((unsigned char *) __cmsg)
+        + ((__cmsg->cmsg_len + sizeof (long int) - 1) & ~sizeof (long int)));
+  if (__p >= (unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)
+    /* No more entries.  */
+    return NULL;
+  return (struct cmsghdr *) __p;
+}
+
+
+/* Get socket manipulation related informations from kernel headers.  */
+#include <asm/socket.h>
+
+
+/* Structure used to manipulate the SO_LINGER option.  */
+struct linger
+  {
+    int l_onoff;               /* Nonzero to linger on close.  */
+    int l_linger;              /* Time to linger.  */
+  };
+
+__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/mips/bits/stat.h b/sysdeps/unix/sysv/linux/mips/bits/stat.h
new file mode 100644 (file)
index 0000000..a797b34
--- /dev/null
@@ -0,0 +1,97 @@
+/* Copyright (C) 1992, 1995, 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/*
+ * Never include this file directly; use <sys/stat.h> instead.
+ */
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H   1
+
+/* Versions of the `struct stat' data structure.  */
+#define _STAT_VER_LINUX_OLD    1
+#define _STAT_VER_SVR4         2
+#define _STAT_VER_LINUX                3
+#define _STAT_VER              _STAT_VER_LINUX /* The one defined below.  */
+
+/* Versions of the `xmknod' interface.  */
+#define _MKNOD_VER_LINUX       1
+#define _MKNOD_VER_SVR4                2
+#define _MKNOD_VER             _MKNOD_VER_LINUX /* The bits defined below.  */
+
+/* Structure describing file characteristics.  */
+struct stat
+  {
+    unsigned long int st_dev;
+    long int st_pad1[3];
+    __ino_t st_ino;            /* File serial number.          */
+    __mode_t st_mode;          /* File mode.  */
+    __nlink_t st_nlink;                /* Link count.  */
+    __uid_t st_uid;            /* User ID of the file's owner. */
+    __gid_t st_gid;            /* Group ID of the file's group.*/
+    unsigned long int st_rdev; /* Device number, if device.  */
+    long int st_pad2[2];
+    __off_t st_size;           /* Size of file, in bytes.  */
+    /* SVR4 added this extra long to allow for expansion of off_t.  */
+    long int st_pad3;
+    /*
+     * Actually this should be timestruc_t st_atime, st_mtime and
+     * st_ctime but we don't have it under Linux.
+     */
+    __time_t st_atime;         /* Time of last access.  */
+    long int __reserved0;
+    __time_t st_mtime;         /* Time of last modification.  */
+    long int __reserved1;
+    __time_t st_ctime;         /* Time of last status change.  */
+    long int __reserved2;
+    long int st_blksize;       /* Optimal block size for I/O.  */
+#define        _STATBUF_ST_BLKSIZE     /* Tell code we have this member.  */
+    long int st_blocks;                /* Number of 512-byte blocks allocated.  */
+    char st_fstype[16];                /* Filesystem type name */
+    long int st_pad4[8];
+    /* Linux specific fields */
+    unsigned int st_flags;
+    unsigned int st_gen;
+  };
+
+
+/* Encoding of the file mode.  */
+
+#define        __S_IFMT        0170000 /* These bits determine file type.  */
+
+/* File types.  */
+#define        __S_IFDIR       0040000 /* Directory.  */
+#define        __S_IFCHR       0020000 /* Character device.  */
+#define        __S_IFBLK       0060000 /* Block device.  */
+#define        __S_IFREG       0100000 /* Regular file.  */
+#define        __S_IFIFO       0010000 /* FIFO.  */
+
+/* These don't actually exist on System V, but having them doesn't hurt.  */
+#define        __S_IFLNK       0120000 /* Symbolic link.  */
+#define        __S_IFSOCK      0140000 /* Socket.  */
+
+/* Protection bits.  */
+
+#define        __S_ISUID       04000   /* Set user ID on execution.  */
+#define        __S_ISGID       02000   /* Set group ID on execution.  */
+#define        __S_ISVTX       01000   /* Save swapped text after use (sticky).  */
+#define        __S_IREAD       0400    /* Read by owner.  */
+#define        __S_IWRITE      0200    /* Write by owner.  */
+#define        __S_IEXEC       0100    /* Execute by owner.  */
+
+#endif /* bits/stat.h */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/statfs.h b/sysdeps/unix/sysv/linux/mips/bits/statfs.h
new file mode 100644 (file)
index 0000000..3b23061
--- /dev/null
@@ -0,0 +1,44 @@
+/* Copyright (C) 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/*
+ * Never include this file directly; use <sys/statfs.h> instead.
+ */
+
+#ifndef _BITS_STATFS_H
+#define _BITS_STATFS_H
+
+struct statfs
+  {
+    long int f_type;
+#define f_fstyp f_type
+    long int f_bsize;
+    long int f_frsize; /* Fragment size - unsupported */
+    long int f_blocks;
+    long int f_bfree;
+    long int f_files;
+    long int f_ffree;
+
+       /* Linux specials */
+    long int f_bavail;
+    __fsid_t f_fsid;
+    long int f_namelen;
+    long int f_spare[6];
+  };
+
+#endif /* bits/statfs.h */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios.h b/sysdeps/unix/sysv/linux/mips/bits/termios.h
new file mode 100644 (file)
index 0000000..c8a2469
--- /dev/null
@@ -0,0 +1,260 @@
+/* termios type and macro definitions.  Linux/MIPS version.
+   Copyright (C) 1993, 1994, 1995, 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/*
+ * Never include this file directly; use <termios.h> instead.
+ */
+
+
+#ifndef _BITS_TERMIOS_H
+#define _BITS_TERMIOS_H 1
+
+typedef unsigned char  cc_t;
+typedef unsigned int   speed_t;
+typedef unsigned int   tcflag_t;
+
+
+#if defined __USE_BSD
+
+struct sgttyb
+  {
+    char sg_ispeed;
+    char sg_ospeed;
+    char sg_erase;
+    char sg_kill;
+    int        sg_flags;       /* SGI special - int, not short */
+  };
+
+struct tchars
+  {
+    char t_intrc;
+    char t_quitc;
+    char t_startc;
+    char t_stopc;
+    char t_eofc;
+    char t_brkc;
+  };
+
+struct ltchars
+  {
+    char t_suspc;              /* stop process signal */
+    char t_dsuspc;             /* delayed stop process signal */
+    char t_rprntc;             /* reprint line */
+    char t_flushc;             /* flush output (toggles) */
+    char t_werasc;             /* word erase */
+    char t_lnextc;             /* literal next character */
+  };
+
+#endif /* defined(__BSD) */
+
+#define NCCS 32
+struct termios
+  {
+    tcflag_t c_iflag;          /* input mode flags */
+    tcflag_t c_oflag;          /* output mode flags */
+    tcflag_t c_cflag;          /* control mode flags */
+    tcflag_t c_lflag;          /* local mode flags */
+    cc_t c_line;                       /* line discipline */
+    cc_t c_cc[NCCS];           /* control characters */
+    speed_t c_ispeed;          /* input speed */
+    speed_t c_ospeed;          /* output speed */
+  };
+
+/* c_cc characters */
+#define VINTR           0              /* Interrupt character [ISIG].  */
+#define VQUIT           1              /* Quit character [ISIG].  */
+#define VERASE          2              /* Erase character [ICANON].  */
+#define VKILL           3              /* Kill-line character [ICANON].  */
+#define VMIN            4              /* Minimum number of bytes read at once [!ICANON].  */
+#define VTIME           5              /* Time-out value (tenths of a second) [!ICANON].  */
+#if defined (__USE_BSD)
+#define VEOL2           6              /* Second EOL character [ICANON].  */
+/* The next two are guesses ... */
+#define VSWTC           7              /* ??? */
+#endif
+#define VSWTCH         VSWTC
+#define VSTART          8              /* Start (X-ON) character [IXON, IXOFF].  */
+#define VSTOP           9              /* Stop (X-OFF) character [IXON, IXOFF].  */
+#define VSUSP          10              /* Suspend character [ISIG].  */
+#if 0
+/*
+ * VDSUSP is not supported
+ */
+#if defined (__USE_BSD)
+#define VDSUSP         11              /* Delayed suspend character [ISIG].  */
+#endif
+#endif
+#if defined (__USE_BSD)
+#define VREPRINT       12              /* Reprint-line character [ICANON].  */
+#endif
+#if defined (__USE_BSD)
+#define VDISCARD       13              /* Discard character [IEXTEN].  */
+#define VWERASE                14              /* Word-erase character [ICANON].  */
+#define VLNEXT         15              /* Literal-next character [IEXTEN].  */
+#endif
+#define VEOF           16              /* End-of-file character [ICANON].  */
+#define VEOL           17              /* End-of-line character [ICANON].  */
+
+/* c_iflag bits */
+#define IGNBRK 0000001         /* Ignore break condition.  */
+#define BRKINT 0000002         /* Signal interrupt on break.  */
+#define IGNPAR 0000004         /* Ignore characters with parity errors.  */
+#define PARMRK 0000010         /* Mark parity and framing errors.  */
+#define INPCK  0000020         /* Enable input parity check.  */
+#define ISTRIP 0000040         /* Strip 8th bit off characters.  */
+#define INLCR  0000100         /* Map NL to CR on input.  */
+#define IGNCR  0000200         /* Ignore CR.  */
+#define ICRNL  0000400         /* Map CR to NL on input.  */
+#if defined (__USE_BSD)
+#define IUCLC  0001000         /* Map upper case to lower case on input.  */
+#endif
+#define IXON   0002000         /* Enable start/stop output control.  */
+#if defined (__USE_BSD)
+#define IXANY  0004000         /* Any character will restart after stop.  */
+#endif
+#define IXOFF  0010000         /* Enable start/stop input control.  */
+#if defined (__USE_BSD)
+#define IMAXBEL        0020000         /* Ring bell when input queue is full.  */
+#endif
+
+/* c_oflag bits */
+#define OPOST  0000001         /* Perform output processing.  */
+#if defined (__USE_BSD)
+#define OLCUC  0000002         /* Map lower case to upper case on output.  */
+#define ONLCR  0000004         /* Map NL to CR-NL on output.  */
+#define OCRNL  0000010
+#define ONOCR  0000020
+#define ONLRET 0000040
+#define OFILL  0000100
+#define OFDEL  0000200
+#define NLDLY  0000400
+#define   NL0  0000000
+#define   NL1  0000400
+#define CRDLY  0003000
+#define   CR0  0000000
+#define   CR1  0001000
+#define   CR2  0002000
+#define   CR3  0003000
+#define TABDLY 0014000
+#define   TAB0 0000000
+#define   TAB1 0004000
+#define   TAB2 0010000
+#define   TAB3 0014000
+#define   XTABS        0014000
+#define BSDLY  0020000
+#define   BS0  0000000
+#define   BS1  0020000
+#define VTDLY  0040000
+#define   VT0  0000000
+#define   VT1  0040000
+#define FFDLY  0100000
+#define   FF0  0000000
+#define   FF1  0100000
+/*
+#define PAGEOUT ???
+#define WRAP    ???
+ */
+#endif
+
+/* c_cflag bit meaning */
+#define CBAUD  0010017
+#define  B0    0000000         /* hang up */
+#define  B50   0000001
+#define  B75   0000002
+#define  B110  0000003
+#define  B134  0000004
+#define  B150  0000005
+#define  B200  0000006
+#define  B300  0000007
+#define  B600  0000010
+#define  B1200 0000011
+#define  B1800 0000012
+#define  B2400 0000013
+#define  B4800 0000014
+#define  B9600 0000015
+#define  B19200        0000016
+#define  B38400        0000017
+#define EXTA B19200
+#define EXTB B38400
+#define CSIZE  0000060         /* Number of bits per byte (mask).  */
+#define   CS5  0000000         /* 5 bits per byte.  */
+#define   CS6  0000020         /* 6 bits per byte.  */
+#define   CS7  0000040         /* 7 bits per byte.  */
+#define   CS8  0000060         /* 8 bits per byte.  */
+#define CSTOPB 0000100         /* Two stop bits instead of one.  */
+#define CREAD  0000200         /* Enable receiver.  */
+#define PARENB 0000400         /* Parity enable.  */
+#define PARODD 0001000         /* Odd parity instead of even.  */
+#define HUPCL  0002000         /* Hang up on last close.  */
+#define CLOCAL 0004000         /* Ignore modem status lines.  */
+#if defined (__USE_BSD)
+#define CBAUDEX 0010000
+#define  B57600  0010001
+#define  B115200 0010002
+#define  B230400 0010003
+#define  B460800 0010004
+#define CIBAUD   002003600000  /* input baud rate (not used) */
+#define CRTSCTS          020000000000          /* flow control */
+#endif
+
+/* c_lflag bits */
+#define ISIG   0000001         /* Enable signals.  */
+#define ICANON 0000002         /* Do erase and kill processing.  */
+#define XCASE  0000004
+#define ECHO   0000010         /* Enable echo.  */
+#define ECHOE  0000020         /* Visual erase for ERASE.  */
+#define ECHOK  0000040         /* Echo NL after KILL.  */
+#define ECHONL 0000100         /* Echo NL even if ECHO is off.  */
+#define NOFLSH 0000200         /* Disable flush after interrupt.  */
+#define IEXTEN 0000400         /* Enable DISCARD and LNEXT.  */
+#if defined (__USE_BSD)
+#define ECHOCTL        0001000         /* Echo control characters as ^X.  */
+#define ECHOPRT        0002000         /* Hardcopy visual erase.  */
+#define ECHOKE 0004000         /* Visual erase for KILL.  */
+#endif
+#define FLUSHO 0020000
+#if defined (__USE_BSD)
+#define PENDIN 0040000         /* Retype pending input (state).  */
+#endif
+#define TOSTOP 0100000         /* Send SIGTTOU for background output.  */
+#define ITOSTOP        TOSTOP
+
+/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
+#define TIOCSER_TEMT    0x01   /* Transmitter physically empty */
+
+/* tcflow() and TCXONC use these */
+#define        TCOOFF          0       /* Suspend output.  */
+#define        TCOON           1       /* Restart suspended output.  */
+#define        TCIOFF          2       /* Send a STOP character.  */
+#define        TCION           3       /* Send a START character.  */
+
+/* tcflush() and TCFLSH use these */
+#define        TCIFLUSH        0       /* Discard data received but not yet read.  */
+#define        TCOFLUSH        1       /* Discard data written but not yet sent.  */
+#define        TCIOFLUSH       2       /* Discard all pending data.  */
+
+/* tcsetattr uses these */
+#define        TCSANOW         0x540e  /* Same as TCSETS; change immediately.  */
+#define        TCSADRAIN       0x540f  /* Same as TCSETSW; change when pending output is written.  */
+#define        TCSAFLUSH       0x5410  /* Same as TCSETSF; flush pending input before changing.  */
+
+#define _IOT_termios /* Hurd ioctl type field.  */ \
+  _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
+
+#endif /* bits/termios.h */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/time.h b/sysdeps/unix/sysv/linux/mips/bits/time.h
new file mode 100644 (file)
index 0000000..5fcef0f
--- /dev/null
@@ -0,0 +1,54 @@
+/* System-dependent timing definitions.  Linux/MIPS version.
+   Copyright (C) 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/*
+ * Never include this file directly; use <time.h> instead.
+ */
+
+#ifdef __need_timeval
+# undef __need_timeval
+# ifndef _STRUCT_TIMEVAL
+#  define _STRUCT_TIMEVAL      1
+/* A time value that is accurate to the nearest
+   microsecond but also has a range of years.  */
+struct timeval
+  {
+    long tv_sec;                       /* Seconds.  */
+    long tv_usec;              /* Microseconds.  */
+  };
+# endif        /* struct timeval */
+#endif /* need timeval */
+
+
+#ifndef _BITS_TIME_H
+#define _BITS_TIME_H   1
+
+/* ISO/IEC 9899:1990 7.12.1: <time.h>
+   The macro `CLOCKS_PER_SEC' is the number per second of the value
+   returned by the `clock' function. */
+/* CAE XSH, Issue 4, Version 2: <time.h>
+   The value of CLOCKS_PER_SEC is required to be 1 million on all
+   XSI-conformant systems. */
+# define CLOCKS_PER_SEC  1000000
+
+/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
+   presents the real value for clock ticks per second for the system.  */
+# define CLK_TCK 100           /* XXX not correct for all systems.  */
+
+#endif  /* bits/time.h */
diff --git a/sysdeps/unix/sysv/linux/mips/clone.S b/sysdeps/unix/sysv/linux/mips/clone.S
new file mode 100644 (file)
index 0000000..357f70e
--- /dev/null
@@ -0,0 +1,125 @@
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>, 1996.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* clone() is even more special than fork() as it mucks with stacks
+   and invokes a function in the right context after its all over.  */
+
+#include <sys/asm.h>
+#include <asm/unistd.h>
+#include <sysdep.h>
+#define _ERRNO_H       1
+#include <bits/errno.h>
+
+/* int clone(int (*fn)(), void *child_stack, int flags, int nargs, ...) */
+
+#define FRAMESZ  4*SZREG
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+#define MAX_REG_ARGS 4
+#else
+#define MAX_REG_ARGS 6
+#endif
+
+       .text
+NESTED(__clone,4*SZREG,sp)
+#ifdef __PIC__
+       .set            noreorder
+       .cpload         $25
+       .set            reorder
+       .cprestore      16
+#endif
+       PTR_SUBIU       sp,FRAMESZ
+#ifdef PROF
+       .set            noat
+       move            $1,ra
+       jal             _mcount
+       .set            at
+#endif
+
+       /* Sanity check arguments.  */
+       li              v0,EINVAL
+       beqz            a0,error        /* no NULL function pointers */
+       beqz            a1,error        /* no NULL stack pointers */
+       bltz            a3,error        /* no negative argument counts */
+
+       /* Allocate space on the new stack and copy args over */
+       move            t0,a3           # save nargs for __thread_start
+       PTR_SLL         t1,a3,PTR_SCALESHIFT
+       PTR_ADDU        t1,a3,sp
+1:     REG_L           t2,-SZREG(t1)
+       PTR_SUBIU       t1,SZREG
+       REG_S           t2,-SZREG(a1)
+       PTR_SUBIU       a3,1
+       PTR_SUBIU       a1,SZREG
+       bnez            a3,1b
+
+       /* Do the system call */
+       move            t9,a0           # get fn ptr out of the way
+       move            a0,a2
+       li              v0,__NR_clone
+       syscall
+
+       bnez            a3,error
+       beqz            v0,__thread_start
+
+       /* Successful return from the parent */
+       PTR_ADDIU       sp,FRAMESZ
+       ret
+
+       /* Something bad happened -- no child created */
+error:
+       PTR_ADDIU       sp,FRAMESZ
+#ifdef PIC
+       la              t9,__syscall_error
+       jr              t9
+#else
+       j               __syscall_error
+#endif
+       END(__clone)
+
+/* Load up the arguments to the function.  Put this block of code in
+   its own function so that we can terminate the stack trace with our
+   debug info.
+
+   At this point we have t0=nargs, t9=fn, sp=&arg[0].  */
+
+NESTED(__thread_start,32,sp)
+       /* Stackframe has been created on entry of clone() */
+       /* Calculate address of jump into argument loading code */
+       li              t1,MAX_REG_ARGS
+       slt             t0,t1,t2       /* max MAX_REG_ARGS args in registers */
+       MOVN            (t2,t1,t0)
+       la              v0,arg0
+       PTR_SLL         t1,t0,PTR_SCALESHIFT
+       PTR_SUBU        v0,t1
+       jr              v0
+
+       /* Load the integer register arguments */
+       REG_L           a0,SZREG(sp)
+arg0:
+
+       /* Call the user's function */
+       jalr            t9
+
+       /* Call _exit rather than doing it inline for breakpoint purposes */
+       move            a0,v0
+       jal             _exit
+
+       END(__thread_start)
+
+weak_alias(__clone, clone)
diff --git a/sysdeps/unix/sysv/linux/mips/entry.h b/sysdeps/unix/sysv/linux/mips/entry.h
new file mode 100644 (file)
index 0000000..3db6d93
--- /dev/null
@@ -0,0 +1 @@
+#define ENTRY_POINT __start
diff --git a/sysdeps/unix/sysv/linux/mips/fpregdef.h b/sysdeps/unix/sysv/linux/mips/fpregdef.h
new file mode 100644 (file)
index 0000000..a963d5f
--- /dev/null
@@ -0,0 +1 @@
+#include <sys/fpregdef.h>
diff --git a/sysdeps/unix/sysv/linux/mips/fxstat.c b/sysdeps/unix/sysv/linux/mips/fxstat.c
new file mode 100644 (file)
index 0000000..4a3c486
--- /dev/null
@@ -0,0 +1,80 @@
+/* fxstat using old-style Unix fstat system call.
+   Copyright (C) 1991, 1995, 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+
+#include <kernel_stat.h>
+
+extern int __syscall_fstat (int, struct kernel_stat *);
+
+/* Get information about the file descriptor FD in BUF.  */
+int
+__fxstat (int vers, int fd, struct stat *buf)
+{
+  struct kernel_stat kbuf;
+  int result;
+
+  switch (vers)
+    {
+    case _STAT_VER_LINUX_OLD:
+      /* Nothing to do.  The struct is in the form the kernel expects
+        it to be.  */
+      result = __syscall_fstat (fd, (struct kernel_stat *) buf);
+      break;
+
+    case _STAT_VER_LINUX:
+      /* Do the system call.  */
+      result = __syscall_fstat (fd, &kbuf);
+
+      /* Convert to current kernel version of `struct stat'.  */
+      buf->st_dev = kbuf.st_dev;
+      buf->st_pad1[0]  = 0; buf->st_pad1[1]  = 0; buf->st_pad1[2]  = 0;
+      buf->st_ino = kbuf.st_ino;
+      buf->st_mode = kbuf.st_mode;
+      buf->st_nlink = kbuf.st_nlink;
+      buf->st_uid = kbuf.st_uid;
+      buf->st_gid = kbuf.st_gid;
+      buf->st_rdev = kbuf.st_rdev;
+      buf->st_pad2[0] = 0; buf->st_pad2[1] = 0;
+      buf->st_pad3 = 0;
+      buf->st_size = kbuf.st_size;
+      buf->st_blksize = kbuf.st_blksize;
+      buf->st_blocks = kbuf.st_blocks;
+
+      buf->st_atime = kbuf.st_atime; buf->__reserved0 = 0;
+      buf->st_mtime = kbuf.st_mtime; buf->__reserved1 = 0;
+      buf->st_ctime = kbuf.st_ctime; buf->__reserved2 = 0;
+
+      buf->st_pad4[0] = 0; buf->st_pad4[1] = 0;
+      buf->st_pad4[2] = 0; buf->st_pad4[3] = 0;
+      buf->st_pad4[4] = 0; buf->st_pad4[5] = 0;
+      buf->st_pad4[6] = 0; buf->st_pad4[7] = 0;
+      break;
+
+    default:
+      __set_errno (EINVAL);
+      result = -1;
+      break;
+    }
+
+  return result;
+}
+weak_alias (__fxstat, _fxstat)
diff --git a/sysdeps/unix/sysv/linux/mips/kernel_sigaction.h b/sysdeps/unix/sysv/linux/mips/kernel_sigaction.h
new file mode 100644 (file)
index 0000000..bb7fe6b
--- /dev/null
@@ -0,0 +1,22 @@
+/* This is the sigaction structure from the Linux 2.1.24 kernel.  */
+
+#include <sgidefs.h>
+
+#define HAVE_SA_RESTORER
+
+struct kernel_sigaction {
+       unsigned int    sa_flags;
+       __sighandler_t  sa_handler;
+       unsigned long   sa_mask;
+       unsigned int    __pad0[3]; /* reserved, keep size constant */
+
+       /* Abi says here follows reserved int[2] */
+       void            (*sa_restorer)(void);
+#if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2)
+       /*
+        * For 32 bit code we have to pad struct sigaction to get
+        * constant size for the ABI
+        */
+       int             pad1[1]; /* reserved */
+#endif
+};
diff --git a/sysdeps/unix/sysv/linux/mips/kernel_stat.h b/sysdeps/unix/sysv/linux/mips/kernel_stat.h
new file mode 100644 (file)
index 0000000..c6419ba
--- /dev/null
@@ -0,0 +1,28 @@
+/* Definition of `struct stat' used in the kernel..  */
+struct kernel_stat
+  {
+    unsigned long int st_dev;
+    long int __pad1[3];                        /* Reserved for network id */
+    unsigned long int st_ino;
+    unsigned long int st_mode;
+    unsigned long int st_nlink;
+    long int st_uid;
+    long int st_gid;
+    unsigned long int st_rdev;
+    long int __pad2[2];
+    long int st_size;
+    long int __pad3;
+    unsigned int st_atime;
+    unsigned int __unused1;
+    unsigned int st_mtime;
+    unsigned int __unused2;
+    unsigned int st_ctime;
+    unsigned int __unused3;
+    long int st_blksize;
+    long int st_blocks;
+    char st_fstype[16];                        /* Filesystem type name, unsupported */
+    long st_pad4[8];
+    /* Linux specific fields */
+    unsigned int st_flags;
+    unsigned int st_gen;
+  };
diff --git a/sysdeps/unix/sysv/linux/mips/kernel_termios.h b/sysdeps/unix/sysv/linux/mips/kernel_termios.h
new file mode 100644 (file)
index 0000000..35be1bb
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef _SYS_KERNEL_TERMIOS_H
+#define _SYS_KERNEL_TERMIOS_H 1
+/* The following corresponds to the values from the Linux 2.1.24 kernel.  */
+
+/* We need the definition of tcflag_t, cc_t, and speed_t.  */
+#include <bits/termios.h>
+
+#define __KERNEL_NCCS 23
+
+struct __kernel_termios
+  {
+    tcflag_t c_iflag;          /* input mode flags */
+    tcflag_t c_oflag;          /* output mode flags */
+    tcflag_t c_cflag;          /* control mode flags */
+    tcflag_t c_lflag;          /* local mode flags */
+    cc_t c_line;               /* line discipline */
+    cc_t c_cc[__KERNEL_NCCS];  /* control characters */
+  };
+
+#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/mips/lxstat.h b/sysdeps/unix/sysv/linux/mips/lxstat.h
new file mode 100644 (file)
index 0000000..7907b2f
--- /dev/null
@@ -0,0 +1,80 @@
+/* lxstat using old-style Unix lstat system call.
+   Copyright (C) 1991, 1995, 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+
+#include <kernel_stat.h>
+
+extern int __syscall_lstat (const char *, struct kernel_stat *);
+
+/* Get information about the file NAME in BUF.  */
+int
+__lxstat (int vers, const char *name, struct stat *buf)
+{
+  struct kernel_stat kbuf;
+  int result;
+
+  switch (vers)
+    {
+    case _STAT_VER_LINUX_OLD:
+      /* Nothing to do.  The struct is in the form the kernel expects
+        it to be.  */
+      result = __syscall_lstat (name, (struct kernel_stat *) buf);
+      break;
+
+    case _STAT_VER_LINUX:
+      /* Do the system call.  */
+      result = __syscall_lstat (name, &kbuf);
+
+      /* Convert to current kernel version of `struct stat'.  */
+      buf->st_dev = kbuf.st_dev;
+      buf->st_pad1[0]  = 0; buf->st_pad1[1]  = 0; buf->st_pad1[2]  = 0;
+      buf->st_ino = kbuf.st_ino;
+      buf->st_mode = kbuf.st_mode;
+      buf->st_nlink = kbuf.st_nlink;
+      buf->st_uid = kbuf.st_uid;
+      buf->st_gid = kbuf.st_gid;
+      buf->st_rdev = kbuf.st_rdev;
+      buf->st_pad2[0] = 0; buf->st_pad2[1] = 0;
+      buf->st_pad3 = 0;
+      buf->st_size = kbuf.st_size;
+      buf->st_blksize = kbuf.st_blksize;
+      buf->st_blocks = kbuf.st_blocks;
+
+      buf->st_atime = kbuf.st_atime; buf->__reserved0 = 0;
+      buf->st_mtime = kbuf.st_mtime; buf->__reserved1 = 0;
+      buf->st_ctime = kbuf.st_ctime; buf->__reserved2 = 0;
+
+      buf->st_pad4[0] = 0; buf->st_pad4[1] = 0;
+      buf->st_pad4[2] = 0; buf->st_pad4[3] = 0;
+      buf->st_pad4[4] = 0; buf->st_pad4[5] = 0;
+      buf->st_pad4[6] = 0; buf->st_pad4[7] = 0;
+      break;
+
+    default:
+      __set_errno (EINVAL);
+      result = -1;
+      break;
+    }
+
+  return result;
+}
+weak_alias (__lxstat, _lxstat)
diff --git a/sysdeps/unix/sysv/linux/mips/regdef.h b/sysdeps/unix/sysv/linux/mips/regdef.h
new file mode 100644 (file)
index 0000000..b613c8b
--- /dev/null
@@ -0,0 +1 @@
+#include <sys/regdef.h>
diff --git a/sysdeps/unix/sysv/linux/mips/sgidef.h b/sysdeps/unix/sysv/linux/mips/sgidef.h
new file mode 100644 (file)
index 0000000..a36ece0
--- /dev/null
@@ -0,0 +1,28 @@
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _SGIDEFS_H
+#define _SGIDEFS_H     1
+
+/*
+ * The real definitions come from the Linux kernel sources
+ */
+#include <asm/sgidefs.h>
+
+#endif /* sgidefs.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/acct.h b/sysdeps/unix/sysv/linux/mips/sys/acct.h
new file mode 100644 (file)
index 0000000..ee596db
--- /dev/null
@@ -0,0 +1,66 @@
+/* Copyright (C) 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _SYS_ACCT_H
+
+#define _SYS_ACCT_H    1
+#include <features.h>
+
+#define        __need_time_t
+#include <time.h>
+
+
+__BEGIN_DECLS
+
+#define ACCT_COMM 16
+
+struct acct
+  {
+    char ac_comm[ACCT_COMM];           /* Accounting command name.  */
+    time_t ac_utime;                   /* Accounting user time.  */
+    time_t ac_stime;                   /* Accounting system time.  */
+    time_t ac_etime;                   /* Accounting elapsed time.  */
+    time_t ac_btime;                   /* Beginning time.  */
+    long ac_uid;                       /* Accounting user ID.  */
+    long ac_gid;                       /* Accounting group ID.  */
+    unsigned long int ac_tty;          /* Controlling tty.  */
+    /* Please note that the value of the `ac_tty' field, a device number,
+       is encoded differently in the kernel and for the libc dev_t type.  */
+    char ac_flag;                      /* Accounting flag.  */
+    long int ac_minflt;                        /* Accounting minor pagefaults.  */
+    long int ac_majflt;                        /* Accounting major pagefaults.  */
+    long int ac_exitcode;              /* Accounting process exitcode.  */
+  };
+
+enum
+  {
+    AFORK = 0001,              /* Has executed fork, but no exec.  */
+    ASU = 0002,                        /* Used super-user privileges.  */
+    ACORE = 0004,              /* Dumped core.  */
+    AXSIG = 0010               /* Killed by a signal.  */
+  };
+
+#define AHZ     100
+
+
+/* Switch process accounting on and off.  */
+extern int acct __P ((__const char *__filename));
+
+__END_DECLS
+
+#endif /* sys/acct.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/asm.h b/sysdeps/unix/sysv/linux/mips/sys/asm.h
new file mode 100644 (file)
index 0000000..346a9c4
--- /dev/null
@@ -0,0 +1,28 @@
+/* Copyright (C) 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _SYS_ASM_H
+#define _SYS_ASM_H
+
+/*
+ * The real definitions come from the Linux kernel sources
+ */
+#include <asm/asm.h>
+
+#endif /* sys/asm.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/cachectl.h b/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
new file mode 100644 (file)
index 0000000..740c24d
--- /dev/null
@@ -0,0 +1,42 @@
+/* Copyright (C) 1995, 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _SYS_CACHECTL_H
+#define _SYS_CACHECTL_H 1
+
+#include <features.h>
+
+/*
+ * Get the kernel definition for the op bits.
+ */
+#include <asm/cachectl.h>
+
+__BEGIN_DECLS
+
+#ifdef __USE_MISC
+extern int cachectl __P ((void *addr, __const int nbytes, __const int op));
+#endif
+extern int __cachectl __P ((void *addr, __const int nbytes, __const int op));
+#ifdef __USE_MISC
+extern int cacheflush __P ((void *addr, __const int nbytes, __const int op));
+#endif
+extern int _flush_cache __P ((char *addr, __const int nbytes, __const int op));
+
+__END_DECLS
+
+#endif /* sys/cachectl.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/fpregdef.h b/sysdeps/unix/sysv/linux/mips/sys/fpregdef.h
new file mode 100644 (file)
index 0000000..48d8f75
--- /dev/null
@@ -0,0 +1,27 @@
+/* Copyright (C) 1991, 92, 94, 95, 96, 97 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _SYS_FPREGDEF_H
+#define _SYS_FPREGDEF_H
+
+/*
+ * The real definitions come from the Linux kernel sources
+ */
+#include <asm/fpregdef.h>
+
+#endif /* sys/fpregdef.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/procfs.h b/sysdeps/unix/sysv/linux/mips/sys/procfs.h
new file mode 100644 (file)
index 0000000..d740954
--- /dev/null
@@ -0,0 +1,109 @@
+/* Copyright (C) 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _SYS_PROCFS_H
+
+#define _SYS_PROCFS_H  1
+#include <features.h>
+
+/* This is somehow modelled after the file of the same name on SysVr4
+   systems.  It provides a definition of the core file format for ELF
+   used on Linux.  */
+
+#include <signal.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <asm/user.h>
+#include <asm/elf.h>
+
+__BEGIN_DECLS
+
+struct elf_siginfo
+  {
+    int si_signo;                      /* Signal number.  */
+    int si_code;                       /* Extra code.  */
+    int si_errno;                      /* Errno.  */
+  };
+
+typedef elf_greg_t greg_t;
+typedef elf_gregset_t gregset_t;
+typedef elf_fpregset_t fpregset_t;
+#define NGREG ELF_NGREG
+
+/* Definitions to generate Intel SVR4-like core files.  These mostly
+   have the same names as the SVR4 types with "elf_" tacked on the
+   front to prevent clashes with linux definitions, and the typedef
+   forms have been avoided.  This is mostly like the SVR4 structure,
+   but more Linuxy, with things that Linux does not support and which
+   gdb doesn't really use excluded.  Fields present but not used are
+   marked with "XXX".  */
+struct elf_prstatus
+  {
+#if 0
+    long int pr_flags;                 /* XXX Process flags.  */
+    short int pr_why;                  /* XXX Reason for process halt.  */
+    short int pr_what;                 /* XXX More detailed reason.  */
+#endif
+    struct elf_siginfo pr_info;                /* Info associated with signal.  */
+    short int pr_cursig;               /* Current signal.  */
+    unsigned long int pr_sigpend;      /* Set of pending signals.  */
+    unsigned long int pr_sighold;      /* Set of held signals.  */
+#if 0
+    struct sigaltstack pr_altstack;    /* Alternate stack info.  */
+    struct sigaction pr_action;                /* Signal action for current sig.  */
+#endif
+    __pid_t pr_pid;
+    __pid_t pr_ppid;
+    __pid_t pr_pgrp;
+    __pid_t pr_sid;
+    struct timeval pr_utime;           /* User time.  */
+    struct timeval pr_stime;           /* System time.  */
+    struct timeval pr_cutime;          /* Cumulative user time.  */
+    struct timeval pr_cstime;          /* Cumulative system time.  */
+#if 0
+    long int pr_instr;                 /* Current instruction.  */
+#endif
+    elf_gregset_t pr_reg;              /* GP registers.  */
+    int pr_fpvalid;                    /* True if math copro being used.  */
+  };
+
+
+#define ELF_PRARGSZ     (80)    /* Number of chars for args */
+
+struct elf_prpsinfo
+  {
+    char pr_state;                     /* Numeric process state.  */
+    char pr_sname;                     /* Char for pr_state.  */
+    char pr_zomb;                      /* Zombie.  */
+    char pr_nice;                      /* Nice val.  */
+    unsigned long int pr_flag;         /* Flags.  */
+    long pr_uid;
+    long pr_gid;
+    int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+    /* Lots missing */
+    char pr_fname[16];                 /* Filename of executable.  */
+    char pr_psargs[ELF_PRARGSZ];       /* Initial part of arg list.  */
+  };
+
+
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/regdef.h b/sysdeps/unix/sysv/linux/mips/sys/regdef.h
new file mode 100644 (file)
index 0000000..700fd66
--- /dev/null
@@ -0,0 +1,29 @@
+/* Copyright (C) 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _REGDEF_H
+#define _REGDEF_H      1
+
+/*
+ * The real definitions come from the Linux kernel sources
+ */
+#include <asm/regdef.h>
+#include <asm/fpregdef.h>
+
+#endif /* regdef.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/syscall.h b/sysdeps/unix/sysv/linux/mips/sys/syscall.h
new file mode 100644 (file)
index 0000000..82f8427
--- /dev/null
@@ -0,0 +1,1187 @@
+/* Copyright (C) 1995, 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef        _SYSCALL_H
+#define        _SYSCALL_H      1
+
+/* This file should list the numbers of the system the system knows.
+   But instead of duplicating this we use the information available
+   from the kernel sources.  */
+#include <asm/unistd.h>
+
+/*
+ * SVR4 syscalls are in the range from 1 to 999
+ */
+#define SYS_SVR4                       0
+#define SYS_SVR4_syscall               (SYS_SVR4 +   0)
+#define SYS_SVR4_exit                  (SYS_SVR4 +   1)
+#define SYS_SVR4_fork                  (SYS_SVR4 +   2)
+#define SYS_SVR4_read                  (SYS_SVR4 +   3)
+#define SYS_SVR4_write                 (SYS_SVR4 +   4)
+#define SYS_SVR4_open                  (SYS_SVR4 +   5)
+#define SYS_SVR4_close                 (SYS_SVR4 +   6)
+#define SYS_SVR4_wait                  (SYS_SVR4 +   7)
+#define SYS_SVR4_creat                 (SYS_SVR4 +   8)
+#define SYS_SVR4_link                  (SYS_SVR4 +   9)
+#define SYS_SVR4_unlink                        (SYS_SVR4 +  10)
+#define SYS_SVR4_exec                  (SYS_SVR4 +  11)
+#define SYS_SVR4_chdir                 (SYS_SVR4 +  12)
+#define SYS_SVR4_gtime                 (SYS_SVR4 +  13)
+#define SYS_SVR4_mknod                 (SYS_SVR4 +  14)
+#define SYS_SVR4_chmod                 (SYS_SVR4 +  15)
+#define SYS_SVR4_chown                 (SYS_SVR4 +  16)
+#define SYS_SVR4_sbreak                        (SYS_SVR4 +  17)
+#define SYS_SVR4_stat                  (SYS_SVR4 +  18)
+#define SYS_SVR4_lseek                 (SYS_SVR4 +  19)
+#define SYS_SVR4_getpid                        (SYS_SVR4 +  20)
+#define SYS_SVR4_mount                 (SYS_SVR4 +  21)
+#define SYS_SVR4_umount                        (SYS_SVR4 +  22)
+#define SYS_SVR4_setuid                        (SYS_SVR4 +  23)
+#define SYS_SVR4_getuid                        (SYS_SVR4 +  24)
+#define SYS_SVR4_stime                 (SYS_SVR4 +  25)
+#define SYS_SVR4_ptrace                        (SYS_SVR4 +  26)
+#define SYS_SVR4_alarm                 (SYS_SVR4 +  27)
+#define SYS_SVR4_fstat                 (SYS_SVR4 +  28)
+#define SYS_SVR4_pause                 (SYS_SVR4 +  29)
+#define SYS_SVR4_utime                 (SYS_SVR4 +  30)
+#define SYS_SVR4_stty                  (SYS_SVR4 +  31)
+#define SYS_SVR4_gtty                  (SYS_SVR4 +  32)
+#define SYS_SVR4_access                        (SYS_SVR4 +  33)
+#define SYS_SVR4_nice                  (SYS_SVR4 +  34)
+#define SYS_SVR4_statfs                        (SYS_SVR4 +  35)
+#define SYS_SVR4_sync                  (SYS_SVR4 +  36)
+#define SYS_SVR4_kill                  (SYS_SVR4 +  37)
+#define SYS_SVR4_fstatfs               (SYS_SVR4 +  38)
+#define SYS_SVR4_setpgrp               (SYS_SVR4 +  39)
+#define SYS_SVR4_cxenix                        (SYS_SVR4 +  40)
+#define SYS_SVR4_dup                   (SYS_SVR4 +  41)
+#define SYS_SVR4_pipe                  (SYS_SVR4 +  42)
+#define SYS_SVR4_times                 (SYS_SVR4 +  43)
+#define SYS_SVR4_profil                        (SYS_SVR4 +  44)
+#define SYS_SVR4_plock                 (SYS_SVR4 +  45)
+#define SYS_SVR4_setgid                        (SYS_SVR4 +  46)
+#define SYS_SVR4_getgid                        (SYS_SVR4 +  47)
+#define SYS_SVR4_sig                   (SYS_SVR4 +  48)
+#define SYS_SVR4_msgsys                        (SYS_SVR4 +  49)
+#define SYS_SVR4_sysmips               (SYS_SVR4 +  50)
+#define SYS_SVR4_sysacct               (SYS_SVR4 +  51)
+#define SYS_SVR4_shmsys                        (SYS_SVR4 +  52)
+#define SYS_SVR4_semsys                        (SYS_SVR4 +  53)
+#define SYS_SVR4_ioctl                 (SYS_SVR4 +  54)
+#define SYS_SVR4_uadmin                        (SYS_SVR4 +  55)
+#define SYS_SVR4_exch                  (SYS_SVR4 +  56)
+#define SYS_SVR4_utssys                        (SYS_SVR4 +  57)
+#define SYS_SVR4_fsync                 (SYS_SVR4 +  58)
+#define SYS_SVR4_exece                 (SYS_SVR4 +  59)
+#define SYS_SVR4_umask                 (SYS_SVR4 +  60)
+#define SYS_SVR4_chroot                        (SYS_SVR4 +  61)
+#define SYS_SVR4_fcntl                 (SYS_SVR4 +  62)
+#define SYS_SVR4_ulimit                        (SYS_SVR4 +  63)
+#define SYS_SVR4_reserved1             (SYS_SVR4 +  64)
+#define SYS_SVR4_reserved2             (SYS_SVR4 +  65)
+#define SYS_SVR4_reserved3             (SYS_SVR4 +  66)
+#define SYS_SVR4_reserved4             (SYS_SVR4 +  67)
+#define SYS_SVR4_reserved5             (SYS_SVR4 +  68)
+#define SYS_SVR4_reserved6             (SYS_SVR4 +  69)
+#define SYS_SVR4_advfs                 (SYS_SVR4 +  70)
+#define SYS_SVR4_unadvfs               (SYS_SVR4 +  71)
+#define SYS_SVR4_unused1               (SYS_SVR4 +  72)
+#define SYS_SVR4_unused2               (SYS_SVR4 +  73)
+#define SYS_SVR4_rfstart               (SYS_SVR4 +  74)
+#define SYS_SVR4_unused3               (SYS_SVR4 +  75)
+#define SYS_SVR4_rdebug                        (SYS_SVR4 +  76)
+#define SYS_SVR4_rfstop                        (SYS_SVR4 +  77)
+#define SYS_SVR4_rfsys                 (SYS_SVR4 +  78)
+#define SYS_SVR4_rmdir                 (SYS_SVR4 +  79)
+#define SYS_SVR4_mkdir                 (SYS_SVR4 +  80)
+#define SYS_SVR4_getdents              (SYS_SVR4 +  81)
+#define SYS_SVR4_libattach             (SYS_SVR4 +  82)
+#define SYS_SVR4_libdetach             (SYS_SVR4 +  83)
+#define SYS_SVR4_sysfs                 (SYS_SVR4 +  84)
+#define SYS_SVR4_getmsg                        (SYS_SVR4 +  85)
+#define SYS_SVR4_putmsg                        (SYS_SVR4 +  86)
+#define SYS_SVR4_poll                  (SYS_SVR4 +  87)
+#define SYS_SVR4_lstat                 (SYS_SVR4 +  88)
+#define SYS_SVR4_symlink               (SYS_SVR4 +  89)
+#define SYS_SVR4_readlink              (SYS_SVR4 +  90)
+#define SYS_SVR4_setgroups             (SYS_SVR4 +  91)
+#define SYS_SVR4_getgroups             (SYS_SVR4 +  92)
+#define SYS_SVR4_fchmod                        (SYS_SVR4 +  93)
+#define SYS_SVR4_fchown                        (SYS_SVR4 +  94)
+#define SYS_SVR4_sigprocmask           (SYS_SVR4 +  95)
+#define SYS_SVR4_sigsuspend            (SYS_SVR4 +  96)
+#define SYS_SVR4_sigaltstack           (SYS_SVR4 +  97)
+#define SYS_SVR4_sigaction             (SYS_SVR4 +  98)
+#define SYS_SVR4_sigpending            (SYS_SVR4 +  99)
+#define SYS_SVR4_setcontext            (SYS_SVR4 + 100)
+#define SYS_SVR4_evsys                 (SYS_SVR4 + 101)
+#define SYS_SVR4_evtrapret             (SYS_SVR4 + 102)
+#define SYS_SVR4_statvfs               (SYS_SVR4 + 103)
+#define SYS_SVR4_fstatvfs              (SYS_SVR4 + 104)
+#define SYS_SVR4_reserved7             (SYS_SVR4 + 105)
+#define SYS_SVR4_nfssys                        (SYS_SVR4 + 106)
+#define SYS_SVR4_waitid                        (SYS_SVR4 + 107)
+#define SYS_SVR4_sigsendset            (SYS_SVR4 + 108)
+#define SYS_SVR4_hrtsys                        (SYS_SVR4 + 109)
+#define SYS_SVR4_acancel               (SYS_SVR4 + 110)
+#define SYS_SVR4_async                 (SYS_SVR4 + 111)
+#define SYS_SVR4_priocntlset           (SYS_SVR4 + 112)
+#define SYS_SVR4_pathconf              (SYS_SVR4 + 113)
+#define SYS_SVR4_mincore               (SYS_SVR4 + 114)
+#define SYS_SVR4_mmap                  (SYS_SVR4 + 115)
+#define SYS_SVR4_mprotect              (SYS_SVR4 + 116)
+#define SYS_SVR4_munmap                        (SYS_SVR4 + 117)
+#define SYS_SVR4_fpathconf             (SYS_SVR4 + 118)
+#define SYS_SVR4_vfork                 (SYS_SVR4 + 119)
+#define SYS_SVR4_fchdir                        (SYS_SVR4 + 120)
+#define SYS_SVR4_readv                 (SYS_SVR4 + 121)
+#define SYS_SVR4_writev                        (SYS_SVR4 + 122)
+#define SYS_SVR4_xstat                 (SYS_SVR4 + 123)
+#define SYS_SVR4_lxstat                        (SYS_SVR4 + 124)
+#define SYS_SVR4_fxstat                        (SYS_SVR4 + 125)
+#define SYS_SVR4_xmknod                        (SYS_SVR4 + 126)
+#define SYS_SVR4_clocal                        (SYS_SVR4 + 127)
+#define SYS_SVR4_setrlimit             (SYS_SVR4 + 128)
+#define SYS_SVR4_getrlimit             (SYS_SVR4 + 129)
+#define SYS_SVR4_lchown                        (SYS_SVR4 + 130)
+#define SYS_SVR4_memcntl               (SYS_SVR4 + 131)
+#define SYS_SVR4_getpmsg               (SYS_SVR4 + 132)
+#define SYS_SVR4_putpmsg               (SYS_SVR4 + 133)
+#define SYS_SVR4_rename                        (SYS_SVR4 + 134)
+#define SYS_SVR4_nuname                        (SYS_SVR4 + 135)
+#define SYS_SVR4_setegid               (SYS_SVR4 + 136)
+#define SYS_SVR4_sysconf               (SYS_SVR4 + 137)
+#define SYS_SVR4_adjtime               (SYS_SVR4 + 138)
+#define SYS_SVR4_sysinfo               (SYS_SVR4 + 139)
+#define SYS_SVR4_reserved8             (SYS_SVR4 + 140)
+#define SYS_SVR4_seteuid               (SYS_SVR4 + 141)
+#define SYS_SVR4_PYRAMID_statis                (SYS_SVR4 + 142)
+#define SYS_SVR4_PYRAMID_tuning                (SYS_SVR4 + 143)
+#define SYS_SVR4_PYRAMID_forcerr       (SYS_SVR4 + 144)
+#define SYS_SVR4_PYRAMID_mpcntl                (SYS_SVR4 + 145)
+#define SYS_SVR4_reserved9             (SYS_SVR4 + 146)
+#define SYS_SVR4_reserved10            (SYS_SVR4 + 147)
+#define SYS_SVR4_reserved11            (SYS_SVR4 + 148)
+#define SYS_SVR4_reserved12            (SYS_SVR4 + 149)
+#define SYS_SVR4_reserved13            (SYS_SVR4 + 150)
+#define SYS_SVR4_reserved14            (SYS_SVR4 + 151)
+#define SYS_SVR4_reserved15            (SYS_SVR4 + 152)
+#define SYS_SVR4_reserved16            (SYS_SVR4 + 153)
+#define SYS_SVR4_reserved17            (SYS_SVR4 + 154)
+#define SYS_SVR4_reserved18            (SYS_SVR4 + 155)
+#define SYS_SVR4_reserved19            (SYS_SVR4 + 156)
+#define SYS_SVR4_reserved20            (SYS_SVR4 + 157)
+#define SYS_SVR4_reserved21            (SYS_SVR4 + 158)
+#define SYS_SVR4_reserved22            (SYS_SVR4 + 159)
+#define SYS_SVR4_reserved23            (SYS_SVR4 + 160)
+#define SYS_SVR4_reserved24            (SYS_SVR4 + 161)
+#define SYS_SVR4_reserved25            (SYS_SVR4 + 162)
+#define SYS_SVR4_reserved26            (SYS_SVR4 + 163)
+#define SYS_SVR4_reserved27            (SYS_SVR4 + 164)
+#define SYS_SVR4_reserved28            (SYS_SVR4 + 165)
+#define SYS_SVR4_reserved29            (SYS_SVR4 + 166)
+#define SYS_SVR4_reserved30            (SYS_SVR4 + 167)
+#define SYS_SVR4_reserved31            (SYS_SVR4 + 168)
+#define SYS_SVR4_reserved32            (SYS_SVR4 + 169)
+#define SYS_SVR4_reserved33            (SYS_SVR4 + 170)
+#define SYS_SVR4_reserved34            (SYS_SVR4 + 171)
+#define SYS_SVR4_reserved35            (SYS_SVR4 + 172)
+#define SYS_SVR4_reserved36            (SYS_SVR4 + 173)
+#define SYS_SVR4_reserved37            (SYS_SVR4 + 174)
+#define SYS_SVR4_reserved38            (SYS_SVR4 + 175)
+#define SYS_SVR4_reserved39            (SYS_SVR4 + 176)
+#define SYS_SVR4_reserved40            (SYS_SVR4 + 177)
+#define SYS_SVR4_reserved41            (SYS_SVR4 + 178)
+#define SYS_SVR4_reserved42            (SYS_SVR4 + 179)
+#define SYS_SVR4_reserved43            (SYS_SVR4 + 180)
+#define SYS_SVR4_reserved44            (SYS_SVR4 + 181)
+#define SYS_SVR4_reserved45            (SYS_SVR4 + 182)
+#define SYS_SVR4_reserved46            (SYS_SVR4 + 183)
+#define SYS_SVR4_reserved47            (SYS_SVR4 + 184)
+#define SYS_SVR4_reserved48            (SYS_SVR4 + 185)
+#define SYS_SVR4_reserved49            (SYS_SVR4 + 186)
+#define SYS_SVR4_reserved50            (SYS_SVR4 + 187)
+#define SYS_SVR4_reserved51            (SYS_SVR4 + 188)
+#define SYS_SVR4_reserved52            (SYS_SVR4 + 189)
+#define SYS_SVR4_reserved53            (SYS_SVR4 + 190)
+#define SYS_SVR4_reserved54            (SYS_SVR4 + 191)
+#define SYS_SVR4_reserved55            (SYS_SVR4 + 192)
+#define SYS_SVR4_reserved56            (SYS_SVR4 + 193)
+#define SYS_SVR4_reserved57            (SYS_SVR4 + 194)
+#define SYS_SVR4_reserved58            (SYS_SVR4 + 195)
+#define SYS_SVR4_reserved59            (SYS_SVR4 + 196)
+#define SYS_SVR4_reserved60            (SYS_SVR4 + 197)
+#define SYS_SVR4_reserved61            (SYS_SVR4 + 198)
+#define SYS_SVR4_reserved62            (SYS_SVR4 + 199)
+#define SYS_SVR4_reserved63            (SYS_SVR4 + 200)
+#define SYS_SVR4_aread                 (SYS_SVR4 + 201)
+#define SYS_SVR4_awrite                        (SYS_SVR4 + 202)
+#define SYS_SVR4_listio                        (SYS_SVR4 + 203)
+#define SYS_SVR4_mips_acancel          (SYS_SVR4 + 204)
+#define SYS_SVR4_astatus               (SYS_SVR4 + 205)
+#define SYS_SVR4_await                 (SYS_SVR4 + 206)
+#define SYS_SVR4_areadv                        (SYS_SVR4 + 207)
+#define SYS_SVR4_awritev               (SYS_SVR4 + 208)
+#define SYS_SVR4_MIPS_reserved1                (SYS_SVR4 + 209)
+#define SYS_SVR4_MIPS_reserved2                (SYS_SVR4 + 210)
+#define SYS_SVR4_MIPS_reserved3                (SYS_SVR4 + 211)
+#define SYS_SVR4_MIPS_reserved4                (SYS_SVR4 + 212)
+#define SYS_SVR4_MIPS_reserved5                (SYS_SVR4 + 213)
+#define SYS_SVR4_MIPS_reserved6                (SYS_SVR4 + 214)
+#define SYS_SVR4_MIPS_reserved7                (SYS_SVR4 + 215)
+#define SYS_SVR4_MIPS_reserved8                (SYS_SVR4 + 216)
+#define SYS_SVR4_MIPS_reserved9                (SYS_SVR4 + 217)
+#define SYS_SVR4_MIPS_reserved10       (SYS_SVR4 + 218)
+#define SYS_SVR4_MIPS_reserved11       (SYS_SVR4 + 219)
+#define SYS_SVR4_MIPS_reserved12       (SYS_SVR4 + 220)
+#define SYS_SVR4_CDC_reserved1         (SYS_SVR4 + 221)
+#define SYS_SVR4_CDC_reserved2         (SYS_SVR4 + 222)
+#define SYS_SVR4_CDC_reserved3         (SYS_SVR4 + 223)
+#define SYS_SVR4_CDC_reserved4         (SYS_SVR4 + 224)
+#define SYS_SVR4_CDC_reserved5         (SYS_SVR4 + 225)
+#define SYS_SVR4_CDC_reserved6         (SYS_SVR4 + 226)
+#define SYS_SVR4_CDC_reserved7         (SYS_SVR4 + 227)
+#define SYS_SVR4_CDC_reserved8         (SYS_SVR4 + 228)
+#define SYS_SVR4_CDC_reserved9         (SYS_SVR4 + 229)
+#define SYS_SVR4_CDC_reserved10                (SYS_SVR4 + 230)
+#define SYS_SVR4_CDC_reserved11                (SYS_SVR4 + 231)
+#define SYS_SVR4_CDC_reserved12                (SYS_SVR4 + 232)
+#define SYS_SVR4_CDC_reserved13                (SYS_SVR4 + 233)
+#define SYS_SVR4_CDC_reserved14                (SYS_SVR4 + 234)
+#define SYS_SVR4_CDC_reserved15                (SYS_SVR4 + 235)
+#define SYS_SVR4_CDC_reserved16                (SYS_SVR4 + 236)
+#define SYS_SVR4_CDC_reserved17                (SYS_SVR4 + 237)
+#define SYS_SVR4_CDC_reserved18                (SYS_SVR4 + 238)
+#define SYS_SVR4_CDC_reserved19                (SYS_SVR4 + 239)
+#define SYS_SVR4_CDC_reserved20                (SYS_SVR4 + 240)
+
+/*
+ * SYS V syscalls are in the range from 1000 to 1999
+ */
+#define SYS_SYSV                       1000
+#define SYS_SYSV_syscall               (SYS_SYSV +   0)
+#define SYS_SYSV_exit                  (SYS_SYSV +   1)
+#define SYS_SYSV_fork                  (SYS_SYSV +   2)
+#define SYS_SYSV_read                  (SYS_SYSV +   3)
+#define SYS_SYSV_write                 (SYS_SYSV +   4)
+#define SYS_SYSV_open                  (SYS_SYSV +   5)
+#define SYS_SYSV_close                 (SYS_SYSV +   6)
+#define SYS_SYSV_wait                  (SYS_SYSV +   7)
+#define SYS_SYSV_creat                 (SYS_SYSV +   8)
+#define SYS_SYSV_link                  (SYS_SYSV +   9)
+#define SYS_SYSV_unlink                        (SYS_SYSV +  10)
+#define SYS_SYSV_execv                 (SYS_SYSV +  11)
+#define SYS_SYSV_chdir                 (SYS_SYSV +  12)
+#define SYS_SYSV_time                  (SYS_SYSV +  13)
+#define SYS_SYSV_mknod                 (SYS_SYSV +  14)
+#define SYS_SYSV_chmod                 (SYS_SYSV +  15)
+#define SYS_SYSV_chown                 (SYS_SYSV +  16)
+#define SYS_SYSV_brk                   (SYS_SYSV +  17)
+#define SYS_SYSV_stat                  (SYS_SYSV +  18)
+#define SYS_SYSV_lseek                 (SYS_SYSV +  19)
+#define SYS_SYSV_getpid                        (SYS_SYSV +  20)
+#define SYS_SYSV_mount                 (SYS_SYSV +  21)
+#define SYS_SYSV_umount                        (SYS_SYSV +  22)
+#define SYS_SYSV_setuid                        (SYS_SYSV +  23)
+#define SYS_SYSV_getuid                        (SYS_SYSV +  24)
+#define SYS_SYSV_stime                 (SYS_SYSV +  25)
+#define SYS_SYSV_ptrace                        (SYS_SYSV +  26)
+#define SYS_SYSV_alarm                 (SYS_SYSV +  27)
+#define SYS_SYSV_fstat                 (SYS_SYSV +  28)
+#define SYS_SYSV_pause                 (SYS_SYSV +  29)
+#define SYS_SYSV_utime                 (SYS_SYSV +  30)
+#define SYS_SYSV_stty                  (SYS_SYSV +  31)
+#define SYS_SYSV_gtty                  (SYS_SYSV +  32)
+#define SYS_SYSV_access                        (SYS_SYSV +  33)
+#define SYS_SYSV_nice                  (SYS_SYSV +  34)
+#define SYS_SYSV_statfs                        (SYS_SYSV +  35)
+#define SYS_SYSV_sync                  (SYS_SYSV +  36)
+#define SYS_SYSV_kill                  (SYS_SYSV +  37)
+#define SYS_SYSV_fstatfs               (SYS_SYSV +  38)
+#define SYS_SYSV_setpgrp               (SYS_SYSV +  39)
+#define SYS_SYSV_syssgi                        (SYS_SYSV +  40)
+#define SYS_SYSV_dup                   (SYS_SYSV +  41)
+#define SYS_SYSV_pipe                  (SYS_SYSV +  42)
+#define SYS_SYSV_times                 (SYS_SYSV +  43)
+#define SYS_SYSV_profil                        (SYS_SYSV +  44)
+#define SYS_SYSV_plock                 (SYS_SYSV +  45)
+#define SYS_SYSV_setgid                        (SYS_SYSV +  46)
+#define SYS_SYSV_getgid                        (SYS_SYSV +  47)
+#define SYS_SYSV_sig                   (SYS_SYSV +  48)
+#define SYS_SYSV_msgsys                        (SYS_SYSV +  49)
+#define SYS_SYSV_sysmips               (SYS_SYSV +  50)
+#define SYS_SYSV_acct                  (SYS_SYSV +  51)
+#define SYS_SYSV_shmsys                        (SYS_SYSV +  52)
+#define SYS_SYSV_semsys                        (SYS_SYSV +  53)
+#define SYS_SYSV_ioctl                 (SYS_SYSV +  54)
+#define SYS_SYSV_uadmin                        (SYS_SYSV +  55)
+#define SYS_SYSV_sysmp                 (SYS_SYSV +  56)
+#define SYS_SYSV_utssys                        (SYS_SYSV +  57)
+#define SYS_SYSV_USG_reserved1         (SYS_SYSV +  58)
+#define SYS_SYSV_execve                        (SYS_SYSV +  59)
+#define SYS_SYSV_umask                 (SYS_SYSV +  60)
+#define SYS_SYSV_chroot                        (SYS_SYSV +  61)
+#define SYS_SYSV_fcntl                 (SYS_SYSV +  62)
+#define SYS_SYSV_ulimit                        (SYS_SYSV +  63)
+#define SYS_SYSV_SAFARI4_reserved1     (SYS_SYSV +  64)
+#define SYS_SYSV_SAFARI4_reserved2     (SYS_SYSV +  65)
+#define SYS_SYSV_SAFARI4_reserved3     (SYS_SYSV +  66)
+#define SYS_SYSV_SAFARI4_reserved4     (SYS_SYSV +  67)
+#define SYS_SYSV_SAFARI4_reserved5     (SYS_SYSV +  68)
+#define SYS_SYSV_SAFARI4_reserved6     (SYS_SYSV +  69)
+#define SYS_SYSV_advfs                 (SYS_SYSV +  70)
+#define SYS_SYSV_unadvfs               (SYS_SYSV +  71)
+#define SYS_SYSV_rmount                        (SYS_SYSV +  72)
+#define SYS_SYSV_rumount               (SYS_SYSV +  73)
+#define SYS_SYSV_rfstart               (SYS_SYSV +  74)
+#define SYS_SYSV_getrlimit64           (SYS_SYSV +  75)
+#define SYS_SYSV_setrlimit64           (SYS_SYSV +  76)
+#define SYS_SYSV_nanosleep             (SYS_SYSV +  77)
+#define SYS_SYSV_lseek64               (SYS_SYSV +  78)
+#define SYS_SYSV_rmdir                 (SYS_SYSV +  79)
+#define SYS_SYSV_mkdir                 (SYS_SYSV +  80)
+#define SYS_SYSV_getdents              (SYS_SYSV +  81)
+#define SYS_SYSV_sginap                        (SYS_SYSV +  82)
+#define SYS_SYSV_sgikopt               (SYS_SYSV +  83)
+#define SYS_SYSV_sysfs                 (SYS_SYSV +  84)
+#define SYS_SYSV_getmsg                        (SYS_SYSV +  85)
+#define SYS_SYSV_putmsg                        (SYS_SYSV +  86)
+#define SYS_SYSV_poll                  (SYS_SYSV +  87)
+#define SYS_SYSV_sigreturn             (SYS_SYSV +  88)
+#define SYS_SYSV_accept                        (SYS_SYSV +  89)
+#define SYS_SYSV_bind                  (SYS_SYSV +  90)
+#define SYS_SYSV_connect               (SYS_SYSV +  91)
+#define SYS_SYSV_gethostid             (SYS_SYSV +  92)
+#define SYS_SYSV_getpeername           (SYS_SYSV +  93)
+#define SYS_SYSV_getsockname           (SYS_SYSV +  94)
+#define SYS_SYSV_getsockopt            (SYS_SYSV +  95)
+#define SYS_SYSV_listen                        (SYS_SYSV +  96)
+#define SYS_SYSV_recv                  (SYS_SYSV +  97)
+#define SYS_SYSV_recvfrom              (SYS_SYSV +  98)
+#define SYS_SYSV_recvmsg               (SYS_SYSV +  99)
+#define SYS_SYSV_select                        (SYS_SYSV + 100)
+#define SYS_SYSV_send                  (SYS_SYSV + 101)
+#define SYS_SYSV_sendmsg               (SYS_SYSV + 102)
+#define SYS_SYSV_sendto                        (SYS_SYSV + 103)
+#define SYS_SYSV_sethostid             (SYS_SYSV + 104)
+#define SYS_SYSV_setsockopt            (SYS_SYSV + 105)
+#define SYS_SYSV_shutdown              (SYS_SYSV + 106)
+#define SYS_SYSV_socket                        (SYS_SYSV + 107)
+#define SYS_SYSV_gethostname           (SYS_SYSV + 108)
+#define SYS_SYSV_sethostname           (SYS_SYSV + 109)
+#define SYS_SYSV_getdomainname         (SYS_SYSV + 110)
+#define SYS_SYSV_setdomainname         (SYS_SYSV + 111)
+#define SYS_SYSV_truncate              (SYS_SYSV + 112)
+#define SYS_SYSV_ftruncate             (SYS_SYSV + 113)
+#define SYS_SYSV_rename                        (SYS_SYSV + 114)
+#define SYS_SYSV_symlink               (SYS_SYSV + 115)
+#define SYS_SYSV_readlink              (SYS_SYSV + 116)
+#define SYS_SYSV_lstat                 (SYS_SYSV + 117)
+#define SYS_SYSV_nfsmount              (SYS_SYSV + 118)
+#define SYS_SYSV_nfssvc                        (SYS_SYSV + 119)
+#define SYS_SYSV_getfh                 (SYS_SYSV + 120)
+#define SYS_SYSV_async_daemon          (SYS_SYSV + 121)
+#define SYS_SYSV_exportfs              (SYS_SYSV + 122)
+#define SYS_SYSV_setregid              (SYS_SYSV + 123)
+#define SYS_SYSV_setreuid              (SYS_SYSV + 124)
+#define SYS_SYSV_getitimer             (SYS_SYSV + 125)
+#define SYS_SYSV_setitimer             (SYS_SYSV + 126)
+#define SYS_SYSV_adjtime               (SYS_SYSV + 127)
+#define SYS_SYSV_BSD_getime            (SYS_SYSV + 128)
+#define SYS_SYSV_sproc                 (SYS_SYSV + 129)
+#define SYS_SYSV_prctl                 (SYS_SYSV + 130)
+#define SYS_SYSV_procblk               (SYS_SYSV + 131)
+#define SYS_SYSV_sprocsp               (SYS_SYSV + 132)
+#define SYS_SYSV_sgigsc                        (SYS_SYSV + 133)
+#define SYS_SYSV_mmap                  (SYS_SYSV + 134)
+#define SYS_SYSV_munmap                        (SYS_SYSV + 135)
+#define SYS_SYSV_mprotect              (SYS_SYSV + 136)
+#define SYS_SYSV_msync                 (SYS_SYSV + 137)
+#define SYS_SYSV_madvise               (SYS_SYSV + 138)
+#define SYS_SYSV_pagelock              (SYS_SYSV + 139)
+#define SYS_SYSV_getpagesize           (SYS_SYSV + 140)
+#define SYS_SYSV_quotactl              (SYS_SYSV + 141)
+#define SYS_SYSV_libdetach             (SYS_SYSV + 142)
+#define SYS_SYSV_BSDgetpgrp            (SYS_SYSV + 143)
+#define SYS_SYSV_BSDsetpgrp            (SYS_SYSV + 144)
+#define SYS_SYSV_vhangup               (SYS_SYSV + 145)
+#define SYS_SYSV_fsync                 (SYS_SYSV + 146)
+#define SYS_SYSV_fchdir                        (SYS_SYSV + 147)
+#define SYS_SYSV_getrlimit             (SYS_SYSV + 148)
+#define SYS_SYSV_setrlimit             (SYS_SYSV + 149)
+#define SYS_SYSV_cacheflush            (SYS_SYSV + 150)
+#define SYS_SYSV_cachectl              (SYS_SYSV + 151)
+#define SYS_SYSV_fchown                        (SYS_SYSV + 152)
+#define SYS_SYSV_fchmod                        (SYS_SYSV + 153)
+#define SYS_SYSV_wait3                 (SYS_SYSV + 154)
+#define SYS_SYSV_socketpair            (SYS_SYSV + 155)
+#define SYS_SYSV_sysinfo               (SYS_SYSV + 156)
+#define SYS_SYSV_nuname                        (SYS_SYSV + 157)
+#define SYS_SYSV_xstat                 (SYS_SYSV + 158)
+#define SYS_SYSV_lxstat                        (SYS_SYSV + 159)
+#define SYS_SYSV_fxstat                        (SYS_SYSV + 160)
+#define SYS_SYSV_xmknod                        (SYS_SYSV + 161)
+#define SYS_SYSV_ksigaction            (SYS_SYSV + 162)
+#define SYS_SYSV_sigpending            (SYS_SYSV + 163)
+#define SYS_SYSV_sigprocmask           (SYS_SYSV + 164)
+#define SYS_SYSV_sigsuspend            (SYS_SYSV + 165)
+#define SYS_SYSV_sigpoll               (SYS_SYSV + 166)
+#define SYS_SYSV_swapctl               (SYS_SYSV + 167)
+#define SYS_SYSV_getcontext            (SYS_SYSV + 168)
+#define SYS_SYSV_setcontext            (SYS_SYSV + 169)
+#define SYS_SYSV_waitsys               (SYS_SYSV + 170)
+#define SYS_SYSV_sigstack              (SYS_SYSV + 171)
+#define SYS_SYSV_sigaltstack           (SYS_SYSV + 172)
+#define SYS_SYSV_sigsendset            (SYS_SYSV + 173)
+#define SYS_SYSV_statvfs               (SYS_SYSV + 174)
+#define SYS_SYSV_fstatvfs              (SYS_SYSV + 175)
+#define SYS_SYSV_getpmsg               (SYS_SYSV + 176)
+#define SYS_SYSV_putpmsg               (SYS_SYSV + 177)
+#define SYS_SYSV_lchown                        (SYS_SYSV + 178)
+#define SYS_SYSV_priocntl              (SYS_SYSV + 179)
+#define SYS_SYSV_ksigqueue             (SYS_SYSV + 180)
+#define SYS_SYSV_readv                 (SYS_SYSV + 181)
+#define SYS_SYSV_writev                        (SYS_SYSV + 182)
+#define SYS_SYSV_truncate64            (SYS_SYSV + 183)
+#define SYS_SYSV_ftruncate64           (SYS_SYSV + 184)
+#define SYS_SYSV_mmap64                        (SYS_SYSV + 185)
+#define SYS_SYSV_dmi                   (SYS_SYSV + 186)
+#define SYS_SYSV_pread                 (SYS_SYSV + 187)
+#define SYS_SYSV_pwrite                        (SYS_SYSV + 188)
+
+/*
+ * BSD 4.3 syscalls are in the range from 2000 to 2999
+ */
+#define SYS_BSD43                      2000
+#define SYS_BSD43_syscall              (SYS_BSD43 +   0)
+#define SYS_BSD43_exit                 (SYS_BSD43 +   1)
+#define SYS_BSD43_fork                 (SYS_BSD43 +   2)
+#define SYS_BSD43_read                 (SYS_BSD43 +   3)
+#define SYS_BSD43_write                        (SYS_BSD43 +   4)
+#define SYS_BSD43_open                 (SYS_BSD43 +   5)
+#define SYS_BSD43_close                        (SYS_BSD43 +   6)
+#define SYS_BSD43_wait                 (SYS_BSD43 +   7)
+#define SYS_BSD43_creat                        (SYS_BSD43 +   8)
+#define SYS_BSD43_link                 (SYS_BSD43 +   9)
+#define SYS_BSD43_unlink               (SYS_BSD43 +  10)
+#define SYS_BSD43_exec                 (SYS_BSD43 +  11)
+#define SYS_BSD43_chdir                        (SYS_BSD43 +  12)
+#define SYS_BSD43_time                 (SYS_BSD43 +  13)
+#define SYS_BSD43_mknod                        (SYS_BSD43 +  14)
+#define SYS_BSD43_chmod                        (SYS_BSD43 +  15)
+#define SYS_BSD43_chown                        (SYS_BSD43 +  16)
+#define SYS_BSD43_sbreak               (SYS_BSD43 +  17)
+#define SYS_BSD43_oldstat              (SYS_BSD43 +  18)
+#define SYS_BSD43_lseek                        (SYS_BSD43 +  19)
+#define SYS_BSD43_getpid               (SYS_BSD43 +  20)
+#define SYS_BSD43_oldmount             (SYS_BSD43 +  21)
+#define SYS_BSD43_umount               (SYS_BSD43 +  22)
+#define SYS_BSD43_setuid               (SYS_BSD43 +  23)
+#define SYS_BSD43_getuid               (SYS_BSD43 +  24)
+#define SYS_BSD43_stime                        (SYS_BSD43 +  25)
+#define SYS_BSD43_ptrace               (SYS_BSD43 +  26)
+#define SYS_BSD43_alarm                        (SYS_BSD43 +  27)
+#define SYS_BSD43_oldfstat             (SYS_BSD43 +  28)
+#define SYS_BSD43_pause                        (SYS_BSD43 +  29)
+#define SYS_BSD43_utime                        (SYS_BSD43 +  30)
+#define SYS_BSD43_stty                 (SYS_BSD43 +  31)
+#define SYS_BSD43_gtty                 (SYS_BSD43 +  32)
+#define SYS_BSD43_access               (SYS_BSD43 +  33)
+#define SYS_BSD43_nice                 (SYS_BSD43 +  34)
+#define SYS_BSD43_ftime                        (SYS_BSD43 +  35)
+#define SYS_BSD43_sync                 (SYS_BSD43 +  36)
+#define SYS_BSD43_kill                 (SYS_BSD43 +  37)
+#define SYS_BSD43_stat                 (SYS_BSD43 +  38)
+#define SYS_BSD43_oldsetpgrp           (SYS_BSD43 +  39)
+#define SYS_BSD43_lstat                        (SYS_BSD43 +  40)
+#define SYS_BSD43_dup                  (SYS_BSD43 +  41)
+#define SYS_BSD43_pipe                 (SYS_BSD43 +  42)
+#define SYS_BSD43_times                        (SYS_BSD43 +  43)
+#define SYS_BSD43_profil               (SYS_BSD43 +  44)
+#define SYS_BSD43_msgsys               (SYS_BSD43 +  45)
+#define SYS_BSD43_setgid               (SYS_BSD43 +  46)
+#define SYS_BSD43_getgid               (SYS_BSD43 +  47)
+#define SYS_BSD43_ssig                 (SYS_BSD43 +  48)
+#define SYS_BSD43_reserved1            (SYS_BSD43 +  49)
+#define SYS_BSD43_reserved2            (SYS_BSD43 +  50)
+#define SYS_BSD43_sysacct              (SYS_BSD43 +  51)
+#define SYS_BSD43_phys                 (SYS_BSD43 +  52)
+#define SYS_BSD43_lock                 (SYS_BSD43 +  53)
+#define SYS_BSD43_ioctl                        (SYS_BSD43 +  54)
+#define SYS_BSD43_reboot               (SYS_BSD43 +  55)
+#define SYS_BSD43_mpxchan              (SYS_BSD43 +  56)
+#define SYS_BSD43_symlink              (SYS_BSD43 +  57)
+#define SYS_BSD43_readlink             (SYS_BSD43 +  58)
+#define SYS_BSD43_execve               (SYS_BSD43 +  59)
+#define SYS_BSD43_umask                        (SYS_BSD43 +  60)
+#define SYS_BSD43_chroot               (SYS_BSD43 +  61)
+#define SYS_BSD43_fstat                        (SYS_BSD43 +  62)
+#define SYS_BSD43_reserved3            (SYS_BSD43 +  63)
+#define SYS_BSD43_getpagesize          (SYS_BSD43 +  64)
+#define SYS_BSD43_mremap               (SYS_BSD43 +  65)
+#define SYS_BSD43_vfork                        (SYS_BSD43 +  66)
+#define SYS_BSD43_vread                        (SYS_BSD43 +  67)
+#define SYS_BSD43_vwrite               (SYS_BSD43 +  68)
+#define SYS_BSD43_sbrk                 (SYS_BSD43 +  69)
+#define SYS_BSD43_sstk                 (SYS_BSD43 +  70)
+#define SYS_BSD43_mmap                 (SYS_BSD43 +  71)
+#define SYS_BSD43_vadvise              (SYS_BSD43 +  72)
+#define SYS_BSD43_munmap               (SYS_BSD43 +  73)
+#define SYS_BSD43_mprotect             (SYS_BSD43 +  74)
+#define SYS_BSD43_madvise              (SYS_BSD43 +  75)
+#define SYS_BSD43_vhangup              (SYS_BSD43 +  76)
+#define SYS_BSD43_vlimit               (SYS_BSD43 +  77)
+#define SYS_BSD43_mincore              (SYS_BSD43 +  78)
+#define SYS_BSD43_getgroups            (SYS_BSD43 +  79)
+#define SYS_BSD43_setgroups            (SYS_BSD43 +  80)
+#define SYS_BSD43_getpgrp              (SYS_BSD43 +  81)
+#define SYS_BSD43_setpgrp              (SYS_BSD43 +  82)
+#define SYS_BSD43_setitimer            (SYS_BSD43 +  83)
+#define SYS_BSD43_wait3                        (SYS_BSD43 +  84)
+#define SYS_BSD43_swapon               (SYS_BSD43 +  85)
+#define SYS_BSD43_getitimer            (SYS_BSD43 +  86)
+#define SYS_BSD43_gethostname          (SYS_BSD43 +  87)
+#define SYS_BSD43_sethostname          (SYS_BSD43 +  88)
+#define SYS_BSD43_getdtablesize                (SYS_BSD43 +  89)
+#define SYS_BSD43_dup2                 (SYS_BSD43 +  90)
+#define SYS_BSD43_getdopt              (SYS_BSD43 +  91)
+#define SYS_BSD43_fcntl                        (SYS_BSD43 +  92)
+#define SYS_BSD43_select               (SYS_BSD43 +  93)
+#define SYS_BSD43_setdopt              (SYS_BSD43 +  94)
+#define SYS_BSD43_fsync                        (SYS_BSD43 +  95)
+#define SYS_BSD43_setpriority          (SYS_BSD43 +  96)
+#define SYS_BSD43_socket               (SYS_BSD43 +  97)
+#define SYS_BSD43_connect              (SYS_BSD43 +  98)
+#define SYS_BSD43_oldaccept            (SYS_BSD43 +  99)
+#define SYS_BSD43_getpriority          (SYS_BSD43 + 100)
+#define SYS_BSD43_send                 (SYS_BSD43 + 101)
+#define SYS_BSD43_recv                 (SYS_BSD43 + 102)
+#define SYS_BSD43_sigreturn            (SYS_BSD43 + 103)
+#define SYS_BSD43_bind                 (SYS_BSD43 + 104)
+#define SYS_BSD43_setsockopt           (SYS_BSD43 + 105)
+#define SYS_BSD43_listen               (SYS_BSD43 + 106)
+#define SYS_BSD43_vtimes               (SYS_BSD43 + 107)
+#define SYS_BSD43_sigvec               (SYS_BSD43 + 108)
+#define SYS_BSD43_sigblock             (SYS_BSD43 + 109)
+#define SYS_BSD43_sigsetmask           (SYS_BSD43 + 110)
+#define SYS_BSD43_sigpause             (SYS_BSD43 + 111)
+#define SYS_BSD43_sigstack             (SYS_BSD43 + 112)
+#define SYS_BSD43_oldrecvmsg           (SYS_BSD43 + 113)
+#define SYS_BSD43_oldsendmsg           (SYS_BSD43 + 114)
+#define SYS_BSD43_vtrace               (SYS_BSD43 + 115)
+#define SYS_BSD43_gettimeofday         (SYS_BSD43 + 116)
+#define SYS_BSD43_getrusage            (SYS_BSD43 + 117)
+#define SYS_BSD43_getsockopt           (SYS_BSD43 + 118)
+#define SYS_BSD43_reserved4            (SYS_BSD43 + 119)
+#define SYS_BSD43_readv                        (SYS_BSD43 + 120)
+#define SYS_BSD43_writev               (SYS_BSD43 + 121)
+#define SYS_BSD43_settimeofday         (SYS_BSD43 + 122)
+#define SYS_BSD43_fchown               (SYS_BSD43 + 123)
+#define SYS_BSD43_fchmod               (SYS_BSD43 + 124)
+#define SYS_BSD43_oldrecvfrom          (SYS_BSD43 + 125)
+#define SYS_BSD43_setreuid             (SYS_BSD43 + 126)
+#define SYS_BSD43_setregid             (SYS_BSD43 + 127)
+#define SYS_BSD43_rename               (SYS_BSD43 + 128)
+#define SYS_BSD43_truncate             (SYS_BSD43 + 129)
+#define SYS_BSD43_ftruncate            (SYS_BSD43 + 130)
+#define SYS_BSD43_flock                        (SYS_BSD43 + 131)
+#define SYS_BSD43_semsys               (SYS_BSD43 + 132)
+#define SYS_BSD43_sendto               (SYS_BSD43 + 133)
+#define SYS_BSD43_shutdown             (SYS_BSD43 + 134)
+#define SYS_BSD43_socketpair           (SYS_BSD43 + 135)
+#define SYS_BSD43_mkdir                        (SYS_BSD43 + 136)
+#define SYS_BSD43_rmdir                        (SYS_BSD43 + 137)
+#define SYS_BSD43_utimes               (SYS_BSD43 + 138)
+#define SYS_BSD43_sigcleanup           (SYS_BSD43 + 139)
+#define SYS_BSD43_adjtime              (SYS_BSD43 + 140)
+#define SYS_BSD43_oldgetpeername       (SYS_BSD43 + 141)
+#define SYS_BSD43_gethostid            (SYS_BSD43 + 142)
+#define SYS_BSD43_sethostid            (SYS_BSD43 + 143)
+#define SYS_BSD43_getrlimit            (SYS_BSD43 + 144)
+#define SYS_BSD43_setrlimit            (SYS_BSD43 + 145)
+#define SYS_BSD43_killpg               (SYS_BSD43 + 146)
+#define SYS_BSD43_shmsys               (SYS_BSD43 + 147)
+#define SYS_BSD43_quota                        (SYS_BSD43 + 148)
+#define SYS_BSD43_qquota               (SYS_BSD43 + 149)
+#define SYS_BSD43_oldgetsockname       (SYS_BSD43 + 150)
+#define SYS_BSD43_sysmips              (SYS_BSD43 + 151)
+#define SYS_BSD43_cacheflush           (SYS_BSD43 + 152)
+#define SYS_BSD43_cachectl             (SYS_BSD43 + 153)
+#define SYS_BSD43_debug                        (SYS_BSD43 + 154)
+#define SYS_BSD43_reserved5            (SYS_BSD43 + 155)
+#define SYS_BSD43_reserved6            (SYS_BSD43 + 156)
+#define SYS_BSD43_nfs_mount            (SYS_BSD43 + 157)
+#define SYS_BSD43_nfs_svc              (SYS_BSD43 + 158)
+#define SYS_BSD43_getdirentries                (SYS_BSD43 + 159)
+#define SYS_BSD43_statfs               (SYS_BSD43 + 160)
+#define SYS_BSD43_fstatfs              (SYS_BSD43 + 161)
+#define SYS_BSD43_unmount              (SYS_BSD43 + 162)
+#define SYS_BSD43_async_daemon         (SYS_BSD43 + 163)
+#define SYS_BSD43_nfs_getfh            (SYS_BSD43 + 164)
+#define SYS_BSD43_getdomainname                (SYS_BSD43 + 165)
+#define SYS_BSD43_setdomainname                (SYS_BSD43 + 166)
+#define SYS_BSD43_pcfs_mount           (SYS_BSD43 + 167)
+#define SYS_BSD43_quotactl             (SYS_BSD43 + 168)
+#define SYS_BSD43_oldexportfs          (SYS_BSD43 + 169)
+#define SYS_BSD43_smount               (SYS_BSD43 + 170)
+#define SYS_BSD43_mipshwconf           (SYS_BSD43 + 171)
+#define SYS_BSD43_exportfs             (SYS_BSD43 + 172)
+#define SYS_BSD43_nfsfh_open           (SYS_BSD43 + 173)
+#define SYS_BSD43_libattach            (SYS_BSD43 + 174)
+#define SYS_BSD43_libdetach            (SYS_BSD43 + 175)
+#define SYS_BSD43_accept               (SYS_BSD43 + 176)
+#define SYS_BSD43_reserved7            (SYS_BSD43 + 177)
+#define SYS_BSD43_reserved8            (SYS_BSD43 + 178)
+#define SYS_BSD43_recvmsg              (SYS_BSD43 + 179)
+#define SYS_BSD43_recvfrom             (SYS_BSD43 + 180)
+#define SYS_BSD43_sendmsg              (SYS_BSD43 + 181)
+#define SYS_BSD43_getpeername          (SYS_BSD43 + 182)
+#define SYS_BSD43_getsockname          (SYS_BSD43 + 183)
+#define SYS_BSD43_aread                        (SYS_BSD43 + 184)
+#define SYS_BSD43_awrite               (SYS_BSD43 + 185)
+#define SYS_BSD43_listio               (SYS_BSD43 + 186)
+#define SYS_BSD43_acancel              (SYS_BSD43 + 187)
+#define SYS_BSD43_astatus              (SYS_BSD43 + 188)
+#define SYS_BSD43_await                        (SYS_BSD43 + 189)
+#define SYS_BSD43_areadv               (SYS_BSD43 + 190)
+#define SYS_BSD43_awritev              (SYS_BSD43 + 191)
+
+/*
+ * POSIX syscalls are in the range from 3000 to 3999
+ */
+#define SYS_POSIX                      3000
+#define SYS_POSIX_syscall              (SYS_POSIX +   0)
+#define SYS_POSIX_exit                 (SYS_POSIX +   1)
+#define SYS_POSIX_fork                 (SYS_POSIX +   2)
+#define SYS_POSIX_read                 (SYS_POSIX +   3)
+#define SYS_POSIX_write                        (SYS_POSIX +   4)
+#define SYS_POSIX_open                 (SYS_POSIX +   5)
+#define SYS_POSIX_close                        (SYS_POSIX +   6)
+#define SYS_POSIX_wait                 (SYS_POSIX +   7)
+#define SYS_POSIX_creat                        (SYS_POSIX +   8)
+#define SYS_POSIX_link                 (SYS_POSIX +   9)
+#define SYS_POSIX_unlink               (SYS_POSIX +  10)
+#define SYS_POSIX_exec                 (SYS_POSIX +  11)
+#define SYS_POSIX_chdir                        (SYS_POSIX +  12)
+#define SYS_POSIX_gtime                        (SYS_POSIX +  13)
+#define SYS_POSIX_mknod                        (SYS_POSIX +  14)
+#define SYS_POSIX_chmod                        (SYS_POSIX +  15)
+#define SYS_POSIX_chown                        (SYS_POSIX +  16)
+#define SYS_POSIX_sbreak               (SYS_POSIX +  17)
+#define SYS_POSIX_stat                 (SYS_POSIX +  18)
+#define SYS_POSIX_lseek                        (SYS_POSIX +  19)
+#define SYS_POSIX_getpid               (SYS_POSIX +  20)
+#define SYS_POSIX_mount                        (SYS_POSIX +  21)
+#define SYS_POSIX_umount               (SYS_POSIX +  22)
+#define SYS_POSIX_setuid               (SYS_POSIX +  23)
+#define SYS_POSIX_getuid               (SYS_POSIX +  24)
+#define SYS_POSIX_stime                        (SYS_POSIX +  25)
+#define SYS_POSIX_ptrace               (SYS_POSIX +  26)
+#define SYS_POSIX_alarm                        (SYS_POSIX +  27)
+#define SYS_POSIX_fstat                        (SYS_POSIX +  28)
+#define SYS_POSIX_pause                        (SYS_POSIX +  29)
+#define SYS_POSIX_utime                        (SYS_POSIX +  30)
+#define SYS_POSIX_stty                 (SYS_POSIX +  31)
+#define SYS_POSIX_gtty                 (SYS_POSIX +  32)
+#define SYS_POSIX_access               (SYS_POSIX +  33)
+#define SYS_POSIX_nice                 (SYS_POSIX +  34)
+#define SYS_POSIX_statfs               (SYS_POSIX +  35)
+#define SYS_POSIX_sync                 (SYS_POSIX +  36)
+#define SYS_POSIX_kill                 (SYS_POSIX +  37)
+#define SYS_POSIX_fstatfs              (SYS_POSIX +  38)
+#define SYS_POSIX_getpgrp              (SYS_POSIX +  39)
+#define SYS_POSIX_syssgi               (SYS_POSIX +  40)
+#define SYS_POSIX_dup                  (SYS_POSIX +  41)
+#define SYS_POSIX_pipe                 (SYS_POSIX +  42)
+#define SYS_POSIX_times                        (SYS_POSIX +  43)
+#define SYS_POSIX_profil               (SYS_POSIX +  44)
+#define SYS_POSIX_lock                 (SYS_POSIX +  45)
+#define SYS_POSIX_setgid               (SYS_POSIX +  46)
+#define SYS_POSIX_getgid               (SYS_POSIX +  47)
+#define SYS_POSIX_sig                  (SYS_POSIX +  48)
+#define SYS_POSIX_msgsys               (SYS_POSIX +  49)
+#define SYS_POSIX_sysmips              (SYS_POSIX +  50)
+#define SYS_POSIX_sysacct              (SYS_POSIX +  51)
+#define SYS_POSIX_shmsys               (SYS_POSIX +  52)
+#define SYS_POSIX_semsys               (SYS_POSIX +  53)
+#define SYS_POSIX_ioctl                        (SYS_POSIX +  54)
+#define SYS_POSIX_uadmin               (SYS_POSIX +  55)
+#define SYS_POSIX_exch                 (SYS_POSIX +  56)
+#define SYS_POSIX_utssys               (SYS_POSIX +  57)
+#define SYS_POSIX_USG_reserved1                (SYS_POSIX +  58)
+#define SYS_POSIX_exece                        (SYS_POSIX +  59)
+#define SYS_POSIX_umask                        (SYS_POSIX +  60)
+#define SYS_POSIX_chroot               (SYS_POSIX +  61)
+#define SYS_POSIX_fcntl                        (SYS_POSIX +  62)
+#define SYS_POSIX_ulimit               (SYS_POSIX +  63)
+#define SYS_POSIX_SAFARI4_reserved1    (SYS_POSIX +  64)
+#define SYS_POSIX_SAFARI4_reserved2    (SYS_POSIX +  65)
+#define SYS_POSIX_SAFARI4_reserved3    (SYS_POSIX +  66)
+#define SYS_POSIX_SAFARI4_reserved4    (SYS_POSIX +  67)
+#define SYS_POSIX_SAFARI4_reserved5    (SYS_POSIX +  68)
+#define SYS_POSIX_SAFARI4_reserved6    (SYS_POSIX +  69)
+#define SYS_POSIX_advfs                        (SYS_POSIX +  70)
+#define SYS_POSIX_unadvfs              (SYS_POSIX +  71)
+#define SYS_POSIX_rmount               (SYS_POSIX +  72)
+#define SYS_POSIX_rumount              (SYS_POSIX +  73)
+#define SYS_POSIX_rfstart              (SYS_POSIX +  74)
+#define SYS_POSIX_reserved1            (SYS_POSIX +  75)
+#define SYS_POSIX_rdebug               (SYS_POSIX +  76)
+#define SYS_POSIX_rfstop               (SYS_POSIX +  77)
+#define SYS_POSIX_rfsys                        (SYS_POSIX +  78)
+#define SYS_POSIX_rmdir                        (SYS_POSIX +  79)
+#define SYS_POSIX_mkdir                        (SYS_POSIX +  80)
+#define SYS_POSIX_getdents             (SYS_POSIX +  81)
+#define SYS_POSIX_sginap               (SYS_POSIX +  82)
+#define SYS_POSIX_sgikopt              (SYS_POSIX +  83)
+#define SYS_POSIX_sysfs                        (SYS_POSIX +  84)
+#define SYS_POSIX_getmsg               (SYS_POSIX +  85)
+#define SYS_POSIX_putmsg               (SYS_POSIX +  86)
+#define SYS_POSIX_poll                 (SYS_POSIX +  87)
+#define SYS_POSIX_sigreturn            (SYS_POSIX +  88)
+#define SYS_POSIX_accept               (SYS_POSIX +  89)
+#define SYS_POSIX_bind                 (SYS_POSIX +  90)
+#define SYS_POSIX_connect              (SYS_POSIX +  91)
+#define SYS_POSIX_gethostid            (SYS_POSIX +  92)
+#define SYS_POSIX_getpeername          (SYS_POSIX +  93)
+#define SYS_POSIX_getsockname          (SYS_POSIX +  94)
+#define SYS_POSIX_getsockopt           (SYS_POSIX +  95)
+#define SYS_POSIX_listen               (SYS_POSIX +  96)
+#define SYS_POSIX_recv                 (SYS_POSIX +  97)
+#define SYS_POSIX_recvfrom             (SYS_POSIX +  98)
+#define SYS_POSIX_recvmsg              (SYS_POSIX +  99)
+#define SYS_POSIX_select               (SYS_POSIX + 100)
+#define SYS_POSIX_send                 (SYS_POSIX + 101)
+#define SYS_POSIX_sendmsg              (SYS_POSIX + 102)
+#define SYS_POSIX_sendto               (SYS_POSIX + 103)
+#define SYS_POSIX_sethostid            (SYS_POSIX + 104)
+#define SYS_POSIX_setsockopt           (SYS_POSIX + 105)
+#define SYS_POSIX_shutdown             (SYS_POSIX + 106)
+#define SYS_POSIX_socket               (SYS_POSIX + 107)
+#define SYS_POSIX_gethostname          (SYS_POSIX + 108)
+#define SYS_POSIX_sethostname          (SYS_POSIX + 109)
+#define SYS_POSIX_getdomainname                (SYS_POSIX + 110)
+#define SYS_POSIX_setdomainname                (SYS_POSIX + 111)
+#define SYS_POSIX_truncate             (SYS_POSIX + 112)
+#define SYS_POSIX_ftruncate            (SYS_POSIX + 113)
+#define SYS_POSIX_rename               (SYS_POSIX + 114)
+#define SYS_POSIX_symlink              (SYS_POSIX + 115)
+#define SYS_POSIX_readlink             (SYS_POSIX + 116)
+#define SYS_POSIX_lstat                        (SYS_POSIX + 117)
+#define SYS_POSIX_nfs_mount            (SYS_POSIX + 118)
+#define SYS_POSIX_nfs_svc              (SYS_POSIX + 119)
+#define SYS_POSIX_nfs_getfh            (SYS_POSIX + 120)
+#define SYS_POSIX_async_daemon         (SYS_POSIX + 121)
+#define SYS_POSIX_exportfs             (SYS_POSIX + 122)
+#define SYS_POSIX_SGI_setregid         (SYS_POSIX + 123)
+#define SYS_POSIX_SGI_setreuid         (SYS_POSIX + 124)
+#define SYS_POSIX_getitimer            (SYS_POSIX + 125)
+#define SYS_POSIX_setitimer            (SYS_POSIX + 126)
+#define SYS_POSIX_adjtime              (SYS_POSIX + 127)
+#define SYS_POSIX_SGI_bsdgettime       (SYS_POSIX + 128)
+#define SYS_POSIX_SGI_sproc            (SYS_POSIX + 129)
+#define SYS_POSIX_SGI_prctl            (SYS_POSIX + 130)
+#define SYS_POSIX_SGI_blkproc          (SYS_POSIX + 131)
+#define SYS_POSIX_SGI_reserved1                (SYS_POSIX + 132)
+#define SYS_POSIX_SGI_sgigsc           (SYS_POSIX + 133)
+#define SYS_POSIX_SGI_mmap             (SYS_POSIX + 134)
+#define SYS_POSIX_SGI_munmap           (SYS_POSIX + 135)
+#define SYS_POSIX_SGI_mprotect         (SYS_POSIX + 136)
+#define SYS_POSIX_SGI_msync            (SYS_POSIX + 137)
+#define SYS_POSIX_SGI_madvise          (SYS_POSIX + 138)
+#define SYS_POSIX_SGI_mpin             (SYS_POSIX + 139)
+#define SYS_POSIX_SGI_getpagesize      (SYS_POSIX + 140)
+#define SYS_POSIX_SGI_libattach                (SYS_POSIX + 141)
+#define SYS_POSIX_SGI_libdetach                (SYS_POSIX + 142)
+#define SYS_POSIX_SGI_getpgrp          (SYS_POSIX + 143)
+#define SYS_POSIX_SGI_setpgrp          (SYS_POSIX + 144)
+#define SYS_POSIX_SGI_reserved2                (SYS_POSIX + 145)
+#define SYS_POSIX_SGI_reserved3                (SYS_POSIX + 146)
+#define SYS_POSIX_SGI_reserved4                (SYS_POSIX + 147)
+#define SYS_POSIX_SGI_reserved5                (SYS_POSIX + 148)
+#define SYS_POSIX_SGI_reserved6                (SYS_POSIX + 149)
+#define SYS_POSIX_cacheflush           (SYS_POSIX + 150)
+#define SYS_POSIX_cachectl             (SYS_POSIX + 151)
+#define SYS_POSIX_fchown               (SYS_POSIX + 152)
+#define SYS_POSIX_fchmod               (SYS_POSIX + 153)
+#define SYS_POSIX_wait3                        (SYS_POSIX + 154)
+#define SYS_POSIX_mmap                 (SYS_POSIX + 155)
+#define SYS_POSIX_munmap               (SYS_POSIX + 156)
+#define SYS_POSIX_madvise              (SYS_POSIX + 157)
+#define SYS_POSIX_BSD_getpagesize      (SYS_POSIX + 158)
+#define SYS_POSIX_setreuid             (SYS_POSIX + 159)
+#define SYS_POSIX_setregid             (SYS_POSIX + 160)
+#define SYS_POSIX_setpgid              (SYS_POSIX + 161)
+#define SYS_POSIX_getgroups            (SYS_POSIX + 162)
+#define SYS_POSIX_setgroups            (SYS_POSIX + 163)
+#define SYS_POSIX_gettimeofday         (SYS_POSIX + 164)
+#define SYS_POSIX_getrusage            (SYS_POSIX + 165)
+#define SYS_POSIX_getrlimit            (SYS_POSIX + 166)
+#define SYS_POSIX_setrlimit            (SYS_POSIX + 167)
+#define SYS_POSIX_waitpid              (SYS_POSIX + 168)
+#define SYS_POSIX_dup2                 (SYS_POSIX + 169)
+#define SYS_POSIX_reserved2            (SYS_POSIX + 170)
+#define SYS_POSIX_reserved3            (SYS_POSIX + 171)
+#define SYS_POSIX_reserved4            (SYS_POSIX + 172)
+#define SYS_POSIX_reserved5            (SYS_POSIX + 173)
+#define SYS_POSIX_reserved6            (SYS_POSIX + 174)
+#define SYS_POSIX_reserved7            (SYS_POSIX + 175)
+#define SYS_POSIX_reserved8            (SYS_POSIX + 176)
+#define SYS_POSIX_reserved9            (SYS_POSIX + 177)
+#define SYS_POSIX_reserved10           (SYS_POSIX + 178)
+#define SYS_POSIX_reserved11           (SYS_POSIX + 179)
+#define SYS_POSIX_reserved12           (SYS_POSIX + 180)
+#define SYS_POSIX_reserved13           (SYS_POSIX + 181)
+#define SYS_POSIX_reserved14           (SYS_POSIX + 182)
+#define SYS_POSIX_reserved15           (SYS_POSIX + 183)
+#define SYS_POSIX_reserved16           (SYS_POSIX + 184)
+#define SYS_POSIX_reserved17           (SYS_POSIX + 185)
+#define SYS_POSIX_reserved18           (SYS_POSIX + 186)
+#define SYS_POSIX_reserved19           (SYS_POSIX + 187)
+#define SYS_POSIX_reserved20           (SYS_POSIX + 188)
+#define SYS_POSIX_reserved21           (SYS_POSIX + 189)
+#define SYS_POSIX_reserved22           (SYS_POSIX + 190)
+#define SYS_POSIX_reserved23           (SYS_POSIX + 191)
+#define SYS_POSIX_reserved24           (SYS_POSIX + 192)
+#define SYS_POSIX_reserved25           (SYS_POSIX + 193)
+#define SYS_POSIX_reserved26           (SYS_POSIX + 194)
+#define SYS_POSIX_reserved27           (SYS_POSIX + 195)
+#define SYS_POSIX_reserved28           (SYS_POSIX + 196)
+#define SYS_POSIX_reserved29           (SYS_POSIX + 197)
+#define SYS_POSIX_reserved30           (SYS_POSIX + 198)
+#define SYS_POSIX_reserved31           (SYS_POSIX + 199)
+#define SYS_POSIX_reserved32           (SYS_POSIX + 200)
+#define SYS_POSIX_reserved33           (SYS_POSIX + 201)
+#define SYS_POSIX_reserved34           (SYS_POSIX + 202)
+#define SYS_POSIX_reserved35           (SYS_POSIX + 203)
+#define SYS_POSIX_reserved36           (SYS_POSIX + 204)
+#define SYS_POSIX_reserved37           (SYS_POSIX + 205)
+#define SYS_POSIX_reserved38           (SYS_POSIX + 206)
+#define SYS_POSIX_reserved39           (SYS_POSIX + 207)
+#define SYS_POSIX_reserved40           (SYS_POSIX + 208)
+#define SYS_POSIX_reserved41           (SYS_POSIX + 209)
+#define SYS_POSIX_reserved42           (SYS_POSIX + 210)
+#define SYS_POSIX_reserved43           (SYS_POSIX + 211)
+#define SYS_POSIX_reserved44           (SYS_POSIX + 212)
+#define SYS_POSIX_reserved45           (SYS_POSIX + 213)
+#define SYS_POSIX_reserved46           (SYS_POSIX + 214)
+#define SYS_POSIX_reserved47           (SYS_POSIX + 215)
+#define SYS_POSIX_reserved48           (SYS_POSIX + 216)
+#define SYS_POSIX_reserved49           (SYS_POSIX + 217)
+#define SYS_POSIX_reserved50           (SYS_POSIX + 218)
+#define SYS_POSIX_reserved51           (SYS_POSIX + 219)
+#define SYS_POSIX_reserved52           (SYS_POSIX + 220)
+#define SYS_POSIX_reserved53           (SYS_POSIX + 221)
+#define SYS_POSIX_reserved54           (SYS_POSIX + 222)
+#define SYS_POSIX_reserved55           (SYS_POSIX + 223)
+#define SYS_POSIX_reserved56           (SYS_POSIX + 224)
+#define SYS_POSIX_reserved57           (SYS_POSIX + 225)
+#define SYS_POSIX_reserved58           (SYS_POSIX + 226)
+#define SYS_POSIX_reserved59           (SYS_POSIX + 227)
+#define SYS_POSIX_reserved60           (SYS_POSIX + 228)
+#define SYS_POSIX_reserved61           (SYS_POSIX + 229)
+#define SYS_POSIX_reserved62           (SYS_POSIX + 230)
+#define SYS_POSIX_reserved63           (SYS_POSIX + 231)
+#define SYS_POSIX_reserved64           (SYS_POSIX + 232)
+#define SYS_POSIX_reserved65           (SYS_POSIX + 233)
+#define SYS_POSIX_reserved66           (SYS_POSIX + 234)
+#define SYS_POSIX_reserved67           (SYS_POSIX + 235)
+#define SYS_POSIX_reserved68           (SYS_POSIX + 236)
+#define SYS_POSIX_reserved69           (SYS_POSIX + 237)
+#define SYS_POSIX_reserved70           (SYS_POSIX + 238)
+#define SYS_POSIX_reserved71           (SYS_POSIX + 239)
+#define SYS_POSIX_reserved72           (SYS_POSIX + 240)
+#define SYS_POSIX_reserved73           (SYS_POSIX + 241)
+#define SYS_POSIX_reserved74           (SYS_POSIX + 242)
+#define SYS_POSIX_reserved75           (SYS_POSIX + 243)
+#define SYS_POSIX_reserved76           (SYS_POSIX + 244)
+#define SYS_POSIX_reserved77           (SYS_POSIX + 245)
+#define SYS_POSIX_reserved78           (SYS_POSIX + 246)
+#define SYS_POSIX_reserved79           (SYS_POSIX + 247)
+#define SYS_POSIX_reserved80           (SYS_POSIX + 248)
+#define SYS_POSIX_reserved81           (SYS_POSIX + 249)
+#define SYS_POSIX_reserved82           (SYS_POSIX + 250)
+#define SYS_POSIX_reserved83           (SYS_POSIX + 251)
+#define SYS_POSIX_reserved84           (SYS_POSIX + 252)
+#define SYS_POSIX_reserved85           (SYS_POSIX + 253)
+#define SYS_POSIX_reserved86           (SYS_POSIX + 254)
+#define SYS_POSIX_reserved87           (SYS_POSIX + 255)
+#define SYS_POSIX_reserved88           (SYS_POSIX + 256)
+#define SYS_POSIX_reserved89           (SYS_POSIX + 257)
+#define SYS_POSIX_reserved90           (SYS_POSIX + 258)
+#define SYS_POSIX_reserved91           (SYS_POSIX + 259)
+#define SYS_POSIX_netboot              (SYS_POSIX + 260)
+#define SYS_POSIX_netunboot            (SYS_POSIX + 261)
+#define SYS_POSIX_rdump                        (SYS_POSIX + 262)
+#define SYS_POSIX_setsid               (SYS_POSIX + 263)
+#define SYS_POSIX_getmaxsig            (SYS_POSIX + 264)
+#define SYS_POSIX_sigpending           (SYS_POSIX + 265)
+#define SYS_POSIX_sigprocmask          (SYS_POSIX + 266)
+#define SYS_POSIX_sigsuspend           (SYS_POSIX + 267)
+#define SYS_POSIX_sigaction            (SYS_POSIX + 268)
+#define SYS_POSIX_MIPS_reserved1       (SYS_POSIX + 269)
+#define SYS_POSIX_MIPS_reserved2       (SYS_POSIX + 270)
+#define SYS_POSIX_MIPS_reserved3       (SYS_POSIX + 271)
+#define SYS_POSIX_MIPS_reserved4       (SYS_POSIX + 272)
+#define SYS_POSIX_MIPS_reserved5       (SYS_POSIX + 273)
+#define SYS_POSIX_MIPS_reserved6       (SYS_POSIX + 274)
+#define SYS_POSIX_MIPS_reserved7       (SYS_POSIX + 275)
+#define SYS_POSIX_MIPS_reserved8       (SYS_POSIX + 276)
+#define SYS_POSIX_MIPS_reserved9       (SYS_POSIX + 277)
+#define SYS_POSIX_MIPS_reserved10      (SYS_POSIX + 278)
+#define SYS_POSIX_MIPS_reserved11      (SYS_POSIX + 279)
+#define SYS_POSIX_TANDEM_reserved1     (SYS_POSIX + 280)
+#define SYS_POSIX_TANDEM_reserved2     (SYS_POSIX + 281)
+#define SYS_POSIX_TANDEM_reserved3     (SYS_POSIX + 282)
+#define SYS_POSIX_TANDEM_reserved4     (SYS_POSIX + 283)
+#define SYS_POSIX_TANDEM_reserved5     (SYS_POSIX + 284)
+#define SYS_POSIX_TANDEM_reserved6     (SYS_POSIX + 285)
+#define SYS_POSIX_TANDEM_reserved7     (SYS_POSIX + 286)
+#define SYS_POSIX_TANDEM_reserved8     (SYS_POSIX + 287)
+#define SYS_POSIX_TANDEM_reserved9     (SYS_POSIX + 288)
+#define SYS_POSIX_TANDEM_reserved10    (SYS_POSIX + 289)
+#define SYS_POSIX_TANDEM_reserved11    (SYS_POSIX + 290)
+#define SYS_POSIX_TANDEM_reserved12    (SYS_POSIX + 291)
+#define SYS_POSIX_TANDEM_reserved13    (SYS_POSIX + 292)
+#define SYS_POSIX_TANDEM_reserved14    (SYS_POSIX + 293)
+#define SYS_POSIX_TANDEM_reserved15    (SYS_POSIX + 294)
+#define SYS_POSIX_TANDEM_reserved16    (SYS_POSIX + 295)
+#define SYS_POSIX_TANDEM_reserved17    (SYS_POSIX + 296)
+#define SYS_POSIX_TANDEM_reserved18    (SYS_POSIX + 297)
+#define SYS_POSIX_TANDEM_reserved19    (SYS_POSIX + 298)
+#define SYS_POSIX_TANDEM_reserved20    (SYS_POSIX + 299)
+#define SYS_POSIX_SGI_reserved7                (SYS_POSIX + 300)
+#define SYS_POSIX_SGI_reserved8                (SYS_POSIX + 301)
+#define SYS_POSIX_SGI_reserved9                (SYS_POSIX + 302)
+#define SYS_POSIX_SGI_reserved10       (SYS_POSIX + 303)
+#define SYS_POSIX_SGI_reserved11       (SYS_POSIX + 304)
+#define SYS_POSIX_SGI_reserved12       (SYS_POSIX + 305)
+#define SYS_POSIX_SGI_reserved13       (SYS_POSIX + 306)
+#define SYS_POSIX_SGI_reserved14       (SYS_POSIX + 307)
+#define SYS_POSIX_SGI_reserved15       (SYS_POSIX + 308)
+#define SYS_POSIX_SGI_reserved16       (SYS_POSIX + 309)
+#define SYS_POSIX_SGI_reserved17       (SYS_POSIX + 310)
+#define SYS_POSIX_SGI_reserved18       (SYS_POSIX + 311)
+#define SYS_POSIX_SGI_reserved19       (SYS_POSIX + 312)
+#define SYS_POSIX_SGI_reserved20       (SYS_POSIX + 313)
+#define SYS_POSIX_SGI_reserved21       (SYS_POSIX + 314)
+#define SYS_POSIX_SGI_reserved22       (SYS_POSIX + 315)
+#define SYS_POSIX_SGI_reserved23       (SYS_POSIX + 316)
+#define SYS_POSIX_SGI_reserved24       (SYS_POSIX + 317)
+#define SYS_POSIX_SGI_reserved25       (SYS_POSIX + 318)
+#define SYS_POSIX_SGI_reserved26       (SYS_POSIX + 319)
+
+/*
+ * Linux syscalls are in the range from 4000 to 4999
+ * Hopefully these syscall numbers are unused ...  If not everyone using
+ * statically linked binaries is pretty <censored - the government>.  You've
+ * been warned.
+ */
+#define SYS_Linux                      4000
+#define SYS_syscall                    (SYS_Linux +   0)
+#define SYS_exit                       (SYS_Linux +   1)
+#define SYS_fork                       (SYS_Linux +   2)
+#define SYS_read                       (SYS_Linux +   3)
+#define SYS_write                      (SYS_Linux +   4)
+#define SYS_open                       (SYS_Linux +   5)
+#define SYS_close                      (SYS_Linux +   6)
+#define SYS_waitpid                    (SYS_Linux +   7)
+#define SYS_creat                      (SYS_Linux +   8)
+#define SYS_link                       (SYS_Linux +   9)
+#define SYS_unlink                     (SYS_Linux +  10)
+#define SYS_execve                     (SYS_Linux +  11)
+#define SYS_chdir                      (SYS_Linux +  12)
+#define SYS_time                       (SYS_Linux +  13)
+#define SYS_mknod                      (SYS_Linux +  14)
+#define SYS_chmod                      (SYS_Linux +  15)
+#define SYS_chown                      (SYS_Linux +  16)
+#define SYS_break                      (SYS_Linux +  17)
+#define SYS_oldstat                    (SYS_Linux +  18)
+#define SYS_lseek                      (SYS_Linux +  19)
+#define SYS_getpid                     (SYS_Linux +  20)
+#define SYS_mount                      (SYS_Linux +  21)
+#define SYS_umount                     (SYS_Linux +  22)
+#define SYS_setuid                     (SYS_Linux +  23)
+#define SYS_getuid                     (SYS_Linux +  24)
+#define SYS_stime                      (SYS_Linux +  25)
+#define SYS_ptrace                     (SYS_Linux +  26)
+#define SYS_alarm                      (SYS_Linux +  27)
+#define SYS_oldfstat                   (SYS_Linux +  28)
+#define SYS_pause                      (SYS_Linux +  29)
+#define SYS_utime                      (SYS_Linux +  30)
+#define SYS_stty                       (SYS_Linux +  31)
+#define SYS_gtty                       (SYS_Linux +  32)
+#define SYS_access                     (SYS_Linux +  33)
+#define SYS_nice                       (SYS_Linux +  34)
+#define SYS_ftime                      (SYS_Linux +  35)
+#define SYS_sync                       (SYS_Linux +  36)
+#define SYS_kill                       (SYS_Linux +  37)
+#define SYS_rename                     (SYS_Linux +  38)
+#define SYS_mkdir                      (SYS_Linux +  39)
+#define SYS_rmdir                      (SYS_Linux +  40)
+#define SYS_dup                                (SYS_Linux +  41)
+#define SYS_pipe                       (SYS_Linux +  42)
+#define SYS_times                      (SYS_Linux +  43)
+#define SYS_prof                       (SYS_Linux +  44)
+#define SYS_brk                                (SYS_Linux +  45)
+#define SYS_setgid                     (SYS_Linux +  46)
+#define SYS_getgid                     (SYS_Linux +  47)
+#define SYS_signal                     (SYS_Linux +  48)
+#define SYS_geteuid                    (SYS_Linux +  49)
+#define SYS_getegid                    (SYS_Linux +  50)
+#define SYS_acct                       (SYS_Linux +  51)
+#define SYS_phys                       (SYS_Linux +  52)
+#define SYS_lock                       (SYS_Linux +  53)
+#define SYS_ioctl                      (SYS_Linux +  54)
+#define SYS_fcntl                      (SYS_Linux +  55)
+#define SYS_mpx                                (SYS_Linux +  56)
+#define SYS_setpgid                    (SYS_Linux +  57)
+#define SYS_ulimit                     (SYS_Linux +  58)
+#define SYS_oldolduname                        (SYS_Linux +  59)
+#define SYS_umask                      (SYS_Linux +  60)
+#define SYS_chroot                     (SYS_Linux +  61)
+#define SYS_ustat                      (SYS_Linux +  62)
+#define SYS_dup2                       (SYS_Linux +  63)
+#define SYS_getppid                    (SYS_Linux +  64)
+#define SYS_getpgrp                    (SYS_Linux +  65)
+#define SYS_setsid                     (SYS_Linux +  66)
+#define SYS_sigaction                  (SYS_Linux +  67)
+#define SYS_sgetmask                   (SYS_Linux +  68)
+#define SYS_ssetmask                   (SYS_Linux +  69)
+#define SYS_setreuid                   (SYS_Linux +  70)
+#define SYS_setregid                   (SYS_Linux +  71)
+#define SYS_sigsuspend                 (SYS_Linux +  72)
+#define SYS_sigpending                 (SYS_Linux +  73)
+#define SYS_sethostname                        (SYS_Linux +  74)
+#define SYS_setrlimit                  (SYS_Linux +  75)
+#define SYS_getrlimit                  (SYS_Linux +  76)
+#define SYS_getrusage                  (SYS_Linux +  77)
+#define SYS_gettimeofday               (SYS_Linux +  78)
+#define SYS_settimeofday               (SYS_Linux +  79)
+#define SYS_getgroups                  (SYS_Linux +  80)
+#define SYS_setgroups                  (SYS_Linux +  81)
+#define SYS_reserved82                 (SYS_Linux +  82)
+#define SYS_symlink                    (SYS_Linux +  83)
+#define SYS_oldlstat                   (SYS_Linux +  84)
+#define SYS_readlink                   (SYS_Linux +  85)
+#define SYS_uselib                     (SYS_Linux +  86)
+#define SYS_swapon                     (SYS_Linux +  87)
+#define SYS_reboot                     (SYS_Linux +  88)
+#define SYS_readdir                    (SYS_Linux +  89)
+#define SYS_mmap                       (SYS_Linux +  90)
+#define SYS_munmap                     (SYS_Linux +  91)
+#define SYS_truncate                   (SYS_Linux +  92)
+#define SYS_ftruncate                  (SYS_Linux +  93)
+#define SYS_fchmod                     (SYS_Linux +  94)
+#define SYS_fchown                     (SYS_Linux +  95)
+#define SYS_getpriority                        (SYS_Linux +  96)
+#define SYS_setpriority                        (SYS_Linux +  97)
+#define SYS_profil                     (SYS_Linux +  98)
+#define SYS_statfs                     (SYS_Linux +  99)
+#define SYS_fstatfs                    (SYS_Linux + 100)
+#define SYS_ioperm                     (SYS_Linux + 101)
+#define SYS_socketcall                 (SYS_Linux + 102)
+#define SYS_syslog                     (SYS_Linux + 103)
+#define SYS_setitimer                  (SYS_Linux + 104)
+#define SYS_getitimer                  (SYS_Linux + 105)
+#define SYS_stat                       (SYS_Linux + 106)
+#define SYS_lstat                      (SYS_Linux + 107)
+#define SYS_fstat                      (SYS_Linux + 108)
+#define SYS_olduname                   (SYS_Linux + 109)
+#define SYS_iopl                       (SYS_Linux + 110)
+#define SYS_vhangup                    (SYS_Linux + 111)
+#define SYS_idle                       (SYS_Linux + 112)
+#define SYS_vm86                       (SYS_Linux + 113)
+#define SYS_wait4                      (SYS_Linux + 114)
+#define SYS_swapoff                    (SYS_Linux + 115)
+#define SYS_sysinfo                    (SYS_Linux + 116)
+#define SYS_ipc                                (SYS_Linux + 117)
+#define SYS_fsync                      (SYS_Linux + 118)
+#define SYS_sigreturn                  (SYS_Linux + 119)
+#define SYS_clone                      (SYS_Linux + 120)
+#define SYS_setdomainname              (SYS_Linux + 121)
+#define SYS_uname                      (SYS_Linux + 122)
+#define SYS_modify_ldt                 (SYS_Linux + 123)
+#define SYS_adjtimex                   (SYS_Linux + 124)
+#define SYS_mprotect                   (SYS_Linux + 125)
+#define SYS_sigprocmask                        (SYS_Linux + 126)
+#define SYS_create_module              (SYS_Linux + 127)
+#define SYS_init_module                        (SYS_Linux + 128)
+#define SYS_delete_module              (SYS_Linux + 129)
+#define SYS_get_kernel_syms            (SYS_Linux + 130)
+#define SYS_quotactl                   (SYS_Linux + 131)
+#define SYS_getpgid                    (SYS_Linux + 132)
+#define SYS_fchdir                     (SYS_Linux + 133)
+#define SYS_bdflush                    (SYS_Linux + 134)
+#define SYS_sysfs                      (SYS_Linux + 135)
+#define SYS_personality                        (SYS_Linux + 136)
+#define SYS_afs_syscall                        (SYS_Linux + 137) /* Syscall for Andrew File System */
+#define SYS_setfsuid                   (SYS_Linux + 138)
+#define SYS_setfsgid                   (SYS_Linux + 139)
+#define SYS__llseek                    (SYS_Linux + 140)
+#define SYS_getdents                   (SYS_Linux + 141)
+#define SYS__newselect                 (SYS_Linux + 142)
+#define SYS_syscall_flock              (SYS_Linux + 143)
+#define SYS_msync                      (SYS_Linux + 144)
+#define SYS_readv                      (SYS_Linux + 145)
+#define SYS_writev                     (SYS_Linux + 146)
+#define SYS_cacheflush                 (SYS_Linux + 147)
+#define SYS_cachectl                   (SYS_Linux + 148)
+#define SYS_sysmips                    (SYS_Linux + 149)
+#define SYS_setup                      (SYS_Linux + 150)       /* used only by init, to get system going */
+#define SYS_getsid                     (SYS_Linux + 151)
+#define SYS_fdatasync                  (SYS_Linux + 152)
+#define SYS__sysctl                    (SYS_Linux + 153)
+#define SYS_mlock                      (SYS_Linux + 154)
+#define SYS_munlock                    (SYS_Linux + 155)
+#define SYS_mlockall                   (SYS_Linux + 156)
+#define SYS_munlockall                 (SYS_Linux + 157)
+#define SYS_sched_setparam             (SYS_Linux + 158)
+#define SYS_sched_getparam             (SYS_Linux + 159)
+#define SYS_sched_setscheduler         (SYS_Linux + 160)
+#define SYS_sched_getscheduler         (SYS_Linux + 161)
+#define SYS_sched_yield                        (SYS_Linux + 162)
+#define SYS_sched_get_priority_max     (SYS_Linux + 163)
+#define SYS_sched_get_priority_min     (SYS_Linux + 164)
+#define SYS_sched_rr_get_interval      (SYS_Linux + 165)
+#define SYS_nanosleep                  (SYS_Linux + 166)
+#define SYS_mremap                     (SYS_Linux + 167)
+#define SYS_accept                     (SYS_Linux + 168)
+#define SYS_bind                       (SYS_Linux + 169)
+#define SYS_connect                    (SYS_Linux + 170)
+#define SYS_getpeername                        (SYS_Linux + 171)
+#define SYS_getsockname                        (SYS_Linux + 172)
+#define SYS_getsockopt                 (SYS_Linux + 173)
+#define SYS_listen                     (SYS_Linux + 174)
+#define SYS_recv                       (SYS_Linux + 175)
+#define SYS_recvfrom                   (SYS_Linux + 176)
+#define SYS_recvmsg                    (SYS_Linux + 177)
+#define SYS_send                       (SYS_Linux + 178)
+#define SYS_sendmsg                    (SYS_Linux + 179)
+#define SYS_sendto                     (SYS_Linux + 180)
+#define SYS_setsockopt                 (SYS_Linux + 181)
+#define SYS_shutdown                   (SYS_Linux + 182)
+#define SYS_socket                     (SYS_Linux + 183)
+#define SYS_socketpair                 (SYS_Linux + 184)
+#define SYS_setresuid                  (SYS_Linux + 185)
+#define SYS_getresuid                  (SYS_Linux + 186)
+#define SYS_query_module               (SYS_Linux + 187)
+#define SYS_poll                       (SYS_Linux + 188)
+#define SYS_nfsservctl                 (SYS_Linux + 189)
+
+#endif /* sys/syscall.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/sysmips.h b/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
new file mode 100644 (file)
index 0000000..cbb7eba
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 1991, 92, 94, 95, 96, 97 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _SYS_SYSMIPS_H
+#define _SYS_SYSMIPS_H 1
+
+#include <features.h>
+
+/*
+ * Get the kernel definition for sysmips(2)
+ */
+#include <asm/sysmips.h>
+
+__BEGIN_DECLS
+
+extern int sysmips __P ((__const int cmd, __const int arg1,
+                        __const int arg2, __const int arg3));
+
+__END_DECLS
+
+#endif /* sys/sysmips.h */
diff --git a/sysdeps/unix/sysv/linux/mips/syscalls.list b/sysdeps/unix/sysv/linux/mips/syscalls.list
new file mode 100644 (file)
index 0000000..6dd9cd8
--- /dev/null
@@ -0,0 +1,46 @@
+# File name    Caller  Syscall name    # args  Strong name     Weak names
+
+#
+# Calls for compatibility with existing MIPS OS implementations and
+# compilers.
+#
+cachectl       -       cachectl        3       __cachectl      cachectl
+cacheflush     -       cacheflush      3       _flush_cache    cacheflush
+sysmips                -       sysmips         4       __sysmips       sysmips
+
+# override select.S in parent directory:
+select         -       select          5       __select        select
+sigsuspend     -       sigsuspend      1       __sigsuspend    sigsuspend
+
+#
+# Socket functions; Linux/MIPS doesn't use the socketcall(2) wrapper;
+# it's provided for compatibility, though.
+#
+accept         -       accept          3       __accept        accept
+bind           -       bind            3       __bind          bind
+connect                -       connect         3       __connect       connect
+getpeername    -       getpeername     3       __getpeername   getpeername
+getsockname    -       getsockname     3       __getsockname   getsockname
+getsockopt     -       getsockopt      5       __getsockopt    getsockopt
+listen         -       listen          2       __listen        listen
+recv           -       recv            4       __recv          recv
+recvfrom       -       recvfrom        6       __recvfrom      recvfrom
+recvmsg                -       recvmsg         3       __recvmsg       recvmsg
+send           -       send            4       __send          send
+sendmsg                -       sendmsg         3       __sendmsg       sendmsg
+sendto         -       sendto          6       __sendto        sendto
+setsockopt     -       setsockopt      5       __setsockopt    setsockopt
+shutdown       -       shutdown        2       __shutdown      shutdown
+socket         -       socket          3       __socket        socket
+socketpair     -       socketpair      4       __socketpair    socketpair
+
+#
+# There are defined locally because the caller is also defined in this dir.
+#
+s_llseek       llseek  _llseek         5       __sys_llseek
+s_sigaction    sigaction sigaction     3       __syscall_sigaction
+s_ustat                ustat   ustat           2       __syscall_ustat
+sys_mknod      xmknod  mknod           3       __syscall_mknod
+sys_fstat      fxstat  fstat           2       __syscall_fstat
+sys_lstat      lxstat  lstat           2       __syscall_lstat
+sys_stat       xstat   stat            2       __syscall_stat
diff --git a/sysdeps/unix/sysv/linux/mips/ustat.c b/sysdeps/unix/sysv/linux/mips/ustat.c
new file mode 100644 (file)
index 0000000..447ab29
--- /dev/null
@@ -0,0 +1,35 @@
+/* Copyright (C) 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <sys/ustat.h>
+#include <sys/sysmacros.h>
+
+
+extern int __syscall_ustat (unsigned long dev, struct ustat *ubuf);
+
+int
+ustat (dev_t dev, struct ustat *ubuf)
+{
+  unsigned long k_dev;
+
+  /* We must convert the value to dev_t type used by the kernel.  */
+  k_dev = ((major (dev) & 0xff) << 8) | (minor (dev) & 0xff);
+
+  return __syscall_ustat (k_dev, ubuf);
+}
diff --git a/sysdeps/unix/sysv/linux/mips/xmknod.c b/sysdeps/unix/sysv/linux/mips/xmknod.c
new file mode 100644 (file)
index 0000000..c7ff64f
--- /dev/null
@@ -0,0 +1,47 @@
+/* xmknod call using old-style Unix mknod system call.
+   Copyright (C) 1991, 1993, 1995, 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+
+extern int __syscall_mknod (const char *, unsigned long, unsigned int);
+
+/* Create a device file named PATH, with permission and special bits MODE
+   and device number DEV (which can be constructed from major and minor
+   device numbers with the `makedev' macro above).  */
+int
+__xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
+{
+  unsigned long k_dev;
+
+  if (vers != _MKNOD_VER)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  /* We must convert the value to dev_t type used by the kernel.  */
+  k_dev = ((major (*dev) & 0xff) << 8) | (minor (*dev) & 0xff);
+
+  return __syscall_mknod (path, mode, k_dev);
+}
+
+weak_alias (__xmknod, _xmknod)
diff --git a/sysdeps/unix/sysv/linux/mips/xstat.c b/sysdeps/unix/sysv/linux/mips/xstat.c
new file mode 100644 (file)
index 0000000..9f7eb58
--- /dev/null
@@ -0,0 +1,80 @@
+/* xstat using old-style Unix stat system call.
+   Copyright (C) 1991, 1995, 1996, 1997 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+
+#include <kernel_stat.h>
+
+extern int __syscall_stat (const char *, struct kernel_stat *);
+
+/* Get information about the file NAME in BUF.  */
+int
+__xstat (int vers, const char *name, struct stat *buf)
+{
+  struct kernel_stat kbuf;
+  int result;
+
+  switch (vers)
+    {
+    case _STAT_VER_LINUX_OLD:
+      /* Nothing to do.  The struct is in the form the kernel expects
+        it to be.  */
+      result = __syscall_stat (name, (struct kernel_stat *) buf);
+      break;
+
+    case _STAT_VER_LINUX:
+      /* Do the system call.  */
+      result = __syscall_stat (name, &kbuf);
+
+      /* Convert to current kernel version of `struct stat'.  */
+      buf->st_dev = kbuf.st_dev;
+      buf->st_pad1[0]  = 0; buf->st_pad1[1]  = 0; buf->st_pad1[2]  = 0;
+      buf->st_ino = kbuf.st_ino;
+      buf->st_mode = kbuf.st_mode;
+      buf->st_nlink = kbuf.st_nlink;
+      buf->st_uid = kbuf.st_uid;
+      buf->st_gid = kbuf.st_gid;
+      buf->st_rdev = kbuf.st_rdev;
+      buf->st_pad2[0] = 0; buf->st_pad2[1] = 0;
+      buf->st_pad3 = 0;
+      buf->st_size = kbuf.st_size;
+      buf->st_blksize = kbuf.st_blksize;
+      buf->st_blocks = kbuf.st_blocks;
+
+      buf->st_atime = kbuf.st_atime; buf->__reserved0 = 0;
+      buf->st_mtime = kbuf.st_mtime; buf->__reserved1 = 0;
+      buf->st_ctime = kbuf.st_ctime; buf->__reserved2 = 0;
+
+      buf->st_pad4[0] = 0; buf->st_pad4[1] = 0;
+      buf->st_pad4[2] = 0; buf->st_pad4[3] = 0;
+      buf->st_pad4[4] = 0; buf->st_pad4[5] = 0;
+      buf->st_pad4[6] = 0; buf->st_pad4[7] = 0;
+      break;
+
+    default:
+      __set_errno (EINVAL);
+      result = -1;
+      break;
+    }
+
+  return result;
+}
+weak_alias (__xstat, _xstat)