about summary refs log tree commit diff
path: root/sysdeps/unix
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix')
-rw-r--r--sysdeps/unix/getlogin.c4
-rw-r--r--sysdeps/unix/getlogin_r.c10
-rw-r--r--sysdeps/unix/mips/brk.S44
-rw-r--r--sysdeps/unix/mips/sysdep.S25
-rw-r--r--sysdeps/unix/mips/sysdep.h26
-rw-r--r--sysdeps/unix/mips/wait.S6
-rw-r--r--sysdeps/unix/sysv/linux/bits/ipc.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/msq.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sem.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/shm.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/Dist3
-rw-r--r--sysdeps/unix/sysv/linux/mips/Makefile10
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/endian.h12
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/fcntl.h100
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h71
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/ipc.h85
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/shm.h92
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sigaction.h62
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/signum.h30
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/socket.h178
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/stat.h97
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/statfs.h44
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios.h260
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/time.h54
-rw-r--r--sysdeps/unix/sysv/linux/mips/clone.S125
-rw-r--r--sysdeps/unix/sysv/linux/mips/entry.h1
-rw-r--r--sysdeps/unix/sysv/linux/mips/fpregdef.h1
-rw-r--r--sysdeps/unix/sysv/linux/mips/fxstat.c80
-rw-r--r--sysdeps/unix/sysv/linux/mips/kernel_sigaction.h22
-rw-r--r--sysdeps/unix/sysv/linux/mips/kernel_stat.h28
-rw-r--r--sysdeps/unix/sysv/linux/mips/kernel_termios.h20
-rw-r--r--sysdeps/unix/sysv/linux/mips/lxstat.h80
-rw-r--r--sysdeps/unix/sysv/linux/mips/regdef.h1
-rw-r--r--sysdeps/unix/sysv/linux/mips/sgidef.h28
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/acct.h66
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/asm.h28
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/cachectl.h42
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/fpregdef.h27
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/procfs.h109
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/regdef.h29
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/syscall.h1187
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/sysmips.h36
-rw-r--r--sysdeps/unix/sysv/linux/mips/syscalls.list46
-rw-r--r--sysdeps/unix/sysv/linux/mips/ustat.c35
-rw-r--r--sysdeps/unix/sysv/linux/mips/xmknod.c47
-rw-r--r--sysdeps/unix/sysv/linux/mips/xstat.c80
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list3
47 files changed, 3288 insertions, 56 deletions
diff --git a/sysdeps/unix/getlogin.c b/sysdeps/unix/getlogin.c
index 6e8a9a2a87..84b7dd8276 100644
--- a/sysdeps/unix/getlogin.c
+++ b/sysdeps/unix/getlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 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
@@ -46,7 +46,7 @@ getlogin (void)
      thing to do.  Note that ttyname(open("/dev/tty")) on those
      systems returns /dev/tty, so that is not a possible solution for
      getlogin().  */
-  if (__ttyname_r (0, real_tty_path, sizeof (tty_pathname)) < 0)
+  if (__ttyname_r (0, real_tty_path, sizeof (tty_pathname)) != 0)
     return NULL;
 
   real_tty_path += 5;		/* Remove "/dev/".  */
diff --git a/sysdeps/unix/getlogin_r.c b/sysdeps/unix/getlogin_r.c
index 75f17cb86f..8ec2fae754 100644
--- a/sysdeps/unix/getlogin_r.c
+++ b/sysdeps/unix/getlogin_r.c
@@ -1,5 +1,5 @@
 /* Reentrant function to return the current login name.  Unix version.
-   Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1991, 1992, 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
@@ -41,19 +41,17 @@ getlogin_r (name, name_len)
   struct utmp *ut, line, buffer;
 
   {
-    int err;
     int d = __open ("/dev/tty", 0);
     if (d < 0)
       return errno;
 
     result = ttyname_r (d, real_tty_path, sizeof (tty_pathname));
-    err = errno;
     (void) close (d);
 
-    if (result < 0)
+    if (result != 0)
       {
-	__set_errno (err);
-	return err;
+	__set_errno (result);
+	return result;
       }
   }
 
diff --git a/sysdeps/unix/mips/brk.S b/sysdeps/unix/mips/brk.S
index 197672669b..e38f735b92 100644
--- a/sysdeps/unix/mips/brk.S
+++ b/sysdeps/unix/mips/brk.S
@@ -24,46 +24,24 @@
 #endif
 
 #ifndef       HAVE_GNU_LD
-#define __end           end
+#define _end           end
 #endif
 
-.data
-.sdata
+	.data
 ENTRY(__curbrk)
-	.word __end
+	.word 0
 	.end __curbrk
-.text
-.set noreorder
-.set noat
 
-ENTRY(__brk)
-	/* Minimum is one page.  */
-	lui v0, 4096
-	lw v0, __end
-	nop
-
-	/* If they ask for less than a page, givvem the whole
-	   thing anyway.  */
-	sltu AT, a0, v0
-	beq AT, zero, down1
-	nop
-	move a0, v0
-down1:
-	li v0, SYS_brk
-	syscall
-	bne a3, zero, error
-
-	/* Update __curbrk and exit cleanly.  */
-	lui AT, 4096
+	.text
+SYSCALL__(brk, 1)
+	.set	reorder
+	/* Handle the query case.  */
+	bnez a0, 1f
+	move a0,v0
+1:	/* Update __curbrk and exit cleanly.  */
 	sw a0, __curbrk
-	j ra
 	move v0, zero
-
-	/* What a horrible way to die.  */
-error:	j syscall_error
-	nop
-	nop
-	nop
+	jr ra
 	.end __brk
 
 weak_alias (__brk, brk)
diff --git a/sysdeps/unix/mips/sysdep.S b/sysdeps/unix/mips/sysdep.S
index 0cfc302770..ac8335fe5b 100644
--- a/sysdeps/unix/mips/sysdep.S
+++ b/sysdeps/unix/mips/sysdep.S
@@ -21,10 +21,23 @@
 #define _ERRNO_H
 #include <bits/errno.h>
 
-/* .globl errno */
-.set noreorder
+	.comm errno, 4
+#ifdef __ELF__
+	.type errno, @object
+#endif
+
+	.set noreorder
 
-ENTRY(syscall_error)
+ENTRY(__syscall_error)
+#ifdef __PIC__
+	.set	noat
+	move	$1, $31
+	bltzal	$0, 0f
+	nop
+0:	.cpload	$31
+	move	$31, $1
+	.set	at
+#endif
 #if defined (EWOULDBLOCK_sys) && EWOULDBLOCK_sys != EAGAIN
 	/* We translate the system's EWOULDBLOCK error into EAGAIN.
 	   The GNU C library always defines EWOULDBLOCK==EAGAIN.
@@ -40,4 +53,8 @@ skip:
 	/* And just kick back a -1.  */
 	j ra
 	li v0, -1
-	.end syscall_error
+	END(__syscall_error)
+
+/* We provide this alias for compatilility with other Unices
+   like IRIX 5  */
+weak_alias (__syscall_error, syscall_error)
diff --git a/sysdeps/unix/mips/sysdep.h b/sysdeps/unix/mips/sysdep.h
index 2f148d0938..cbafbdcd9a 100644
--- a/sysdeps/unix/mips/sysdep.h
+++ b/sysdeps/unix/mips/sysdep.h
@@ -32,19 +32,41 @@
 /* Note that while it's better structurally, going back to call syscall_error
    can make things confusing if you're debugging---it looks like it's jumping
    backwards into the previous fn.  */
+#ifdef __PIC__
+ #define PSEUDO(name, syscall_name, args) \
+  .align 2;								      \
+  99: la t9,syscall_error;						      \
+  jr t9;								      \
+  ENTRY(name)								      \
+  .set noreorder;							      \
+  .cpload t9;								      \
+  li v0, SYS_##syscall_name;						      \
+  syscall;								      \
+  .set reorder;								      \
+  bne a3, zero, 99b;							      \
+syse1:
+#else
 #define PSEUDO(name, syscall_name, args) \
   .set noreorder;							      \
   .align 2;								      \
   99: j syscall_error;							      \
-  nop;							      		      \
   ENTRY(name)								      \
+  .set noreorder;							      \
   li v0, SYS_##syscall_name;						      \
   syscall;								      \
+  .set reorder;								      \
   bne a3, zero, 99b;							      \
-  nop;									      \
 syse1:
+#endif
+
+#undef PSEUDO_END
+#define PSEUDO_END(sym) .end sym
 
 #define ret	j ra ; nop
+
+#undef END
+#define END(sym)        .end sym
+
 #define r0	v0
 #define r1	v1
 /* The mips move insn is d,s.  */
diff --git a/sysdeps/unix/mips/wait.S b/sysdeps/unix/mips/wait.S
index a544156c4e..9ea55bc7d0 100644
--- a/sysdeps/unix/mips/wait.S
+++ b/sysdeps/unix/mips/wait.S
@@ -28,14 +28,14 @@ ENTRY(__wait)
 
 	li v0, SYS_wait
 	syscall
-	beq a3, zero, noerror
+	beqz a3, noerror
 	nop
-	j syscall_error
+	j __syscall_error
 	nop
 
 noerror:
 	/* If the arg is not NULL, store v1 there.  */
-	beq a0, zero, noarg
+	beqz a0, noarg
 	nop
 	sw v1, 0(a0)
 	nop
diff --git a/sysdeps/unix/sysv/linux/bits/ipc.h b/sysdeps/unix/sysv/linux/bits/ipc.h
index f5fea0d295..c01a81a83f 100644
--- a/sysdeps/unix/sysv/linux/bits/ipc.h
+++ b/sysdeps/unix/sysv/linux/bits/ipc.h
@@ -82,4 +82,4 @@ extern int __ipc __P ((int __call, int __first, int __second, int __third,
 
 __END_DECLS
 
-#endif /* _SYS_IPC_BUF_H */
+#endif /* bits/ipc_buf.h */
diff --git a/sysdeps/unix/sysv/linux/bits/msq.h b/sysdeps/unix/sysv/linux/bits/msq.h
index 0abc10f6e5..59559a31c3 100644
--- a/sysdeps/unix/sysv/linux/bits/msq.h
+++ b/sysdeps/unix/sysv/linux/bits/msq.h
@@ -75,4 +75,4 @@ struct msginfo
 
 __END_DECLS
 
-#endif /* _SYS_MSQ_BUF_H */
+#endif /* bits/msq_buf.h */
diff --git a/sysdeps/unix/sysv/linux/bits/sem.h b/sysdeps/unix/sysv/linux/bits/sem.h
index 049a71bc47..87951efea1 100644
--- a/sysdeps/unix/sysv/linux/bits/sem.h
+++ b/sysdeps/unix/sysv/linux/bits/sem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+/* 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.
 
@@ -85,4 +85,4 @@ struct  seminfo
 
 __END_DECLS
 
-#endif /* _SYS_SEM_BUF_H */
+#endif /* bits/sem_buf.h */
diff --git a/sysdeps/unix/sysv/linux/bits/shm.h b/sysdeps/unix/sysv/linux/bits/shm.h
index 642b7bd191..6db01dd4a2 100644
--- a/sysdeps/unix/sysv/linux/bits/shm.h
+++ b/sysdeps/unix/sysv/linux/bits/shm.h
@@ -89,4 +89,4 @@ struct shm_info
 
 __END_DECLS
 
-#endif /* _SYS_SHM_BUF_H */
+#endif /* bits/shm_buf.h */
diff --git a/sysdeps/unix/sysv/linux/mips/Dist b/sysdeps/unix/sysv/linux/mips/Dist
new file mode 100644
index 0000000000..a205c94f95
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/Dist
@@ -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
index 0000000000..e6240ea9a4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/Makefile
@@ -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
index 0000000000..9f60758f36
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/endian.h
@@ -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
index 0000000000..2586140fdc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
@@ -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
index 0000000000..486022e6d9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
@@ -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
index 0000000000..c5a3cd0049
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/ipc.h
@@ -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
index 0000000000..9d4b20bb53
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/shm.h
@@ -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
index 0000000000..66c58cc540
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
@@ -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
index 0000000000..5254a2b420
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/signum.h
@@ -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
index 0000000000..15f420fc9c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/socket.h
@@ -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
index 0000000000..a797b34c38
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/stat.h
@@ -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
index 0000000000..3b2306147c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/statfs.h
@@ -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
index 0000000000..c8a24694d9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios.h
@@ -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
index 0000000000..5fcef0fb8c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/time.h
@@ -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
index 0000000000..357f70e47f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/clone.S
@@ -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
index 0000000000..3db6d93636
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/entry.h
@@ -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
index 0000000000..a963d5f588
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/fpregdef.h
@@ -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
index 0000000000..4a3c486a4a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/fxstat.c
@@ -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
index 0000000000..bb7fe6bece
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/kernel_sigaction.h
@@ -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
index 0000000000..c6419baf37
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/kernel_stat.h
@@ -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
index 0000000000..35be1bb290
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/kernel_termios.h
@@ -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
index 0000000000..7907b2f2d2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/lxstat.h
@@ -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
index 0000000000..b613c8b250
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/regdef.h
@@ -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
index 0000000000..a36ece0175
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sgidef.h
@@ -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
index 0000000000..ee596db82b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sys/acct.h
@@ -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
index 0000000000..346a9c4ec2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sys/asm.h
@@ -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
index 0000000000..740c24d6a8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
@@ -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
index 0000000000..48d8f7513e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sys/fpregdef.h
@@ -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
index 0000000000..d740954a8d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sys/procfs.h
@@ -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
index 0000000000..700fd66f0b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sys/regdef.h
@@ -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
index 0000000000..82f8427aa0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sys/syscall.h
@@ -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
index 0000000000..cbb7eba2b4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
@@ -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
index 0000000000..6dd9cd81c5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/syscalls.list
@@ -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
index 0000000000..447ab2947e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/ustat.c
@@ -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
index 0000000000..c7ff64fecb
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/xmknod.c
@@ -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
index 0000000000..9f7eb58e0a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/xstat.c
@@ -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)
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index f11370d6cb..a3b0eef691 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -67,7 +67,8 @@ sys_readv	readv	readv		3	__syscall_readv
 sys_stat	xstat	stat		2	__syscall_stat
 sys_writev	writev	writev		3	__syscall_writev
 sysinfo		EXTRA	sysinfo		1	sysinfo
-swapon		-	swapon		2	swapon
+swapon		-	swapon		2	__swapon	swapon
+swapoff		-	swapoff		1	__swapoff	swapoff
 umount		EXTRA	umount		1	__umount	umount
 uselib		EXTRA	uselib		1	uselib
 wait4		-	wait4		4	__wait4		wait4