summaryrefslogtreecommitdiffstats
path: root/sys/i386/linux
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386/linux')
-rw-r--r--sys/i386/linux/linux.h381
-rw-r--r--sys/i386/linux/linux_dummy.c49
-rw-r--r--sys/i386/linux/linux_genassym.c14
-rw-r--r--sys/i386/linux/linux_machdep.c281
-rw-r--r--sys/i386/linux/linux_proto.h894
-rw-r--r--sys/i386/linux/linux_syscall.h98
-rw-r--r--sys/i386/linux/linux_sysent.c138
-rw-r--r--sys/i386/linux/linux_sysvec.c45
8 files changed, 1102 insertions, 798 deletions
diff --git a/sys/i386/linux/linux.h b/sys/i386/linux/linux.h
index b4eec098..594ebfc 100644
--- a/sys/i386/linux/linux.h
+++ b/sys/i386/linux/linux.h
@@ -38,21 +38,75 @@
/*
* debugging support
*/
-extern u_char linux_debug_map[];
+extern u_char linux_debug_map[];
#define ldebug(name) isclr(linux_debug_map, LINUX_SYS_linux_ ## name)
-#define ARGS(nm, fmt) "Linux-emul(%ld): "#nm"("fmt")\n", (long)p->p_pid
-#define LMSG(fmt) "Linux-emul(%ld): "fmt"\n", (long)p->p_pid
+#define ARGS(nm, fmt) "linux(%ld): "#nm"("fmt")\n", (long)p->p_pid
+#define LMSG(fmt) "linux(%ld): "fmt"\n", (long)p->p_pid
#ifdef MALLOC_DECLARE
MALLOC_DECLARE(M_LINUX);
#endif
/*
+ * Provide a seperate set of types for the Linux types.
+ */
+typedef int l_int;
+typedef int32_t l_long;
+typedef int64_t l_longlong;
+typedef short l_short;
+typedef unsigned int l_uint;
+typedef uint32_t l_ulong;
+typedef uint64_t l_ulonglong;
+typedef unsigned short l_ushort;
+
+typedef char *l_caddr_t;
+typedef l_long l_clock_t;
+typedef l_int l_daddr_t;
+typedef l_ushort l_dev_t;
+typedef l_uint l_gid_t;
+typedef l_ushort l_gid16_t;
+typedef l_ulong l_ino_t;
+typedef l_int l_key_t;
+typedef l_longlong l_loff_t;
+typedef l_ushort l_mode_t;
+typedef l_long l_off_t;
+typedef l_int l_pid_t;
+typedef l_uint l_size_t;
+typedef l_long l_suseconds_t;
+typedef l_long l_time_t;
+typedef l_uint l_uid_t;
+typedef l_ushort l_uid16_t;
+
+typedef struct {
+ l_int val[2];
+} l_fsid_t;
+
+typedef struct {
+ l_time_t tv_sec;
+ l_suseconds_t tv_usec;
+} l_timeval;
+
+#define l_fd_set fd_set
+
+/*
* Miscellaneous
*/
#define LINUX_NAME_MAX 255
#define LINUX_MAX_UTSNAME 65
+#define LINUX_CTL_MAXNAME 10
+
+struct l___sysctl_args
+{
+ l_int *name;
+ l_int nlen;
+ void *oldval;
+ l_size_t *oldlenp;
+ void *newval;
+ l_size_t newlen;
+ l_ulong __spare[4];
+};
+
/* Scheduling policies */
#define LINUX_SCHED_OTHER 0
#define LINUX_SCHED_FIFO 1
@@ -72,6 +126,11 @@ MALLOC_DECLARE(M_LINUX);
#define LINUX_RLIM_NLIMITS 10
+struct l_rlimit {
+ l_ulong rlim_cur;
+ l_ulong rlim_max;
+};
+
/* mmap options */
#define LINUX_MAP_SHARED 0x0001
#define LINUX_MAP_PRIVATE 0x0002
@@ -79,25 +138,55 @@ MALLOC_DECLARE(M_LINUX);
#define LINUX_MAP_ANON 0x0020
#define LINUX_MAP_GROWSDOWN 0x0100
-typedef char * linux_caddr_t;
-typedef long linux_clock_t;
-typedef u_short linux_dev_t;
-typedef u_short linux_gid_t;
-typedef u_long linux_ino_t;
-typedef int linux_key_t; /* XXX */
-typedef u_short linux_mode_t;
-typedef u_short linux_nlink_t;
-typedef long linux_off_t;
-typedef int linux_pid_t;
-typedef u_int linux_size_t;
-typedef long linux_time_t;
-typedef u_short linux_uid_t;
+/*
+ * stat family of syscalls
+ */
+struct l_timespec {
+ l_ulong tv_sec;
+ l_ulong tv_nsec;
+};
-typedef struct {
- long val[2];
-} linux_fsid_t;
+struct l_newstat {
+ l_ushort st_dev;
+ l_ushort __pad1;
+ l_ulong st_ino;
+ l_ushort st_mode;
+ l_ushort st_nlink;
+ l_ushort st_uid;
+ l_ushort st_gid;
+ l_ushort st_rdev;
+ l_ushort __pad2;
+ l_ulong st_size;
+ l_ulong st_blksize;
+ l_ulong st_blocks;
+ struct l_timespec st_atimespec;
+ struct l_timespec st_mtimespec;
+ struct l_timespec st_ctimespec;
+ l_ulong __unused4;
+ l_ulong __unused5;
+};
+
+struct l_stat64 {
+ l_ushort st_dev;
+ u_char __pad0[10];
+ l_ulong __st_ino;
+ l_uint st_mode;
+ l_uint st_nlink;
+ l_ulong st_uid;
+ l_ulong st_gid;
+ l_ushort st_rdev;
+ u_char __pad3[10];
+ l_longlong st_size;
+ l_ulong st_blksize;
+ l_ulong st_blocks;
+ l_ulong __pad4;
+ struct l_timespec st_atimespec;
+ struct l_timespec st_mtimespec;
+ struct l_timespec st_ctimespec;
+ l_ulonglong st_ino;
+};
-struct linux_new_utsname {
+struct l_new_utsname {
char sysname[LINUX_MAX_UTSNAME];
char nodename[LINUX_MAX_UTSNAME];
char release[LINUX_MAX_UTSNAME];
@@ -174,117 +263,114 @@ struct linux_new_utsname {
#define LINUX_SS_ONSTACK 1
#define LINUX_SS_DISABLE 2
-
int linux_to_bsd_sigaltstack(int lsa);
int bsd_to_linux_sigaltstack(int bsa);
-
-typedef void (*linux_handler_t)(int);
-typedef u_long linux_osigset_t;
+typedef void (*l_handler_t)(l_int);
+typedef l_ulong l_osigset_t;
typedef struct {
- u_int __bits[LINUX_NSIG_WORDS];
-} linux_sigset_t;
+ l_uint __bits[LINUX_NSIG_WORDS];
+} l_sigset_t;
typedef struct {
- linux_handler_t lsa_handler;
- linux_osigset_t lsa_mask;
- u_long lsa_flags;
+ l_handler_t lsa_handler;
+ l_osigset_t lsa_mask;
+ l_ulong lsa_flags;
void (*lsa_restorer)(void);
-} linux_osigaction_t;
+} l_osigaction_t;
typedef struct {
- linux_handler_t lsa_handler;
- u_long lsa_flags;
+ l_handler_t lsa_handler;
+ l_ulong lsa_flags;
void (*lsa_restorer)(void);
- linux_sigset_t lsa_mask;
-} linux_sigaction_t;
+ l_sigset_t lsa_mask;
+} l_sigaction_t;
typedef struct {
- void *ss_sp;
- int ss_flags;
- linux_size_t ss_size;
-} linux_stack_t;
+ void *ss_sp;
+ l_int ss_flags;
+ l_size_t ss_size;
+} l_stack_t;
/* The Linux sigcontext, pretty much a standard 386 trapframe. */
-struct linux_sigcontext {
- int sc_gs;
- int sc_fs;
- int sc_es;
- int sc_ds;
- int sc_edi;
- int sc_esi;
- int sc_ebp;
- int sc_esp;
- int sc_ebx;
- int sc_edx;
- int sc_ecx;
- int sc_eax;
- int sc_trapno;
- int sc_err;
- int sc_eip;
- int sc_cs;
- int sc_eflags;
- int sc_esp_at_signal;
- int sc_ss;
- int sc_387;
- int sc_mask;
- int sc_cr2;
+struct l_sigcontext {
+ l_int sc_gs;
+ l_int sc_fs;
+ l_int sc_es;
+ l_int sc_ds;
+ l_int sc_edi;
+ l_int sc_esi;
+ l_int sc_ebp;
+ l_int sc_esp;
+ l_int sc_ebx;
+ l_int sc_edx;
+ l_int sc_ecx;
+ l_int sc_eax;
+ l_int sc_trapno;
+ l_int sc_err;
+ l_int sc_eip;
+ l_int sc_cs;
+ l_int sc_eflags;
+ l_int sc_esp_at_signal;
+ l_int sc_ss;
+ l_int sc_387;
+ l_int sc_mask;
+ l_int sc_cr2;
};
-struct linux_ucontext {
- unsigned long uc_flags;
- void *uc_link;
- linux_stack_t uc_stack;
- struct linux_sigcontext uc_mcontext;
- linux_sigset_t uc_sigmask;
+struct l_ucontext {
+ l_ulong uc_flags;
+ void *uc_link;
+ l_stack_t uc_stack;
+ struct l_sigcontext uc_mcontext;
+ l_sigset_t uc_sigmask;
};
-
#define LINUX_SI_MAX_SIZE 128
-#define LINUX_SI_PAD_SIZE ((LINUX_SI_MAX_SIZE/sizeof(int)) - 3)
-
-typedef struct siginfo {
- int lsi_signo;
- int lsi_errno;
- int lsi_code;
+#define LINUX_SI_PAD_SIZE ((LINUX_SI_MAX_SIZE/sizeof(l_int)) - 3)
+typedef struct l_siginfo {
+ l_int lsi_signo;
+ l_int lsi_errno;
+ l_int lsi_code;
union {
- int _pad[LINUX_SI_PAD_SIZE];
+ l_int _pad[LINUX_SI_PAD_SIZE];
+
struct {
- linux_pid_t _pid;
- linux_uid_t _uid;
+ l_pid_t _pid;
+ l_uid16_t _uid;
} _kill;
struct {
- unsigned int _timer1;
- unsigned int _timer2;
+ l_uint _timer1;
+ l_uint _timer2;
} _timer;
-
+
struct {
- linux_pid_t _pid; /* sender's pid */
- linux_uid_t _uid; /* sender's uid */
+ l_pid_t _pid; /* sender's pid */
+ l_uid16_t _uid; /* sender's uid */
union sigval _sigval;
} _rt;
struct {
- linux_pid_t _pid; /* which child */
- linux_uid_t _uid; /* sender's uid */
- int _status; /* exit code */
- linux_clock_t _utime;
- linux_clock_t _stime;
+ l_pid_t _pid; /* which child */
+ l_uid16_t _uid; /* sender's uid */
+ l_int _status; /* exit code */
+ l_clock_t _utime;
+ l_clock_t _stime;
} _sigchld;
struct {
- void *_addr; /* faulting insn/memory ref. */
+ void *_addr; /* faulting insn/memory ref. */
} _sigfault;
struct {
- int _band; /* POLL_IN, POLL_OUT, POLL_MSG */
- int _fd;
+ l_int _band; /* POLL_IN,POLL_OUT,POLL_MSG */
+ l_int _fd;
} _sigpoll;
} _sifields;
-} linux_siginfo_t;
+} l_siginfo_t;
#define lsi_pid _sifields._kill._pid
#define lsi_uid _sifields._kill._uid
@@ -298,22 +384,22 @@ typedef struct siginfo {
#define lsi_band _sifields._sigpoll._band
#define lsi_fd _sifields._sigpoll._fd
-struct linux_fpreg {
+struct l_fpreg {
u_int16_t significand[4];
u_int16_t exponent;
};
-struct linux_fpxreg {
+struct l_fpxreg {
u_int16_t significand[4];
u_int16_t exponent;
u_int16_t padding[3];
};
-struct linux_xmmreg {
+struct l_xmmreg {
u_int32_t element[4];
};
-struct linux_fpstate {
+struct l_fpstate {
/* Regular FPU environment */
u_int32_t cw;
u_int32_t sw;
@@ -322,7 +408,7 @@ struct linux_fpstate {
u_int32_t cssel;
u_int32_t dataoff;
u_int32_t datasel;
- struct linux_fpreg _st[8];
+ struct l_fpreg _st[8];
u_int16_t status;
u_int16_t magic; /* 0xffff = regular FPU data */
@@ -330,8 +416,8 @@ struct linux_fpstate {
u_int32_t _fxsr_env[6]; /* env is ignored */
u_int32_t mxcsr;
u_int32_t reserved;
- struct linux_fpxreg _fxsr_st[8]; /* reg data is ignored */
- struct linux_xmmreg _xmm[8];
+ struct l_fpxreg _fxsr_st[8]; /* reg data is ignored */
+ struct l_xmmreg _xmm[8];
u_int32_t padding[56];
};
@@ -341,21 +427,21 @@ struct linux_fpstate {
* This means that we need to pass the pointer to the handler too.
* It is appended to the frame to not interfere with the rest of it.
*/
-struct linux_sigframe {
- int sf_sig;
- struct linux_sigcontext sf_sc;
- struct linux_fpstate sf_fpstate;
- u_int sf_extramask[LINUX_NSIG_WORDS-1];
- linux_handler_t sf_handler;
+struct l_sigframe {
+ l_int sf_sig;
+ struct l_sigcontext sf_sc;
+ struct l_fpstate sf_fpstate;
+ l_uint sf_extramask[LINUX_NSIG_WORDS-1];
+ l_handler_t sf_handler;
};
-struct linux_rt_sigframe {
- int sf_sig;
- linux_siginfo_t *sf_siginfo;
- struct linux_ucontext *sf_ucontext;
- linux_siginfo_t sf_si;
- struct linux_ucontext sf_sc;
- linux_handler_t sf_handler;
+struct l_rt_sigframe {
+ l_int sf_sig;
+ l_siginfo_t *sf_siginfo;
+ struct l_ucontext *sf_ucontext;
+ l_siginfo_t sf_si;
+ struct l_ucontext sf_sc;
+ l_handler_t sf_handler;
};
extern int bsd_to_linux_signal[];
@@ -457,6 +543,14 @@ int linux_ioctl_unregister_handler(struct linux_ioctl_handler *h);
#define LINUX_SETVAL 16
#define LINUX_SETALL 17
+union l_semun {
+ l_int val;
+ struct l_semid_ds *buf;
+ l_ushort *array;
+ struct l_seminfo *__buf;
+ void *__pad;
+};
+
/*
* Socket defines
*/
@@ -517,44 +611,65 @@ int linux_ioctl_unregister_handler(struct linux_ioctl_handler *h);
#define LINUX_IP_ADD_MEMBERSHIP 35
#define LINUX_IP_DROP_MEMBERSHIP 36
-struct linux_sockaddr {
- u_short sa_family;
- char sa_data[14];
+struct l_sockaddr {
+ l_ushort sa_family;
+ char sa_data[14];
};
-struct linux_ifmap {
- u_long mem_start;
- u_long mem_end;
- u_short base_addr;
- u_char irq;
- u_char dma;
- u_char port;
+struct l_ifmap {
+ l_ulong mem_start;
+ l_ulong mem_end;
+ l_ushort base_addr;
+ u_char irq;
+ u_char dma;
+ u_char port;
};
#define LINUX_IFHWADDRLEN 6
#define LINUX_IFNAMSIZ 16
-struct linux_ifreq {
+struct l_ifreq {
union {
char ifrn_name[LINUX_IFNAMSIZ];
} ifr_ifrn;
union {
- struct linux_sockaddr ifru_addr;
- struct linux_sockaddr ifru_dstaddr;
- struct linux_sockaddr ifru_broadaddr;
- struct linux_sockaddr ifru_netmask;
- struct linux_sockaddr ifru_hwaddr;
- short ifru_flags;
- int ifru_metric;
- int ifru_mtu;
- struct linux_ifmap ifru_map;
- char ifru_slave[LINUX_IFNAMSIZ]; /* Just fits the size */
- linux_caddr_t ifru_data;
+ struct l_sockaddr ifru_addr;
+ struct l_sockaddr ifru_dstaddr;
+ struct l_sockaddr ifru_broadaddr;
+ struct l_sockaddr ifru_netmask;
+ struct l_sockaddr ifru_hwaddr;
+ l_short ifru_flags;
+ l_int ifru_metric;
+ l_int ifru_mtu;
+ struct l_ifmap ifru_map;
+ char ifru_slave[LINUX_IFNAMSIZ];
+ l_caddr_t ifru_data;
} ifr_ifru;
};
#define ifr_name ifr_ifrn.ifrn_name /* interface name */
#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */
+/*
+ * poll()
+ */
+#define LINUX_POLLIN 0x0001
+#define LINUX_POLLPRI 0x0002
+#define LINUX_POLLOUT 0x0004
+#define LINUX_POLLERR 0x0008
+#define LINUX_POLLHUP 0x0010
+#define LINUX_POLLNVAL 0x0020
+#define LINUX_POLLRDNORM 0x0040
+#define LINUX_POLLRDBAND 0x0080
+#define LINUX_POLLWRNORM 0x0100
+#define LINUX_POLLWRBAND 0x0200
+#define LINUX_POLLMSG 0x0400
+
+struct l_pollfd {
+ l_int fd;
+ l_short events;
+ l_short revents;
+};
+
#endif /* !_I386_LINUX_LINUX_H_ */
diff --git a/sys/i386/linux/linux_dummy.c b/sys/i386/linux/linux_dummy.c
index b63a285..983ccec 100644
--- a/sys/i386/linux/linux_dummy.c
+++ b/sys/i386/linux/linux_dummy.c
@@ -34,41 +34,16 @@
#include <i386/linux/linux.h>
#include <i386/linux/linux_proto.h>
+#include <compat/linux/linux_util.h>
-#define DUMMY(s) \
-int \
-linux_ ## s(struct proc *p, struct linux_ ## s ## _args *args) \
-{ \
- return (unsupported_msg(p, #s)); \
-} \
-struct __hack
-
-static int
-unsupported_msg(struct proc *p, const char *fname)
-{
- printf("linux: syscall %s is obsoleted or not implemented (pid=%ld)\n",
- fname, (long)p->p_pid);
- return (ENOSYS);
-}
-
-DUMMY(setup);
-DUMMY(break);
DUMMY(stat);
DUMMY(stime);
DUMMY(ptrace);
DUMMY(fstat);
-DUMMY(stty);
-DUMMY(gtty);
-DUMMY(ftime);
-DUMMY(prof);
-DUMMY(lock);
-DUMMY(mpx);
-DUMMY(ulimit);
DUMMY(olduname);
-DUMMY(ksyslog);
+DUMMY(syslog);
DUMMY(uname);
DUMMY(vhangup);
-DUMMY(idle);
DUMMY(vm86old);
DUMMY(swapoff);
DUMMY(adjtimex);
@@ -79,16 +54,10 @@ DUMMY(get_kernel_syms);
DUMMY(quotactl);
DUMMY(bdflush);
DUMMY(sysfs);
-DUMMY(afs_syscall);
-DUMMY(setfsuid);
-DUMMY(setfsgid);
DUMMY(getsid);
-DUMMY(sysctl);
-DUMMY(getresuid);
DUMMY(vm86);
DUMMY(query_module);
DUMMY(nfsservctl);
-DUMMY(getresgid);
DUMMY(prctl);
DUMMY(rt_sigpending);
DUMMY(rt_sigtimedwait);
@@ -96,12 +65,14 @@ DUMMY(rt_sigqueueinfo);
DUMMY(capget);
DUMMY(capset);
DUMMY(sendfile);
-DUMMY(getpmsg);
-DUMMY(putpmsg);
-DUMMY(ugetrlimit);
DUMMY(mmap2);
DUMMY(truncate64);
DUMMY(ftruncate64);
-DUMMY(stat64);
-DUMMY(lstat64);
-DUMMY(fstat64);
+DUMMY(lchown);
+DUMMY(fchown);
+DUMMY(chown);
+DUMMY(setfsuid);
+DUMMY(setfsgid);
+DUMMY(pivot_root);
+DUMMY(mincore);
+DUMMY(madvise);
diff --git a/sys/i386/linux/linux_genassym.c b/sys/i386/linux/linux_genassym.c
index 3e3fbad..9cef0a5 100644
--- a/sys/i386/linux/linux_genassym.c
+++ b/sys/i386/linux/linux_genassym.c
@@ -5,11 +5,9 @@
#include <i386/linux/linux.h>
-ASSYM(LINUX_SIGF_HANDLER, offsetof(struct linux_sigframe, sf_handler));
-ASSYM(LINUX_SIGF_SC, offsetof(struct linux_sigframe, sf_sc));
-ASSYM(LINUX_SC_GS, offsetof(struct linux_sigcontext, sc_gs));
-ASSYM(LINUX_SC_EFLAGS, offsetof(struct linux_sigcontext, sc_eflags));
-ASSYM(LINUX_RT_SIGF_HANDLER, offsetof(struct linux_rt_sigframe, sf_handler));
-ASSYM(LINUX_RT_SIGF_UC, offsetof(struct linux_rt_sigframe, sf_sc));
-
-
+ASSYM(LINUX_SIGF_HANDLER, offsetof(struct l_sigframe, sf_handler));
+ASSYM(LINUX_SIGF_SC, offsetof(struct l_sigframe, sf_sc));
+ASSYM(LINUX_SC_GS, offsetof(struct l_sigcontext, sc_gs));
+ASSYM(LINUX_SC_EFLAGS, offsetof(struct l_sigcontext, sc_eflags));
+ASSYM(LINUX_RT_SIGF_HANDLER, offsetof(struct l_rt_sigframe, sf_handler));
+ASSYM(LINUX_RT_SIGF_UC, offsetof(struct l_rt_sigframe, sf_sc));
diff --git a/sys/i386/linux/linux_machdep.c b/sys/i386/linux/linux_machdep.c
index ce8d52b..dfae7f4 100644
--- a/sys/i386/linux/linux_machdep.c
+++ b/sys/i386/linux/linux_machdep.c
@@ -54,24 +54,24 @@
#include <compat/linux/linux_signal.h>
#include <compat/linux/linux_util.h>
-struct linux_descriptor {
- unsigned int entry_number;
- unsigned long base_addr;
- unsigned int limit;
- unsigned int seg_32bit:1;
- unsigned int contents:2;
- unsigned int read_exec_only:1;
- unsigned int limit_in_pages:1;
- unsigned int seg_not_present:1;
- unsigned int useable:1;
+struct l_descriptor {
+ l_uint entry_number;
+ l_ulong base_addr;
+ l_uint limit;
+ l_uint seg_32bit:1;
+ l_uint contents:2;
+ l_uint read_exec_only:1;
+ l_uint limit_in_pages:1;
+ l_uint seg_not_present:1;
+ l_uint useable:1;
};
-struct linux_select_argv {
- int nfds;
- fd_set *readfds;
- fd_set *writefds;
- fd_set *exceptfds;
- struct timeval *timeout;
+struct l_old_select_argv {
+ l_int nfds;
+ l_fd_set *readfds;
+ l_fd_set *writefds;
+ l_fd_set *exceptfds;
+ struct l_timeval *timeout;
};
int
@@ -118,51 +118,142 @@ linux_execve(struct proc *p, struct linux_execve_args *args)
return (execve(p, &bsd));
}
+struct l_ipc_kludge {
+ struct l_msgbuf *msgp;
+ l_long msgtyp;
+};
+
int
linux_ipc(struct proc *p, struct linux_ipc_args *args)
{
- switch (args->what) {
- case LINUX_SEMOP:
- return (linux_semop(p, args));
- case LINUX_SEMGET:
- return (linux_semget(p, args));
- case LINUX_SEMCTL:
- return (linux_semctl(p, args));
- case LINUX_MSGSND:
- return (linux_msgsnd(p, args));
- case LINUX_MSGRCV:
- return (linux_msgrcv(p, args));
- case LINUX_MSGGET:
- return (linux_msgget(p, args));
- case LINUX_MSGCTL:
- return (linux_msgctl(p, args));
- case LINUX_SHMAT:
- return (linux_shmat(p, args));
- case LINUX_SHMDT:
- return (linux_shmdt(p, args));
- case LINUX_SHMGET:
- return (linux_shmget(p, args));
- case LINUX_SHMCTL:
- return (linux_shmctl(p, args));
+
+ switch (args->what & 0xFFFF) {
+ case LINUX_SEMOP: {
+ struct linux_semop_args a;
+
+ a.semid = args->arg1;
+ a.tsops = args->ptr;
+ a.nsops = args->arg2;
+ return (linux_semop(p, &a));
+ }
+ case LINUX_SEMGET: {
+ struct linux_semget_args a;
+
+ a.key = args->arg1;
+ a.nsems = args->arg2;
+ a.semflg = args->arg3;
+ return (linux_semget(p, &a));
+ }
+ case LINUX_SEMCTL: {
+ struct linux_semctl_args a;
+ int error;
+
+ a.semid = args->arg1;
+ a.semnum = args->arg2;
+ a.cmd = args->arg3;
+ error = copyin((caddr_t)args->ptr, &a.arg, sizeof(a.arg));
+ if (error)
+ return (error);
+ return (linux_semctl(p, &a));
+ }
+ case LINUX_MSGSND: {
+ struct linux_msgsnd_args a;
+
+ a.msqid = args->arg1;
+ a.msgp = args->ptr;
+ a.msgsz = args->arg2;
+ a.msgflg = args->arg3;
+ return (linux_msgsnd(p, &a));
+ }
+ case LINUX_MSGRCV: {
+ struct linux_msgrcv_args a;
+
+ a.msqid = args->arg1;
+ a.msgsz = args->arg2;
+ a.msgflg = args->arg3;
+ if ((args->what >> 16) == 0) {
+ struct l_ipc_kludge tmp;
+ int error;
+
+ if (args->ptr == NULL)
+ return (EINVAL);
+ error = copyin((caddr_t)args->ptr, &tmp, sizeof(tmp));
+ if (error)
+ return (error);
+ a.msgp = tmp.msgp;
+ a.msgtyp = tmp.msgtyp;
+ } else {
+ a.msgp = args->ptr;
+ a.msgtyp = args->arg5;
+ }
+ return (linux_msgrcv(p, &a));
+ }
+ case LINUX_MSGGET: {
+ struct linux_msgget_args a;
+
+ a.key = args->arg1;
+ a.msgflg = args->arg2;
+ return (linux_msgget(p, &a));
+ }
+ case LINUX_MSGCTL: {
+ struct linux_msgctl_args a;
+
+ a.msqid = args->arg1;
+ a.cmd = args->arg2;
+ a.buf = args->ptr;
+ return (linux_msgctl(p, &a));
+ }
+ case LINUX_SHMAT: {
+ struct linux_shmat_args a;
+
+ a.shmid = args->arg1;
+ a.shmaddr = args->ptr;
+ a.shmflg = args->arg2;
+ a.raddr = (l_ulong *)args->arg3;
+ return (linux_shmat(p, &a));
}
+ case LINUX_SHMDT: {
+ struct linux_shmdt_args a;
- uprintf("LINUX: 'ipc' typ=%d not implemented\n", args->what);
- return (ENOSYS);
+ a.shmaddr = args->ptr;
+ return (linux_shmdt(p, &a));
+ }
+ case LINUX_SHMGET: {
+ struct linux_shmget_args a;
+
+ a.key = args->arg1;
+ a.size = args->arg2;
+ a.shmflg = args->arg3;
+ return (linux_shmget(p, &a));
+ }
+ case LINUX_SHMCTL: {
+ struct linux_shmctl_args a;
+
+ a.shmid = args->arg1;
+ a.cmd = args->arg2;
+ a.buf = args->ptr;
+ return (linux_shmctl(p, &a));
+ }
+ default:
+ break;
+ }
+
+ return (EINVAL);
}
int
-linux_select(struct proc *p, struct linux_select_args *args)
+linux_old_select(struct proc *p, struct linux_old_select_args *args)
{
- struct linux_select_argv linux_args;
- struct linux_newselect_args newsel;
+ struct l_old_select_argv linux_args;
+ struct linux_select_args newsel;
int error;
-#ifdef SELECT_DEBUG
- if (ldebug(select))
- printf(ARGS(select, "%x"), args->ptr);
+#ifdef DEBUG
+ if (ldebug(old_select))
+ printf(ARGS(old_select, "%x"), args->ptr);
#endif
- error = copyin(args->ptr, &linux_args, sizeof(linux_args));
+ error = copyin((caddr_t)args->ptr, &linux_args, sizeof(linux_args));
if (error)
return (error);
@@ -171,7 +262,7 @@ linux_select(struct proc *p, struct linux_select_args *args)
newsel.writefds = linux_args.writefds;
newsel.exceptfds = linux_args.exceptfds;
newsel.timeout = linux_args.timeout;
- return (linux_newselect(p, &newsel));
+ return (linux_select(p, &newsel));
}
int
@@ -222,7 +313,6 @@ linux_clone(struct proc *p, struct linux_clone_args *args)
int error, ff = RFPROC | RFSTOPPED;
struct proc *p2;
int exit_signal;
- vm_offset_t start;
#ifdef DEBUG
if (ldebug(clone)) {
@@ -243,9 +333,6 @@ linux_clone(struct proc *p, struct linux_clone_args *args)
if (exit_signal <= LINUX_SIGTBLSZ)
exit_signal = linux_to_bsd_signal[_SIG_IDX(exit_signal)];
- /* RFTHREAD probably not necessary here, but it shouldn't hurt */
- ff |= RFTHREAD;
-
if (args->flags & CLONE_VM)
ff |= RFMEM;
if (args->flags & CLONE_SIGHAND)
@@ -253,44 +340,44 @@ linux_clone(struct proc *p, struct linux_clone_args *args)
if (!(args->flags & CLONE_FILES))
ff |= RFFDG;
- error = 0;
- start = 0;
-
- if ((error = fork1(p, ff, &p2)) != 0)
- return (error);
+ mtx_lock(&Giant);
+ error = fork1(p, ff, &p2);
+ if (error == 0) {
+ p->p_retval[0] = p2->p_pid;
+ p->p_retval[1] = 0;
- PROC_LOCK(p2);
- p2->p_sigparent = exit_signal;
- PROC_UNLOCK(p2);
- p2->p_frame->tf_esp = (unsigned int)args->stack;
+ PROC_LOCK(p2);
+ p2->p_sigparent = exit_signal;
+ p2->p_frame->tf_esp = (unsigned int)args->stack;
#ifdef DEBUG
- if (ldebug(clone))
- printf(LMSG("clone: successful rfork to %ld"),
- (long)p2->p_pid);
+ if (ldebug(clone))
+ printf(LMSG("clone: successful rfork to %ld"),
+ (long)p2->p_pid);
#endif
- /*
- * Make this runnable after we are finished with it.
- */
- mtx_lock_spin(&sched_lock);
- p2->p_stat = SRUN;
- setrunqueue(p2);
- mtx_unlock_spin(&sched_lock);
+ /*
+ * Make this runnable after we are finished with it.
+ */
+ mtx_lock_spin(&sched_lock);
+ p2->p_stat = SRUN;
+ setrunqueue(p2);
+ mtx_unlock_spin(&sched_lock);
+ PROC_UNLOCK(p2);
+ }
+ mtx_unlock(&Giant);
- p->p_retval[0] = p2->p_pid;
- p->p_retval[1] = 0;
- return (0);
+ return (error);
}
/* XXX move */
-struct linux_mmap_argv {
- linux_caddr_t addr;
- int len;
- int prot;
- int flags;
- int fd;
- int pos;
+struct l_mmap_argv {
+ l_caddr_t addr;
+ l_int len;
+ l_int prot;
+ l_int flags;
+ l_int fd;
+ l_int pos;
};
#define STACK_SIZE (2 * 1024 * 1024)
@@ -309,9 +396,9 @@ linux_mmap(struct proc *p, struct linux_mmap_args *args)
off_t pos;
} */ bsd_args;
int error;
- struct linux_mmap_argv linux_args;
+ struct l_mmap_argv linux_args;
- error = copyin(args->ptr, &linux_args, sizeof(linux_args));
+ error = copyin((caddr_t)args->ptr, &linux_args, sizeof(linux_args));
if (error)
return (error);
@@ -488,7 +575,7 @@ linux_modify_ldt(p, uap)
caddr_t sg;
struct sysarch_args args;
struct i386_ldt_args *ldt;
- struct linux_descriptor ld;
+ struct l_descriptor ld;
union descriptor *desc;
sg = stackgap_init();
@@ -552,8 +639,8 @@ linux_modify_ldt(p, uap)
int
linux_sigaction(struct proc *p, struct linux_sigaction_args *args)
{
- linux_osigaction_t osa;
- linux_sigaction_t act, oact;
+ l_osigaction_t osa;
+ l_sigaction_t act, oact;
int error;
#ifdef DEBUG
@@ -563,7 +650,8 @@ linux_sigaction(struct proc *p, struct linux_sigaction_args *args)
#endif
if (args->nsa != NULL) {
- error = copyin(args->nsa, &osa, sizeof(linux_osigaction_t));
+ error = copyin((caddr_t)args->nsa, &osa,
+ sizeof(l_osigaction_t));
if (error)
return (error);
act.lsa_handler = osa.lsa_handler;
@@ -581,7 +669,8 @@ linux_sigaction(struct proc *p, struct linux_sigaction_args *args)
osa.lsa_flags = oact.lsa_flags;
osa.lsa_restorer = oact.lsa_restorer;
osa.lsa_mask = oact.lsa_mask.__bits[0];
- error = copyout(&osa, args->osa, sizeof(linux_osigaction_t));
+ error = copyout(&osa, (caddr_t)args->osa,
+ sizeof(l_osigaction_t));
}
return (error);
@@ -597,7 +686,7 @@ linux_sigsuspend(struct proc *p, struct linux_sigsuspend_args *args)
{
struct sigsuspend_args bsd;
sigset_t *sigmask;
- linux_sigset_t mask;
+ l_sigset_t mask;
caddr_t sg = stackgap_init();
#ifdef DEBUG
@@ -618,7 +707,7 @@ linux_rt_sigsuspend(p, uap)
struct proc *p;
struct linux_rt_sigsuspend_args *uap;
{
- linux_sigset_t lmask;
+ l_sigset_t lmask;
sigset_t *bmask;
struct sigsuspend_args bsd;
caddr_t sg = stackgap_init();
@@ -630,10 +719,10 @@ linux_rt_sigsuspend(p, uap)
(void *)uap->newset, uap->sigsetsize);
#endif
- if (uap->sigsetsize != sizeof(linux_sigset_t))
+ if (uap->sigsetsize != sizeof(l_sigset_t))
return (EINVAL);
- error = copyin(uap->newset, &lmask, sizeof(linux_sigset_t));
+ error = copyin(uap->newset, &lmask, sizeof(l_sigset_t));
if (error)
return (error);
@@ -670,7 +759,7 @@ linux_sigaltstack(p, uap)
{
struct sigaltstack_args bsd;
stack_t *ss, *oss;
- linux_stack_t lss;
+ l_stack_t lss;
int error;
caddr_t sg = stackgap_init();
@@ -682,7 +771,7 @@ linux_sigaltstack(p, uap)
if (uap->uss == NULL) {
ss = NULL;
} else {
- error = copyin(uap->uss, &lss, sizeof(linux_stack_t));
+ error = copyin(uap->uss, &lss, sizeof(l_stack_t));
if (error)
return (error);
@@ -703,7 +792,7 @@ linux_sigaltstack(p, uap)
lss.ss_sp = oss->ss_sp;
lss.ss_size = oss->ss_size;
lss.ss_flags = bsd_to_linux_sigaltstack(oss->ss_flags);
- error = copyout(&lss, uap->uoss, sizeof(linux_stack_t));
+ error = copyout(&lss, uap->uoss, sizeof(l_stack_t));
}
return (error);
diff --git a/sys/i386/linux/linux_proto.h b/sys/i386/linux/linux_proto.h
index 225f638..6105da1 100644
--- a/sys/i386/linux/linux_proto.h
+++ b/sys/i386/linux/linux_proto.h
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.40 2001/04/01 06:37:40 alc Exp
+ * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.43 2001/09/08 18:48:40 marcel Exp
*/
#ifndef _LINUX_SYSPROTO_H_
@@ -18,548 +18,631 @@ struct proc;
#define PAD_(t) (sizeof(register_t) <= sizeof(t) ? \
0 : sizeof(register_t) - sizeof(t))
-struct linux_setup_args {
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define PADL_(t) 0
+#define PADR_(t) PAD_(t)
+#else
+#define PADL_(t) PAD_(t)
+#define PADR_(t) 0
+#endif
+
+struct linux_fork_args {
register_t dummy;
};
-struct linux_fork_args {
- register_t dummy;
+struct linux_open_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+ char mode_l_[PADL_(l_int)]; l_int mode; char mode_r_[PADR_(l_int)];
};
-struct linux_open_args {
- char * path; char path_[PAD_(char *)];
- int flags; char flags_[PAD_(int)];
- int mode; char mode_[PAD_(int)];
+struct linux_waitpid_args {
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+ char status_l_[PADL_(l_int *)]; l_int * status; char status_r_[PADR_(l_int *)];
+ char options_l_[PADL_(l_int)]; l_int options; char options_r_[PADR_(l_int)];
};
-struct linux_waitpid_args {
- int pid; char pid_[PAD_(int)];
- int * status; char status_[PAD_(int *)];
- int options; char options_[PAD_(int)];
+struct linux_creat_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char mode_l_[PADL_(l_int)]; l_int mode; char mode_r_[PADR_(l_int)];
};
-struct linux_creat_args {
- char * path; char path_[PAD_(char *)];
- int mode; char mode_[PAD_(int)];
+struct linux_link_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char to_l_[PADL_(char *)]; char * to; char to_r_[PADR_(char *)];
};
-struct linux_link_args {
- char * path; char path_[PAD_(char *)];
- char * to; char to_[PAD_(char *)];
+struct linux_unlink_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
};
-struct linux_unlink_args {
- char * path; char path_[PAD_(char *)];
+struct linux_execve_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char argp_l_[PADL_(char **)]; char ** argp; char argp_r_[PADR_(char **)];
+ char envp_l_[PADL_(char **)]; char ** envp; char envp_r_[PADR_(char **)];
};
-struct linux_execve_args {
- char * path; char path_[PAD_(char *)];
- char ** argp; char argp_[PAD_(char **)];
- char ** envp; char envp_[PAD_(char **)];
+struct linux_chdir_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
};
-struct linux_chdir_args {
- char * path; char path_[PAD_(char *)];
+struct linux_time_args {
+ char tm_l_[PADL_(l_time_t *)]; l_time_t * tm; char tm_r_[PADR_(l_time_t *)];
};
-struct linux_time_args {
- linux_time_t * tm; char tm_[PAD_(linux_time_t *)];
+struct linux_mknod_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char mode_l_[PADL_(l_int)]; l_int mode; char mode_r_[PADR_(l_int)];
+ char dev_l_[PADL_(l_dev_t)]; l_dev_t dev; char dev_r_[PADR_(l_dev_t)];
};
-struct linux_mknod_args {
- char * path; char path_[PAD_(char *)];
- int mode; char mode_[PAD_(int)];
- int dev; char dev_[PAD_(int)];
+struct linux_chmod_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char mode_l_[PADL_(l_mode_t)]; l_mode_t mode; char mode_r_[PADR_(l_mode_t)];
};
-struct linux_chmod_args {
- char * path; char path_[PAD_(char *)];
- int mode; char mode_[PAD_(int)];
+struct linux_lchown16_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)];
+ char gid_l_[PADL_(l_gid16_t)]; l_gid16_t gid; char gid_r_[PADR_(l_gid16_t)];
};
-struct linux_lchown_args {
- char * path; char path_[PAD_(char *)];
- int uid; char uid_[PAD_(int)];
- int gid; char gid_[PAD_(int)];
+struct linux_stat_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char up_l_[PADL_(struct ostat *)]; struct ostat * up; char up_r_[PADR_(struct ostat *)];
};
-struct linux_break_args {
- char * nsize; char nsize_[PAD_(char *)];
+struct linux_lseek_args {
+ char fdes_l_[PADL_(l_uint)]; l_uint fdes; char fdes_r_[PADR_(l_uint)];
+ char off_l_[PADL_(l_off_t)]; l_off_t off; char off_r_[PADR_(l_off_t)];
+ char whence_l_[PADL_(l_int)]; l_int whence; char whence_r_[PADR_(l_int)];
};
-struct linux_stat_args {
- char * path; char path_[PAD_(char *)];
- struct ostat * up; char up_[PAD_(struct ostat *)];
+struct linux_getpid_args {
+ register_t dummy;
};
-struct linux_lseek_args {
- int fdes; char fdes_[PAD_(int)];
- long off; char off_[PAD_(long)];
- int whence; char whence_[PAD_(int)];
+struct linux_mount_args {
+ char specialfile_l_[PADL_(char *)]; char * specialfile; char specialfile_r_[PADR_(char *)];
+ char dir_l_[PADL_(char *)]; char * dir; char dir_r_[PADR_(char *)];
+ char filesystemtype_l_[PADL_(char *)]; char * filesystemtype; char filesystemtype_r_[PADR_(char *)];
+ char rwflag_l_[PADL_(l_ulong)]; l_ulong rwflag; char rwflag_r_[PADR_(l_ulong)];
+ char data_l_[PADL_(void *)]; void * data; char data_r_[PADR_(void *)];
};
-struct linux_mount_args {
- char * specialfile; char specialfile_[PAD_(char *)];
- char * dir; char dir_[PAD_(char *)];
- char * filesystemtype; char filesystemtype_[PAD_(char *)];
- u_long rwflag; char rwflag_[PAD_(u_long)];
- void * data; char data_[PAD_(void *)];
+struct linux_oldumount_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
};
-struct linux_umount_args {
- char * path; char path_[PAD_(char *)];
+struct linux_setuid16_args {
+ char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)];
};
-struct linux_stime_args {
+struct linux_getuid16_args {
register_t dummy;
};
-struct linux_ptrace_args {
+struct linux_stime_args {
register_t dummy;
};
-struct linux_alarm_args {
- unsigned int secs; char secs_[PAD_(unsigned int)];
-};
-struct linux_fstat_args {
- int fd; char fd_[PAD_(int)];
- struct ostat * up; char up_[PAD_(struct ostat *)];
-};
-struct linux_pause_args {
+struct linux_ptrace_args {
register_t dummy;
};
-struct linux_utime_args {
- char * fname; char fname_[PAD_(char *)];
- struct linux_utimbuf * times; char times_[PAD_(struct linux_utimbuf *)];
+struct linux_alarm_args {
+ char secs_l_[PADL_(l_uint)]; l_uint secs; char secs_r_[PADR_(l_uint)];
};
-struct linux_stty_args {
- register_t dummy;
+struct linux_fstat_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char up_l_[PADL_(struct ostat *)]; struct ostat * up; char up_r_[PADR_(struct ostat *)];
};
-struct linux_gtty_args {
+struct linux_pause_args {
register_t dummy;
};
-struct linux_access_args {
- char * path; char path_[PAD_(char *)];
- int flags; char flags_[PAD_(int)];
+struct linux_utime_args {
+ char fname_l_[PADL_(char *)]; char * fname; char fname_r_[PADR_(char *)];
+ char times_l_[PADL_(struct l_utimbuf *)]; struct l_utimbuf * times; char times_r_[PADR_(struct l_utimbuf *)];
};
-struct linux_nice_args {
- int inc; char inc_[PAD_(int)];
+struct linux_access_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
};
-struct linux_ftime_args {
- register_t dummy;
+struct linux_nice_args {
+ char inc_l_[PADL_(l_int)]; l_int inc; char inc_r_[PADR_(l_int)];
};
-struct linux_kill_args {
- int pid; char pid_[PAD_(int)];
- int signum; char signum_[PAD_(int)];
+struct linux_kill_args {
+ char pid_l_[PADL_(l_int)]; l_int pid; char pid_r_[PADR_(l_int)];
+ char signum_l_[PADL_(l_int)]; l_int signum; char signum_r_[PADR_(l_int)];
};
-struct linux_rename_args {
- char * from; char from_[PAD_(char *)];
- char * to; char to_[PAD_(char *)];
+struct linux_rename_args {
+ char from_l_[PADL_(char *)]; char * from; char from_r_[PADR_(char *)];
+ char to_l_[PADL_(char *)]; char * to; char to_r_[PADR_(char *)];
};
-struct linux_mkdir_args {
- char * path; char path_[PAD_(char *)];
- int mode; char mode_[PAD_(int)];
+struct linux_mkdir_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char mode_l_[PADL_(l_int)]; l_int mode; char mode_r_[PADR_(l_int)];
};
-struct linux_rmdir_args {
- char * path; char path_[PAD_(char *)];
+struct linux_rmdir_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
};
-struct linux_pipe_args {
- int * pipefds; char pipefds_[PAD_(int *)];
+struct linux_pipe_args {
+ char pipefds_l_[PADL_(l_ulong *)]; l_ulong * pipefds; char pipefds_r_[PADR_(l_ulong *)];
};
-struct linux_times_args {
- struct linux_times_argv * buf; char buf_[PAD_(struct linux_times_argv *)];
+struct linux_times_args {
+ char buf_l_[PADL_(struct l_times_argv *)]; struct l_times_argv * buf; char buf_r_[PADR_(struct l_times_argv *)];
};
-struct linux_prof_args {
- register_t dummy;
+struct linux_brk_args {
+ char dsend_l_[PADL_(l_ulong)]; l_ulong dsend; char dsend_r_[PADR_(l_ulong)];
};
-struct linux_brk_args {
- char * dsend; char dsend_[PAD_(char *)];
+struct linux_setgid16_args {
+ char gid_l_[PADL_(l_gid16_t)]; l_gid16_t gid; char gid_r_[PADR_(l_gid16_t)];
};
-struct linux_signal_args {
- int sig; char sig_[PAD_(int)];
- linux_handler_t handler; char handler_[PAD_(linux_handler_t)];
+struct linux_getgid16_args {
+ register_t dummy;
};
-struct linux_umount2_args {
- char * path; char path_[PAD_(char *)];
- int flags; char flags_[PAD_(int)];
+struct linux_signal_args {
+ char sig_l_[PADL_(l_int)]; l_int sig; char sig_r_[PADR_(l_int)];
+ char handler_l_[PADL_(l_handler_t)]; l_handler_t handler; char handler_r_[PADR_(l_handler_t)];
};
-struct linux_lock_args {
+struct linux_geteuid16_args {
register_t dummy;
};
-struct linux_ioctl_args {
- int fd; char fd_[PAD_(int)];
- u_long cmd; char cmd_[PAD_(u_long)];
- int arg; char arg_[PAD_(int)];
+struct linux_getegid16_args {
+ register_t dummy;
};
-struct linux_fcntl_args {
- int fd; char fd_[PAD_(int)];
- int cmd; char cmd_[PAD_(int)];
- int arg; char arg_[PAD_(int)];
+struct linux_umount_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
};
-struct linux_mpx_args {
- register_t dummy;
+struct linux_ioctl_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char cmd_l_[PADL_(l_uint)]; l_uint cmd; char cmd_r_[PADR_(l_uint)];
+ char arg_l_[PADL_(l_ulong)]; l_ulong arg; char arg_r_[PADR_(l_ulong)];
};
-struct linux_ulimit_args {
- register_t dummy;
+struct linux_fcntl_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char cmd_l_[PADL_(l_uint)]; l_uint cmd; char cmd_r_[PADR_(l_uint)];
+ char arg_l_[PADL_(l_ulong)]; l_ulong arg; char arg_r_[PADR_(l_ulong)];
};
-struct linux_olduname_args {
+struct linux_olduname_args {
register_t dummy;
};
-struct linux_ustat_args {
- linux_dev_t dev; char dev_[PAD_(linux_dev_t)];
- struct linux_ustat * ubuf; char ubuf_[PAD_(struct linux_ustat *)];
+struct linux_ustat_args {
+ char dev_l_[PADL_(l_dev_t)]; l_dev_t dev; char dev_r_[PADR_(l_dev_t)];
+ char ubuf_l_[PADL_(struct l_ustat *)]; struct l_ustat * ubuf; char ubuf_r_[PADR_(struct l_ustat *)];
};
-struct linux_sigaction_args {
- int sig; char sig_[PAD_(int)];
- linux_osigaction_t * nsa; char nsa_[PAD_(linux_osigaction_t *)];
- linux_osigaction_t * osa; char osa_[PAD_(linux_osigaction_t *)];
+struct linux_sigaction_args {
+ char sig_l_[PADL_(l_int)]; l_int sig; char sig_r_[PADR_(l_int)];
+ char nsa_l_[PADL_(l_osigaction_t *)]; l_osigaction_t * nsa; char nsa_r_[PADR_(l_osigaction_t *)];
+ char osa_l_[PADL_(l_osigaction_t *)]; l_osigaction_t * osa; char osa_r_[PADR_(l_osigaction_t *)];
};
-struct linux_siggetmask_args {
+struct linux_sgetmask_args {
register_t dummy;
};
-struct linux_sigsetmask_args {
- linux_osigset_t mask; char mask_[PAD_(linux_osigset_t)];
+struct linux_ssetmask_args {
+ char mask_l_[PADL_(l_osigset_t)]; l_osigset_t mask; char mask_r_[PADR_(l_osigset_t)];
};
-struct linux_sigsuspend_args {
- int restart; char restart_[PAD_(int)];
- linux_osigset_t oldmask; char oldmask_[PAD_(linux_osigset_t)];
- linux_osigset_t mask; char mask_[PAD_(linux_osigset_t)];
+struct linux_setreuid16_args {
+ char ruid_l_[PADL_(l_uid16_t)]; l_uid16_t ruid; char ruid_r_[PADR_(l_uid16_t)];
+ char euid_l_[PADL_(l_uid16_t)]; l_uid16_t euid; char euid_r_[PADR_(l_uid16_t)];
};
-struct linux_sigpending_args {
- linux_osigset_t * mask; char mask_[PAD_(linux_osigset_t *)];
+struct linux_setregid16_args {
+ char rgid_l_[PADL_(l_gid16_t)]; l_gid16_t rgid; char rgid_r_[PADR_(l_gid16_t)];
+ char egid_l_[PADL_(l_gid16_t)]; l_gid16_t egid; char egid_r_[PADR_(l_gid16_t)];
};
-struct linux_setrlimit_args {
- u_int resource; char resource_[PAD_(u_int)];
- struct ogetrlimit * rlim; char rlim_[PAD_(struct ogetrlimit *)];
+struct linux_sigsuspend_args {
+ char hist0_l_[PADL_(l_int)]; l_int hist0; char hist0_r_[PADR_(l_int)];
+ char hist1_l_[PADL_(l_int)]; l_int hist1; char hist1_r_[PADR_(l_int)];
+ char mask_l_[PADL_(l_osigset_t)]; l_osigset_t mask; char mask_r_[PADR_(l_osigset_t)];
};
-struct linux_getrlimit_args {
- u_int resource; char resource_[PAD_(u_int)];
- struct ogetrlimit * rlim; char rlim_[PAD_(struct ogetrlimit *)];
+struct linux_sigpending_args {
+ char mask_l_[PADL_(l_osigset_t *)]; l_osigset_t * mask; char mask_r_[PADR_(l_osigset_t *)];
};
-struct linux_getgroups_args {
- u_int gidsetsize; char gidsetsize_[PAD_(u_int)];
- linux_gid_t * gidset; char gidset_[PAD_(linux_gid_t *)];
+struct linux_setrlimit_args {
+ char resource_l_[PADL_(l_uint)]; l_uint resource; char resource_r_[PADR_(l_uint)];
+ char rlim_l_[PADL_(struct l_rlimit *)]; struct l_rlimit * rlim; char rlim_r_[PADR_(struct l_rlimit *)];
};
-struct linux_setgroups_args {
- u_int gidsetsize; char gidsetsize_[PAD_(u_int)];
- linux_gid_t * gidset; char gidset_[PAD_(linux_gid_t *)];
+struct linux_old_getrlimit_args {
+ char resource_l_[PADL_(l_uint)]; l_uint resource; char resource_r_[PADR_(l_uint)];
+ char rlim_l_[PADL_(struct l_rlimit *)]; struct l_rlimit * rlim; char rlim_r_[PADR_(struct l_rlimit *)];
};
-struct linux_select_args {
- struct linux_select_argv * ptr; char ptr_[PAD_(struct linux_select_argv *)];
+struct linux_getgroups16_args {
+ char gidsetsize_l_[PADL_(l_uint)]; l_uint gidsetsize; char gidsetsize_r_[PADR_(l_uint)];
+ char gidset_l_[PADL_(l_gid16_t *)]; l_gid16_t * gidset; char gidset_r_[PADR_(l_gid16_t *)];
};
-struct linux_symlink_args {
- char * path; char path_[PAD_(char *)];
- char * to; char to_[PAD_(char *)];
+struct linux_setgroups16_args {
+ char gidsetsize_l_[PADL_(l_uint)]; l_uint gidsetsize; char gidsetsize_r_[PADR_(l_uint)];
+ char gidset_l_[PADL_(l_gid16_t *)]; l_gid16_t * gidset; char gidset_r_[PADR_(l_gid16_t *)];
};
-struct linux_readlink_args {
- char * name; char name_[PAD_(char *)];
- char * buf; char buf_[PAD_(char *)];
- int count; char count_[PAD_(int)];
+struct linux_old_select_args {
+ char ptr_l_[PADL_(struct l_old_select_argv *)]; struct l_old_select_argv * ptr; char ptr_r_[PADR_(struct l_old_select_argv *)];
};
-struct linux_uselib_args {
- char * library; char library_[PAD_(char *)];
+struct linux_symlink_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char to_l_[PADL_(char *)]; char * to; char to_r_[PADR_(char *)];
};
-struct linux_reboot_args {
- int magic1; char magic1_[PAD_(int)];
- int magic2; char magic2_[PAD_(int)];
- int opt; char opt_[PAD_(int)];
+struct linux_readlink_args {
+ char name_l_[PADL_(char *)]; char * name; char name_r_[PADR_(char *)];
+ char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
+ char count_l_[PADL_(l_int)]; l_int count; char count_r_[PADR_(l_int)];
};
-struct linux_readdir_args {
- int fd; char fd_[PAD_(int)];
- struct linux_dirent * dent; char dent_[PAD_(struct linux_dirent *)];
- unsigned int count; char count_[PAD_(unsigned int)];
+struct linux_uselib_args {
+ char library_l_[PADL_(char *)]; char * library; char library_r_[PADR_(char *)];
};
-struct linux_mmap_args {
- struct linux_mmap_argv * ptr; char ptr_[PAD_(struct linux_mmap_argv *)];
+struct linux_reboot_args {
+ char magic1_l_[PADL_(l_int)]; l_int magic1; char magic1_r_[PADR_(l_int)];
+ char magic2_l_[PADL_(l_int)]; l_int magic2; char magic2_r_[PADR_(l_int)];
+ char cmd_l_[PADL_(l_uint)]; l_uint cmd; char cmd_r_[PADR_(l_uint)];
+ char arg_l_[PADL_(void *)]; void * arg; char arg_r_[PADR_(void *)];
};
-struct linux_truncate_args {
- char * path; char path_[PAD_(char *)];
- long length; char length_[PAD_(long)];
+struct linux_readdir_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char dent_l_[PADL_(struct l_dirent *)]; struct l_dirent * dent; char dent_r_[PADR_(struct l_dirent *)];
+ char count_l_[PADL_(l_uint)]; l_uint count; char count_r_[PADR_(l_uint)];
};
-struct linux_statfs_args {
- char * path; char path_[PAD_(char *)];
- struct linux_statfs_buf * buf; char buf_[PAD_(struct linux_statfs_buf *)];
+struct linux_mmap_args {
+ char ptr_l_[PADL_(struct l_mmap_argv *)]; struct l_mmap_argv * ptr; char ptr_r_[PADR_(struct l_mmap_argv *)];
};
-struct linux_fstatfs_args {
- int fd; char fd_[PAD_(int)];
- struct linux_statfs_buf * buf; char buf_[PAD_(struct linux_statfs_buf *)];
+struct linux_truncate_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char length_l_[PADL_(l_ulong)]; l_ulong length; char length_r_[PADR_(l_ulong)];
};
-struct linux_ioperm_args {
- unsigned int start; char start_[PAD_(unsigned int)];
- unsigned int length; char length_[PAD_(unsigned int)];
- int enable; char enable_[PAD_(int)];
+struct linux_statfs_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char buf_l_[PADL_(struct l_statfs_buf *)]; struct l_statfs_buf * buf; char buf_r_[PADR_(struct l_statfs_buf *)];
};
-struct linux_socketcall_args {
- int what; char what_[PAD_(int)];
- void * args; char args_[PAD_(void *)];
+struct linux_fstatfs_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char buf_l_[PADL_(struct l_statfs_buf *)]; struct l_statfs_buf * buf; char buf_r_[PADR_(struct l_statfs_buf *)];
};
-struct linux_ksyslog_args {
- int what; char what_[PAD_(int)];
+struct linux_ioperm_args {
+ char start_l_[PADL_(l_ulong)]; l_ulong start; char start_r_[PADR_(l_ulong)];
+ char length_l_[PADL_(l_ulong)]; l_ulong length; char length_r_[PADR_(l_ulong)];
+ char enable_l_[PADL_(l_int)]; l_int enable; char enable_r_[PADR_(l_int)];
};
-struct linux_setitimer_args {
- u_int which; char which_[PAD_(u_int)];
- struct itimerval * itv; char itv_[PAD_(struct itimerval *)];
- struct itimerval * oitv; char oitv_[PAD_(struct itimerval *)];
+struct linux_socketcall_args {
+ char what_l_[PADL_(l_int)]; l_int what; char what_r_[PADR_(l_int)];
+ char args_l_[PADL_(l_ulong)]; l_ulong args; char args_r_[PADR_(l_ulong)];
};
-struct linux_getitimer_args {
- u_int which; char which_[PAD_(u_int)];
- struct itimerval * itv; char itv_[PAD_(struct itimerval *)];
+struct linux_syslog_args {
+ char type_l_[PADL_(l_int)]; l_int type; char type_r_[PADR_(l_int)];
+ char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
+ char len_l_[PADL_(l_int)]; l_int len; char len_r_[PADR_(l_int)];
};
-struct linux_newstat_args {
- char * path; char path_[PAD_(char *)];
- struct linux_newstat * buf; char buf_[PAD_(struct linux_newstat *)];
+struct linux_setitimer_args {
+ char which_l_[PADL_(l_int)]; l_int which; char which_r_[PADR_(l_int)];
+ char itv_l_[PADL_(struct l_itimerval *)]; struct l_itimerval * itv; char itv_r_[PADR_(struct l_itimerval *)];
+ char oitv_l_[PADL_(struct l_itimerval *)]; struct l_itimerval * oitv; char oitv_r_[PADR_(struct l_itimerval *)];
};
-struct linux_newlstat_args {
- char * path; char path_[PAD_(char *)];
- struct linux_newstat * buf; char buf_[PAD_(struct linux_newstat *)];
+struct linux_getitimer_args {
+ char which_l_[PADL_(l_int)]; l_int which; char which_r_[PADR_(l_int)];
+ char itv_l_[PADL_(struct l_itimerval *)]; struct l_itimerval * itv; char itv_r_[PADR_(struct l_itimerval *)];
};
-struct linux_newfstat_args {
- int fd; char fd_[PAD_(int)];
- struct linux_newstat * buf; char buf_[PAD_(struct linux_newstat *)];
+struct linux_newstat_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char buf_l_[PADL_(struct l_newstat *)]; struct l_newstat * buf; char buf_r_[PADR_(struct l_newstat *)];
};
-struct linux_uname_args {
- register_t dummy;
+struct linux_newlstat_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char buf_l_[PADL_(struct l_newstat *)]; struct l_newstat * buf; char buf_r_[PADR_(struct l_newstat *)];
};
-struct linux_iopl_args {
- int level; char level_[PAD_(int)];
+struct linux_newfstat_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char buf_l_[PADL_(struct l_newstat *)]; struct l_newstat * buf; char buf_r_[PADR_(struct l_newstat *)];
};
-struct linux_vhangup_args {
+struct linux_uname_args {
register_t dummy;
};
-struct linux_idle_args {
+struct linux_iopl_args {
+ char level_l_[PADL_(l_ulong)]; l_ulong level; char level_r_[PADR_(l_ulong)];
+};
+struct linux_vhangup_args {
register_t dummy;
};
-struct linux_vm86old_args {
+struct linux_vm86old_args {
register_t dummy;
};
-struct linux_wait4_args {
- int pid; char pid_[PAD_(int)];
- int * status; char status_[PAD_(int *)];
- int options; char options_[PAD_(int)];
- struct rusage * rusage; char rusage_[PAD_(struct rusage *)];
+struct linux_wait4_args {
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+ char status_l_[PADL_(l_uint *)]; l_uint * status; char status_r_[PADR_(l_uint *)];
+ char options_l_[PADL_(l_int)]; l_int options; char options_r_[PADR_(l_int)];
+ char rusage_l_[PADL_(struct l_rusage *)]; struct l_rusage * rusage; char rusage_r_[PADR_(struct l_rusage *)];
};
-struct linux_swapoff_args {
+struct linux_swapoff_args {
register_t dummy;
};
-struct linux_sysinfo_args {
- struct sysinfo * info; char info_[PAD_(struct sysinfo *)];
+struct linux_sysinfo_args {
+ char info_l_[PADL_(struct l_sysinfo *)]; struct l_sysinfo * info; char info_r_[PADR_(struct l_sysinfo *)];
};
-struct linux_ipc_args {
- int what; char what_[PAD_(int)];
- int arg1; char arg1_[PAD_(int)];
- int arg2; char arg2_[PAD_(int)];
- int arg3; char arg3_[PAD_(int)];
- caddr_t ptr; char ptr_[PAD_(caddr_t)];
+struct linux_ipc_args {
+ char what_l_[PADL_(l_uint)]; l_uint what; char what_r_[PADR_(l_uint)];
+ char arg1_l_[PADL_(l_int)]; l_int arg1; char arg1_r_[PADR_(l_int)];
+ char arg2_l_[PADL_(l_int)]; l_int arg2; char arg2_r_[PADR_(l_int)];
+ char arg3_l_[PADL_(l_int)]; l_int arg3; char arg3_r_[PADR_(l_int)];
+ char ptr_l_[PADL_(void *)]; void * ptr; char ptr_r_[PADR_(void *)];
+ char arg5_l_[PADL_(l_long)]; l_long arg5; char arg5_r_[PADR_(l_long)];
};
-struct linux_sigreturn_args {
- struct linux_sigframe * sfp; char sfp_[PAD_(struct linux_sigframe *)];
+struct linux_sigreturn_args {
+ char sfp_l_[PADL_(struct l_sigframe *)]; struct l_sigframe * sfp; char sfp_r_[PADR_(struct l_sigframe *)];
};
-struct linux_clone_args {
- int flags; char flags_[PAD_(int)];
- void * stack; char stack_[PAD_(void *)];
+struct linux_clone_args {
+ char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)];
+ char stack_l_[PADL_(void *)]; void * stack; char stack_r_[PADR_(void *)];
};
-struct linux_newuname_args {
- struct linux_new_utsname * buf; char buf_[PAD_(struct linux_new_utsname *)];
+struct linux_newuname_args {
+ char buf_l_[PADL_(struct l_new_utsname *)]; struct l_new_utsname * buf; char buf_r_[PADR_(struct l_new_utsname *)];
};
-struct linux_modify_ldt_args {
- int func; char func_[PAD_(int)];
- void * ptr; char ptr_[PAD_(void *)];
- size_t bytecount; char bytecount_[PAD_(size_t)];
+struct linux_modify_ldt_args {
+ char func_l_[PADL_(l_int)]; l_int func; char func_r_[PADR_(l_int)];
+ char ptr_l_[PADL_(void *)]; void * ptr; char ptr_r_[PADR_(void *)];
+ char bytecount_l_[PADL_(l_ulong)]; l_ulong bytecount; char bytecount_r_[PADR_(l_ulong)];
};
-struct linux_adjtimex_args {
+struct linux_adjtimex_args {
register_t dummy;
};
-struct linux_sigprocmask_args {
- int how; char how_[PAD_(int)];
- linux_osigset_t * mask; char mask_[PAD_(linux_osigset_t *)];
- linux_osigset_t * omask; char omask_[PAD_(linux_osigset_t *)];
+struct linux_sigprocmask_args {
+ char how_l_[PADL_(l_int)]; l_int how; char how_r_[PADR_(l_int)];
+ char mask_l_[PADL_(l_osigset_t *)]; l_osigset_t * mask; char mask_r_[PADR_(l_osigset_t *)];
+ char omask_l_[PADL_(l_osigset_t *)]; l_osigset_t * omask; char omask_r_[PADR_(l_osigset_t *)];
};
-struct linux_create_module_args {
+struct linux_create_module_args {
register_t dummy;
};
-struct linux_init_module_args {
+struct linux_init_module_args {
register_t dummy;
};
-struct linux_delete_module_args {
+struct linux_delete_module_args {
register_t dummy;
};
-struct linux_get_kernel_syms_args {
+struct linux_get_kernel_syms_args {
register_t dummy;
};
-struct linux_quotactl_args {
+struct linux_quotactl_args {
register_t dummy;
};
-struct linux_getpgid_args {
- int pid; char pid_[PAD_(int)];
+struct linux_getpgid_args {
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
};
-struct linux_bdflush_args {
+struct linux_bdflush_args {
register_t dummy;
};
-struct linux_sysfs_args {
- int option; char option_[PAD_(int)];
- u_long arg1; char arg1_[PAD_(u_long)];
- u_long arg2; char arg2_[PAD_(u_long)];
+struct linux_sysfs_args {
+ char option_l_[PADL_(l_int)]; l_int option; char option_r_[PADR_(l_int)];
+ char arg1_l_[PADL_(l_ulong)]; l_ulong arg1; char arg1_r_[PADR_(l_ulong)];
+ char arg2_l_[PADL_(l_ulong)]; l_ulong arg2; char arg2_r_[PADR_(l_ulong)];
};
-struct linux_personality_args {
- int per; char per_[PAD_(int)];
+struct linux_personality_args {
+ char per_l_[PADL_(l_ulong)]; l_ulong per; char per_r_[PADR_(l_ulong)];
};
-struct linux_afs_syscall_args {
- register_t dummy;
+struct linux_setfsuid16_args {
+ char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)];
};
-struct linux_setfsuid_args {
- linux_uid_t uid; char uid_[PAD_(linux_uid_t)];
+struct linux_setfsgid16_args {
+ char gid_l_[PADL_(l_gid16_t)]; l_gid16_t gid; char gid_r_[PADR_(l_gid16_t)];
};
-struct linux_setfsgid_args {
- linux_gid_t gid; char gid_[PAD_(linux_gid_t)];
+struct linux_llseek_args {
+ char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)];
+ char ohigh_l_[PADL_(l_ulong)]; l_ulong ohigh; char ohigh_r_[PADR_(l_ulong)];
+ char olow_l_[PADL_(l_ulong)]; l_ulong olow; char olow_r_[PADR_(l_ulong)];
+ char res_l_[PADL_(l_loff_t *)]; l_loff_t * res; char res_r_[PADR_(l_loff_t *)];
+ char whence_l_[PADL_(l_uint)]; l_uint whence; char whence_r_[PADR_(l_uint)];
};
-struct linux_llseek_args {
- int fd; char fd_[PAD_(int)];
- u_int32_t ohigh; char ohigh_[PAD_(u_int32_t)];
- u_int32_t olow; char olow_[PAD_(u_int32_t)];
- caddr_t res; char res_[PAD_(caddr_t)];
- int whence; char whence_[PAD_(int)];
+struct linux_getdents_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char dent_l_[PADL_(void *)]; void * dent; char dent_r_[PADR_(void *)];
+ char count_l_[PADL_(l_uint)]; l_uint count; char count_r_[PADR_(l_uint)];
};
-struct linux_getdents_args {
- int fd; char fd_[PAD_(int)];
- void * dent; char dent_[PAD_(void *)];
- unsigned count; char count_[PAD_(unsigned)];
+struct linux_select_args {
+ char nfds_l_[PADL_(l_int)]; l_int nfds; char nfds_r_[PADR_(l_int)];
+ char readfds_l_[PADL_(l_fd_set *)]; l_fd_set * readfds; char readfds_r_[PADR_(l_fd_set *)];
+ char writefds_l_[PADL_(l_fd_set *)]; l_fd_set * writefds; char writefds_r_[PADR_(l_fd_set *)];
+ char exceptfds_l_[PADL_(l_fd_set *)]; l_fd_set * exceptfds; char exceptfds_r_[PADR_(l_fd_set *)];
+ char timeout_l_[PADL_(struct l_timeval *)]; struct l_timeval * timeout; char timeout_r_[PADR_(struct l_timeval *)];
};
-struct linux_newselect_args {
- int nfds; char nfds_[PAD_(int)];
- fd_set * readfds; char readfds_[PAD_(fd_set *)];
- fd_set * writefds; char writefds_[PAD_(fd_set *)];
- fd_set * exceptfds; char exceptfds_[PAD_(fd_set *)];
- struct timeval * timeout; char timeout_[PAD_(struct timeval *)];
+struct linux_msync_args {
+ char addr_l_[PADL_(l_ulong)]; l_ulong addr; char addr_r_[PADR_(l_ulong)];
+ char len_l_[PADL_(l_size_t)]; l_size_t len; char len_r_[PADR_(l_size_t)];
+ char fl_l_[PADL_(l_int)]; l_int fl; char fl_r_[PADR_(l_int)];
};
-struct linux_msync_args {
- caddr_t addr; char addr_[PAD_(caddr_t)];
- int len; char len_[PAD_(int)];
- int fl; char fl_[PAD_(int)];
+struct linux_getsid_args {
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
};
-struct linux_getsid_args {
- linux_pid_t pid; char pid_[PAD_(linux_pid_t)];
+struct linux_fdatasync_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
};
-struct linux_fdatasync_args {
- int fd; char fd_[PAD_(int)];
+struct linux_sysctl_args {
+ char args_l_[PADL_(struct l___sysctl_args *)]; struct l___sysctl_args * args; char args_r_[PADR_(struct l___sysctl_args *)];
};
-struct linux_sysctl_args {
- register_t dummy;
+struct linux_sched_setscheduler_args {
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+ char policy_l_[PADL_(l_int)]; l_int policy; char policy_r_[PADR_(l_int)];
+ char param_l_[PADL_(struct l_sched_param *)]; struct l_sched_param * param; char param_r_[PADR_(struct l_sched_param *)];
};
-struct linux_sched_setscheduler_args {
- pid_t pid; char pid_[PAD_(pid_t)];
- int policy; char policy_[PAD_(int)];
- const struct sched_param * param; char param_[PAD_(const struct sched_param *)];
+struct linux_sched_getscheduler_args {
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
};
-struct linux_sched_getscheduler_args {
- pid_t pid; char pid_[PAD_(pid_t)];
+struct linux_sched_get_priority_max_args {
+ char policy_l_[PADL_(l_int)]; l_int policy; char policy_r_[PADR_(l_int)];
};
-struct linux_sched_get_priority_max_args {
- int policy; char policy_[PAD_(int)];
+struct linux_sched_get_priority_min_args {
+ char policy_l_[PADL_(l_int)]; l_int policy; char policy_r_[PADR_(l_int)];
};
-struct linux_sched_get_priority_min_args {
- int policy; char policy_[PAD_(int)];
+struct linux_mremap_args {
+ char addr_l_[PADL_(l_ulong)]; l_ulong addr; char addr_r_[PADR_(l_ulong)];
+ char old_len_l_[PADL_(l_ulong)]; l_ulong old_len; char old_len_r_[PADR_(l_ulong)];
+ char new_len_l_[PADL_(l_ulong)]; l_ulong new_len; char new_len_r_[PADR_(l_ulong)];
+ char flags_l_[PADL_(l_ulong)]; l_ulong flags; char flags_r_[PADR_(l_ulong)];
+ char new_addr_l_[PADL_(l_ulong)]; l_ulong new_addr; char new_addr_r_[PADR_(l_ulong)];
};
-struct linux_mremap_args {
- caddr_t addr; char addr_[PAD_(caddr_t)];
- int old_len; char old_len_[PAD_(int)];
- int new_len; char new_len_[PAD_(int)];
- int flags; char flags_[PAD_(int)];
+struct linux_setresuid16_args {
+ char ruid_l_[PADL_(l_uid16_t)]; l_uid16_t ruid; char ruid_r_[PADR_(l_uid16_t)];
+ char euid_l_[PADL_(l_uid16_t)]; l_uid16_t euid; char euid_r_[PADR_(l_uid16_t)];
+ char suid_l_[PADL_(l_uid16_t)]; l_uid16_t suid; char suid_r_[PADR_(l_uid16_t)];
};
-struct linux_getresuid_args {
- linux_uid_t * ruid; char ruid_[PAD_(linux_uid_t *)];
- linux_uid_t * euid; char euid_[PAD_(linux_uid_t *)];
- linux_uid_t * suid; char suid_[PAD_(linux_uid_t *)];
+struct linux_getresuid16_args {
+ char ruid_l_[PADL_(l_uid16_t *)]; l_uid16_t * ruid; char ruid_r_[PADR_(l_uid16_t *)];
+ char euid_l_[PADL_(l_uid16_t *)]; l_uid16_t * euid; char euid_r_[PADR_(l_uid16_t *)];
+ char suid_l_[PADL_(l_uid16_t *)]; l_uid16_t * suid; char suid_r_[PADR_(l_uid16_t *)];
};
-struct linux_vm86_args {
+struct linux_vm86_args {
register_t dummy;
};
-struct linux_query_module_args {
+struct linux_query_module_args {
register_t dummy;
};
-struct linux_nfsservctl_args {
+struct linux_nfsservctl_args {
register_t dummy;
};
-struct linux_getresgid_args {
- linux_gid_t * rgid; char rgid_[PAD_(linux_gid_t *)];
- linux_gid_t * egid; char egid_[PAD_(linux_gid_t *)];
- linux_gid_t * sgid; char sgid_[PAD_(linux_gid_t *)];
+struct linux_setresgid16_args {
+ char rgid_l_[PADL_(l_gid16_t)]; l_gid16_t rgid; char rgid_r_[PADR_(l_gid16_t)];
+ char egid_l_[PADL_(l_gid16_t)]; l_gid16_t egid; char egid_r_[PADR_(l_gid16_t)];
+ char sgid_l_[PADL_(l_gid16_t)]; l_gid16_t sgid; char sgid_r_[PADR_(l_gid16_t)];
};
-struct linux_prctl_args {
+struct linux_getresgid16_args {
+ char rgid_l_[PADL_(l_gid16_t *)]; l_gid16_t * rgid; char rgid_r_[PADR_(l_gid16_t *)];
+ char egid_l_[PADL_(l_gid16_t *)]; l_gid16_t * egid; char egid_r_[PADR_(l_gid16_t *)];
+ char sgid_l_[PADL_(l_gid16_t *)]; l_gid16_t * sgid; char sgid_r_[PADR_(l_gid16_t *)];
+};
+struct linux_prctl_args {
register_t dummy;
};
-struct linux_rt_sigreturn_args {
- struct linux_ucontext * ucp; char ucp_[PAD_(struct linux_ucontext *)];
+struct linux_rt_sigreturn_args {
+ char ucp_l_[PADL_(struct l_ucontext *)]; struct l_ucontext * ucp; char ucp_r_[PADR_(struct l_ucontext *)];
};
-struct linux_rt_sigaction_args {
- int sig; char sig_[PAD_(int)];
- linux_sigaction_t * act; char act_[PAD_(linux_sigaction_t *)];
- linux_sigaction_t * oact; char oact_[PAD_(linux_sigaction_t *)];
- size_t sigsetsize; char sigsetsize_[PAD_(size_t)];
+struct linux_rt_sigaction_args {
+ char sig_l_[PADL_(l_int)]; l_int sig; char sig_r_[PADR_(l_int)];
+ char act_l_[PADL_(l_sigaction_t *)]; l_sigaction_t * act; char act_r_[PADR_(l_sigaction_t *)];
+ char oact_l_[PADL_(l_sigaction_t *)]; l_sigaction_t * oact; char oact_r_[PADR_(l_sigaction_t *)];
+ char sigsetsize_l_[PADL_(l_size_t)]; l_size_t sigsetsize; char sigsetsize_r_[PADR_(l_size_t)];
};
-struct linux_rt_sigprocmask_args {
- int how; char how_[PAD_(int)];
- linux_sigset_t * mask; char mask_[PAD_(linux_sigset_t *)];
- linux_sigset_t * omask; char omask_[PAD_(linux_sigset_t *)];
- size_t sigsetsize; char sigsetsize_[PAD_(size_t)];
+struct linux_rt_sigprocmask_args {
+ char how_l_[PADL_(l_int)]; l_int how; char how_r_[PADR_(l_int)];
+ char mask_l_[PADL_(l_sigset_t *)]; l_sigset_t * mask; char mask_r_[PADR_(l_sigset_t *)];
+ char omask_l_[PADL_(l_sigset_t *)]; l_sigset_t * omask; char omask_r_[PADR_(l_sigset_t *)];
+ char sigsetsize_l_[PADL_(l_size_t)]; l_size_t sigsetsize; char sigsetsize_r_[PADR_(l_size_t)];
};
-struct linux_rt_sigpending_args {
+struct linux_rt_sigpending_args {
register_t dummy;
};
-struct linux_rt_sigtimedwait_args {
+struct linux_rt_sigtimedwait_args {
register_t dummy;
};
-struct linux_rt_sigqueueinfo_args {
+struct linux_rt_sigqueueinfo_args {
register_t dummy;
};
-struct linux_rt_sigsuspend_args {
- linux_sigset_t * newset; char newset_[PAD_(linux_sigset_t *)];
- size_t sigsetsize; char sigsetsize_[PAD_(size_t)];
+struct linux_rt_sigsuspend_args {
+ char newset_l_[PADL_(l_sigset_t *)]; l_sigset_t * newset; char newset_r_[PADR_(l_sigset_t *)];
+ char sigsetsize_l_[PADL_(l_size_t)]; l_size_t sigsetsize; char sigsetsize_r_[PADR_(l_size_t)];
};
-struct linux_pread_args {
- int fd; char fd_[PAD_(int)];
- char * buf; char buf_[PAD_(char *)];
- size_t nbyte; char nbyte_[PAD_(size_t)];
- off_t offset; char offset_[PAD_(off_t)];
+struct linux_pread_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
+ char nbyte_l_[PADL_(l_size_t)]; l_size_t nbyte; char nbyte_r_[PADR_(l_size_t)];
+ char offset_l_[PADL_(l_loff_t)]; l_loff_t offset; char offset_r_[PADR_(l_loff_t)];
};
-struct linux_pwrite_args {
- int fd; char fd_[PAD_(int)];
- const char * buf; char buf_[PAD_(const char *)];
- size_t nbyte; char nbyte_[PAD_(size_t)];
- off_t offset; char offset_[PAD_(off_t)];
+struct linux_pwrite_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
+ char nbyte_l_[PADL_(l_size_t)]; l_size_t nbyte; char nbyte_r_[PADR_(l_size_t)];
+ char offset_l_[PADL_(l_loff_t)]; l_loff_t offset; char offset_r_[PADR_(l_loff_t)];
};
-struct linux_chown_args {
- char * path; char path_[PAD_(char *)];
- int uid; char uid_[PAD_(int)];
- int gid; char gid_[PAD_(int)];
+struct linux_chown16_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)];
+ char gid_l_[PADL_(l_gid16_t)]; l_gid16_t gid; char gid_r_[PADR_(l_gid16_t)];
};
-struct linux_getcwd_args {
- char * buf; char buf_[PAD_(char *)];
- unsigned long bufsize; char bufsize_[PAD_(unsigned long)];
+struct linux_getcwd_args {
+ char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
+ char bufsize_l_[PADL_(l_ulong)]; l_ulong bufsize; char bufsize_r_[PADR_(l_ulong)];
};
-struct linux_capget_args {
+struct linux_capget_args {
register_t dummy;
};
-struct linux_capset_args {
+struct linux_capset_args {
register_t dummy;
};
-struct linux_sigaltstack_args {
- const linux_stack_t * uss; char uss_[PAD_(const linux_stack_t *)];
- linux_stack_t * uoss; char uoss_[PAD_(linux_stack_t *)];
+struct linux_sigaltstack_args {
+ char uss_l_[PADL_(l_stack_t *)]; l_stack_t * uss; char uss_r_[PADR_(l_stack_t *)];
+ char uoss_l_[PADL_(l_stack_t *)]; l_stack_t * uoss; char uoss_r_[PADR_(l_stack_t *)];
};
-struct linux_sendfile_args {
+struct linux_sendfile_args {
register_t dummy;
};
-struct linux_getpmsg_args {
+struct linux_vfork_args {
register_t dummy;
};
-struct linux_putpmsg_args {
- register_t dummy;
+struct linux_getrlimit_args {
+ char resource_l_[PADL_(l_uint)]; l_uint resource; char resource_r_[PADR_(l_uint)];
+ char rlim_l_[PADL_(struct l_rlimit *)]; struct l_rlimit * rlim; char rlim_r_[PADR_(struct l_rlimit *)];
};
-struct linux_vfork_args {
- register_t dummy;
+struct linux_mmap2_args {
+ char addr_l_[PADL_(l_ulong)]; l_ulong addr; char addr_r_[PADR_(l_ulong)];
+ char len_l_[PADL_(l_ulong)]; l_ulong len; char len_r_[PADR_(l_ulong)];
+ char prot_l_[PADL_(l_ulong)]; l_ulong prot; char prot_r_[PADR_(l_ulong)];
+ char flags_l_[PADL_(l_ulong)]; l_ulong flags; char flags_r_[PADR_(l_ulong)];
+ char fd_l_[PADL_(l_ulong)]; l_ulong fd; char fd_r_[PADR_(l_ulong)];
+ char pgoff_l_[PADL_(l_ulong)]; l_ulong pgoff; char pgoff_r_[PADR_(l_ulong)];
};
-struct linux_ugetrlimit_args {
- register_t dummy;
+struct linux_truncate64_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char length_l_[PADL_(l_loff_t)]; l_loff_t length; char length_r_[PADR_(l_loff_t)];
};
-struct linux_mmap2_args {
- register_t dummy;
+struct linux_ftruncate64_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char length_l_[PADL_(l_loff_t)]; l_loff_t length; char length_r_[PADR_(l_loff_t)];
};
-struct linux_truncate64_args {
- register_t dummy;
+struct linux_stat64_args {
+ char filename_l_[PADL_(char *)]; char * filename; char filename_r_[PADR_(char *)];
+ char statbuf_l_[PADL_(struct l_stat64 *)]; struct l_stat64 * statbuf; char statbuf_r_[PADR_(struct l_stat64 *)];
+ char flags_l_[PADL_(l_long)]; l_long flags; char flags_r_[PADR_(l_long)];
};
-struct linux_ftruncate64_args {
- register_t dummy;
+struct linux_lstat64_args {
+ char filename_l_[PADL_(char *)]; char * filename; char filename_r_[PADR_(char *)];
+ char statbuf_l_[PADL_(struct l_stat64 *)]; struct l_stat64 * statbuf; char statbuf_r_[PADR_(struct l_stat64 *)];
+ char flags_l_[PADL_(l_long)]; l_long flags; char flags_r_[PADR_(l_long)];
+};
+struct linux_fstat64_args {
+ char fd_l_[PADL_(l_ulong)]; l_ulong fd; char fd_r_[PADR_(l_ulong)];
+ char statbuf_l_[PADL_(struct l_stat64 *)]; struct l_stat64 * statbuf; char statbuf_r_[PADR_(struct l_stat64 *)];
+ char flags_l_[PADL_(l_long)]; l_long flags; char flags_r_[PADR_(l_long)];
};
-struct linux_stat64_args {
+struct linux_lchown_args {
+ char filename_l_[PADL_(char *)]; char * filename; char filename_r_[PADR_(char *)];
+ char user_l_[PADL_(l_uid_t)]; l_uid_t user; char user_r_[PADR_(l_uid_t)];
+ char group_l_[PADL_(l_gid_t)]; l_gid_t group; char group_r_[PADR_(l_gid_t)];
+};
+struct linux_getuid_args {
register_t dummy;
};
-struct linux_lstat64_args {
+struct linux_getgid_args {
register_t dummy;
};
-struct linux_fstat64_args {
+struct linux_getgroups_args {
+ char gidsetsize_l_[PADL_(l_int)]; l_int gidsetsize; char gidsetsize_r_[PADR_(l_int)];
+ char grouplist_l_[PADL_(l_gid_t *)]; l_gid_t * grouplist; char grouplist_r_[PADR_(l_gid_t *)];
+};
+struct linux_setgroups_args {
+ char gidsetsize_l_[PADL_(l_int)]; l_int gidsetsize; char gidsetsize_r_[PADR_(l_int)];
+ char grouplist_l_[PADL_(l_gid_t *)]; l_gid_t * grouplist; char grouplist_r_[PADR_(l_gid_t *)];
+};
+struct linux_fchown_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char user_l_[PADL_(l_uid_t)]; l_uid_t user; char user_r_[PADR_(l_uid_t)];
+ char group_l_[PADL_(l_gid_t)]; l_gid_t group; char group_r_[PADR_(l_gid_t)];
+};
+struct linux_chown_args {
+ char filename_l_[PADL_(char *)]; char * filename; char filename_r_[PADR_(char *)];
+ char user_l_[PADL_(l_uid_t)]; l_uid_t user; char user_r_[PADR_(l_uid_t)];
+ char group_l_[PADL_(l_gid_t)]; l_gid_t group; char group_r_[PADR_(l_gid_t)];
+};
+struct linux_setfsuid_args {
+ char uid_l_[PADL_(l_uid_t)]; l_uid_t uid; char uid_r_[PADR_(l_uid_t)];
+};
+struct linux_setfsgid_args {
+ char gid_l_[PADL_(l_gid_t)]; l_gid_t gid; char gid_r_[PADR_(l_gid_t)];
+};
+struct linux_pivot_root_args {
+ char new_root_l_[PADL_(char *)]; char * new_root; char new_root_r_[PADR_(char *)];
+ char put_old_l_[PADL_(char *)]; char * put_old; char put_old_r_[PADR_(char *)];
+};
+struct linux_mincore_args {
+ char start_l_[PADL_(l_ulong)]; l_ulong start; char start_r_[PADR_(l_ulong)];
+ char len_l_[PADL_(l_size_t)]; l_size_t len; char len_r_[PADR_(l_size_t)];
+ char vec_l_[PADL_(u_char *)]; u_char * vec; char vec_r_[PADR_(u_char *)];
+};
+struct linux_madvise_args {
register_t dummy;
};
-int linux_setup __P((struct proc *, struct linux_setup_args *));
+struct linux_getdents64_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char dirent_l_[PADL_(void *)]; void * dirent; char dirent_r_[PADR_(void *)];
+ char count_l_[PADL_(l_uint)]; l_uint count; char count_r_[PADR_(l_uint)];
+};
+struct linux_fcntl64_args {
+ char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
+ char cmd_l_[PADL_(l_uint)]; l_uint cmd; char cmd_r_[PADR_(l_uint)];
+ char arg_l_[PADL_(l_ulong)]; l_ulong arg; char arg_r_[PADR_(l_ulong)];
+};
int linux_fork __P((struct proc *, struct linux_fork_args *));
int linux_open __P((struct proc *, struct linux_open_args *));
int linux_waitpid __P((struct proc *, struct linux_waitpid_args *));
@@ -571,50 +654,51 @@ int linux_chdir __P((struct proc *, struct linux_chdir_args *));
int linux_time __P((struct proc *, struct linux_time_args *));
int linux_mknod __P((struct proc *, struct linux_mknod_args *));
int linux_chmod __P((struct proc *, struct linux_chmod_args *));
-int linux_lchown __P((struct proc *, struct linux_lchown_args *));
-int linux_break __P((struct proc *, struct linux_break_args *));
+int linux_lchown16 __P((struct proc *, struct linux_lchown16_args *));
int linux_stat __P((struct proc *, struct linux_stat_args *));
int linux_lseek __P((struct proc *, struct linux_lseek_args *));
+int linux_getpid __P((struct proc *, struct linux_getpid_args *));
int linux_mount __P((struct proc *, struct linux_mount_args *));
-int linux_umount __P((struct proc *, struct linux_umount_args *));
+int linux_oldumount __P((struct proc *, struct linux_oldumount_args *));
+int linux_setuid16 __P((struct proc *, struct linux_setuid16_args *));
+int linux_getuid16 __P((struct proc *, struct linux_getuid16_args *));
int linux_stime __P((struct proc *, struct linux_stime_args *));
int linux_ptrace __P((struct proc *, struct linux_ptrace_args *));
int linux_alarm __P((struct proc *, struct linux_alarm_args *));
int linux_fstat __P((struct proc *, struct linux_fstat_args *));
int linux_pause __P((struct proc *, struct linux_pause_args *));
int linux_utime __P((struct proc *, struct linux_utime_args *));
-int linux_stty __P((struct proc *, struct linux_stty_args *));
-int linux_gtty __P((struct proc *, struct linux_gtty_args *));
int linux_access __P((struct proc *, struct linux_access_args *));
int linux_nice __P((struct proc *, struct linux_nice_args *));
-int linux_ftime __P((struct proc *, struct linux_ftime_args *));
int linux_kill __P((struct proc *, struct linux_kill_args *));
int linux_rename __P((struct proc *, struct linux_rename_args *));
int linux_mkdir __P((struct proc *, struct linux_mkdir_args *));
int linux_rmdir __P((struct proc *, struct linux_rmdir_args *));
int linux_pipe __P((struct proc *, struct linux_pipe_args *));
int linux_times __P((struct proc *, struct linux_times_args *));
-int linux_prof __P((struct proc *, struct linux_prof_args *));
int linux_brk __P((struct proc *, struct linux_brk_args *));
+int linux_setgid16 __P((struct proc *, struct linux_setgid16_args *));
+int linux_getgid16 __P((struct proc *, struct linux_getgid16_args *));
int linux_signal __P((struct proc *, struct linux_signal_args *));
-int linux_umount2 __P((struct proc *, struct linux_umount2_args *));
-int linux_lock __P((struct proc *, struct linux_lock_args *));
+int linux_geteuid16 __P((struct proc *, struct linux_geteuid16_args *));
+int linux_getegid16 __P((struct proc *, struct linux_getegid16_args *));
+int linux_umount __P((struct proc *, struct linux_umount_args *));
int linux_ioctl __P((struct proc *, struct linux_ioctl_args *));
int linux_fcntl __P((struct proc *, struct linux_fcntl_args *));
-int linux_mpx __P((struct proc *, struct linux_mpx_args *));
-int linux_ulimit __P((struct proc *, struct linux_ulimit_args *));
int linux_olduname __P((struct proc *, struct linux_olduname_args *));
int linux_ustat __P((struct proc *, struct linux_ustat_args *));
int linux_sigaction __P((struct proc *, struct linux_sigaction_args *));
-int linux_siggetmask __P((struct proc *, struct linux_siggetmask_args *));
-int linux_sigsetmask __P((struct proc *, struct linux_sigsetmask_args *));
+int linux_sgetmask __P((struct proc *, struct linux_sgetmask_args *));
+int linux_ssetmask __P((struct proc *, struct linux_ssetmask_args *));
+int linux_setreuid16 __P((struct proc *, struct linux_setreuid16_args *));
+int linux_setregid16 __P((struct proc *, struct linux_setregid16_args *));
int linux_sigsuspend __P((struct proc *, struct linux_sigsuspend_args *));
int linux_sigpending __P((struct proc *, struct linux_sigpending_args *));
int linux_setrlimit __P((struct proc *, struct linux_setrlimit_args *));
-int linux_getrlimit __P((struct proc *, struct linux_getrlimit_args *));
-int linux_getgroups __P((struct proc *, struct linux_getgroups_args *));
-int linux_setgroups __P((struct proc *, struct linux_setgroups_args *));
-int linux_select __P((struct proc *, struct linux_select_args *));
+int linux_old_getrlimit __P((struct proc *, struct linux_old_getrlimit_args *));
+int linux_getgroups16 __P((struct proc *, struct linux_getgroups16_args *));
+int linux_setgroups16 __P((struct proc *, struct linux_setgroups16_args *));
+int linux_old_select __P((struct proc *, struct linux_old_select_args *));
int linux_symlink __P((struct proc *, struct linux_symlink_args *));
int linux_readlink __P((struct proc *, struct linux_readlink_args *));
int linux_uselib __P((struct proc *, struct linux_uselib_args *));
@@ -626,7 +710,7 @@ int linux_statfs __P((struct proc *, struct linux_statfs_args *));
int linux_fstatfs __P((struct proc *, struct linux_fstatfs_args *));
int linux_ioperm __P((struct proc *, struct linux_ioperm_args *));
int linux_socketcall __P((struct proc *, struct linux_socketcall_args *));
-int linux_ksyslog __P((struct proc *, struct linux_ksyslog_args *));
+int linux_syslog __P((struct proc *, struct linux_syslog_args *));
int linux_setitimer __P((struct proc *, struct linux_setitimer_args *));
int linux_getitimer __P((struct proc *, struct linux_getitimer_args *));
int linux_newstat __P((struct proc *, struct linux_newstat_args *));
@@ -635,7 +719,6 @@ int linux_newfstat __P((struct proc *, struct linux_newfstat_args *));
int linux_uname __P((struct proc *, struct linux_uname_args *));
int linux_iopl __P((struct proc *, struct linux_iopl_args *));
int linux_vhangup __P((struct proc *, struct linux_vhangup_args *));
-int linux_idle __P((struct proc *, struct linux_idle_args *));
int linux_vm86old __P((struct proc *, struct linux_vm86old_args *));
int linux_wait4 __P((struct proc *, struct linux_wait4_args *));
int linux_swapoff __P((struct proc *, struct linux_swapoff_args *));
@@ -656,12 +739,11 @@ int linux_getpgid __P((struct proc *, struct linux_getpgid_args *));
int linux_bdflush __P((struct proc *, struct linux_bdflush_args *));
int linux_sysfs __P((struct proc *, struct linux_sysfs_args *));
int linux_personality __P((struct proc *, struct linux_personality_args *));
-int linux_afs_syscall __P((struct proc *, struct linux_afs_syscall_args *));
-int linux_setfsuid __P((struct proc *, struct linux_setfsuid_args *));
-int linux_setfsgid __P((struct proc *, struct linux_setfsgid_args *));
+int linux_setfsuid16 __P((struct proc *, struct linux_setfsuid16_args *));
+int linux_setfsgid16 __P((struct proc *, struct linux_setfsgid16_args *));
int linux_llseek __P((struct proc *, struct linux_llseek_args *));
int linux_getdents __P((struct proc *, struct linux_getdents_args *));
-int linux_newselect __P((struct proc *, struct linux_newselect_args *));
+int linux_select __P((struct proc *, struct linux_select_args *));
int linux_msync __P((struct proc *, struct linux_msync_args *));
int linux_getsid __P((struct proc *, struct linux_getsid_args *));
int linux_fdatasync __P((struct proc *, struct linux_fdatasync_args *));
@@ -671,11 +753,13 @@ int linux_sched_getscheduler __P((struct proc *, struct linux_sched_getscheduler
int linux_sched_get_priority_max __P((struct proc *, struct linux_sched_get_priority_max_args *));
int linux_sched_get_priority_min __P((struct proc *, struct linux_sched_get_priority_min_args *));
int linux_mremap __P((struct proc *, struct linux_mremap_args *));
-int linux_getresuid __P((struct proc *, struct linux_getresuid_args *));
+int linux_setresuid16 __P((struct proc *, struct linux_setresuid16_args *));
+int linux_getresuid16 __P((struct proc *, struct linux_getresuid16_args *));
int linux_vm86 __P((struct proc *, struct linux_vm86_args *));
int linux_query_module __P((struct proc *, struct linux_query_module_args *));
int linux_nfsservctl __P((struct proc *, struct linux_nfsservctl_args *));
-int linux_getresgid __P((struct proc *, struct linux_getresgid_args *));
+int linux_setresgid16 __P((struct proc *, struct linux_setresgid16_args *));
+int linux_getresgid16 __P((struct proc *, struct linux_getresgid16_args *));
int linux_prctl __P((struct proc *, struct linux_prctl_args *));
int linux_rt_sigreturn __P((struct proc *, struct linux_rt_sigreturn_args *));
int linux_rt_sigaction __P((struct proc *, struct linux_rt_sigaction_args *));
@@ -686,22 +770,34 @@ int linux_rt_sigqueueinfo __P((struct proc *, struct linux_rt_sigqueueinfo_args
int linux_rt_sigsuspend __P((struct proc *, struct linux_rt_sigsuspend_args *));
int linux_pread __P((struct proc *, struct linux_pread_args *));
int linux_pwrite __P((struct proc *, struct linux_pwrite_args *));
-int linux_chown __P((struct proc *, struct linux_chown_args *));
+int linux_chown16 __P((struct proc *, struct linux_chown16_args *));
int linux_getcwd __P((struct proc *, struct linux_getcwd_args *));
int linux_capget __P((struct proc *, struct linux_capget_args *));
int linux_capset __P((struct proc *, struct linux_capset_args *));
int linux_sigaltstack __P((struct proc *, struct linux_sigaltstack_args *));
int linux_sendfile __P((struct proc *, struct linux_sendfile_args *));
-int linux_getpmsg __P((struct proc *, struct linux_getpmsg_args *));
-int linux_putpmsg __P((struct proc *, struct linux_putpmsg_args *));
int linux_vfork __P((struct proc *, struct linux_vfork_args *));
-int linux_ugetrlimit __P((struct proc *, struct linux_ugetrlimit_args *));
+int linux_getrlimit __P((struct proc *, struct linux_getrlimit_args *));
int linux_mmap2 __P((struct proc *, struct linux_mmap2_args *));
int linux_truncate64 __P((struct proc *, struct linux_truncate64_args *));
int linux_ftruncate64 __P((struct proc *, struct linux_ftruncate64_args *));
int linux_stat64 __P((struct proc *, struct linux_stat64_args *));
int linux_lstat64 __P((struct proc *, struct linux_lstat64_args *));
int linux_fstat64 __P((struct proc *, struct linux_fstat64_args *));
+int linux_lchown __P((struct proc *, struct linux_lchown_args *));
+int linux_getuid __P((struct proc *, struct linux_getuid_args *));
+int linux_getgid __P((struct proc *, struct linux_getgid_args *));
+int linux_getgroups __P((struct proc *, struct linux_getgroups_args *));
+int linux_setgroups __P((struct proc *, struct linux_setgroups_args *));
+int linux_fchown __P((struct proc *, struct linux_fchown_args *));
+int linux_chown __P((struct proc *, struct linux_chown_args *));
+int linux_setfsuid __P((struct proc *, struct linux_setfsuid_args *));
+int linux_setfsgid __P((struct proc *, struct linux_setfsgid_args *));
+int linux_pivot_root __P((struct proc *, struct linux_pivot_root_args *));
+int linux_mincore __P((struct proc *, struct linux_mincore_args *));
+int linux_madvise __P((struct proc *, struct linux_madvise_args *));
+int linux_getdents64 __P((struct proc *, struct linux_getdents64_args *));
+int linux_fcntl64 __P((struct proc *, struct linux_fcntl64_args *));
#ifdef COMPAT_43
@@ -709,5 +805,7 @@ int linux_fstat64 __P((struct proc *, struct linux_fstat64_args *));
#endif /* COMPAT_43 */
#undef PAD_
+#undef PADL_
+#undef PADR_
#endif /* !_LINUX_SYSPROTO_H_ */
diff --git a/sys/i386/linux/linux_syscall.h b/sys/i386/linux/linux_syscall.h
index c4e3dad..19f4a92 100644
--- a/sys/i386/linux/linux_syscall.h
+++ b/sys/i386/linux/linux_syscall.h
@@ -3,10 +3,9 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.40 2001/04/01 06:37:40 alc Exp
+ * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.43 2001/09/08 18:48:40 marcel Exp
*/
-#define LINUX_SYS_linux_setup 0
#define LINUX_SYS_exit 1
#define LINUX_SYS_linux_fork 2
#define LINUX_SYS_read 3
@@ -22,26 +21,22 @@
#define LINUX_SYS_linux_time 13
#define LINUX_SYS_linux_mknod 14
#define LINUX_SYS_linux_chmod 15
-#define LINUX_SYS_linux_lchown 16
-#define LINUX_SYS_linux_break 17
+#define LINUX_SYS_linux_lchown16 16
#define LINUX_SYS_linux_stat 18
#define LINUX_SYS_linux_lseek 19
-#define LINUX_SYS_getpid 20
+#define LINUX_SYS_linux_getpid 20
#define LINUX_SYS_linux_mount 21
-#define LINUX_SYS_linux_umount 22
-#define LINUX_SYS_setuid 23
-#define LINUX_SYS_getuid 24
+#define LINUX_SYS_linux_oldumount 22
+#define LINUX_SYS_linux_setuid16 23
+#define LINUX_SYS_linux_getuid16 24
#define LINUX_SYS_linux_stime 25
#define LINUX_SYS_linux_ptrace 26
#define LINUX_SYS_linux_alarm 27
#define LINUX_SYS_linux_fstat 28
#define LINUX_SYS_linux_pause 29
#define LINUX_SYS_linux_utime 30
-#define LINUX_SYS_linux_stty 31
-#define LINUX_SYS_linux_gtty 32
#define LINUX_SYS_linux_access 33
#define LINUX_SYS_linux_nice 34
-#define LINUX_SYS_linux_ftime 35
#define LINUX_SYS_sync 36
#define LINUX_SYS_linux_kill 37
#define LINUX_SYS_linux_rename 38
@@ -50,21 +45,17 @@
#define LINUX_SYS_dup 41
#define LINUX_SYS_linux_pipe 42
#define LINUX_SYS_linux_times 43
-#define LINUX_SYS_linux_prof 44
#define LINUX_SYS_linux_brk 45
-#define LINUX_SYS_setgid 46
-#define LINUX_SYS_getgid 47
+#define LINUX_SYS_linux_setgid16 46
+#define LINUX_SYS_linux_getgid16 47
#define LINUX_SYS_linux_signal 48
-#define LINUX_SYS_geteuid 49
-#define LINUX_SYS_getegid 50
+#define LINUX_SYS_linux_geteuid16 49
+#define LINUX_SYS_linux_getegid16 50
#define LINUX_SYS_acct 51
-#define LINUX_SYS_linux_umount2 52
-#define LINUX_SYS_linux_lock 53
+#define LINUX_SYS_linux_umount 52
#define LINUX_SYS_linux_ioctl 54
#define LINUX_SYS_linux_fcntl 55
-#define LINUX_SYS_linux_mpx 56
#define LINUX_SYS_setpgid 57
-#define LINUX_SYS_linux_ulimit 58
#define LINUX_SYS_linux_olduname 59
#define LINUX_SYS_umask 60
#define LINUX_SYS_chroot 61
@@ -74,21 +65,21 @@
#define LINUX_SYS_getpgrp 65
#define LINUX_SYS_setsid 66
#define LINUX_SYS_linux_sigaction 67
-#define LINUX_SYS_linux_siggetmask 68
-#define LINUX_SYS_linux_sigsetmask 69
-#define LINUX_SYS_setreuid 70
-#define LINUX_SYS_setregid 71
+#define LINUX_SYS_linux_sgetmask 68
+#define LINUX_SYS_linux_ssetmask 69
+#define LINUX_SYS_linux_setreuid16 70
+#define LINUX_SYS_linux_setregid16 71
#define LINUX_SYS_linux_sigsuspend 72
#define LINUX_SYS_linux_sigpending 73
#define LINUX_SYS_osethostname 74
#define LINUX_SYS_linux_setrlimit 75
-#define LINUX_SYS_linux_getrlimit 76
+#define LINUX_SYS_linux_old_getrlimit 76
#define LINUX_SYS_getrusage 77
#define LINUX_SYS_gettimeofday 78
#define LINUX_SYS_settimeofday 79
-#define LINUX_SYS_linux_getgroups 80
-#define LINUX_SYS_linux_setgroups 81
-#define LINUX_SYS_linux_select 82
+#define LINUX_SYS_linux_getgroups16 80
+#define LINUX_SYS_linux_setgroups16 81
+#define LINUX_SYS_linux_old_select 82
#define LINUX_SYS_linux_symlink 83
#define LINUX_SYS_ostat 84
#define LINUX_SYS_linux_readlink 85
@@ -104,12 +95,11 @@
#define LINUX_SYS_fchown 95
#define LINUX_SYS_getpriority 96
#define LINUX_SYS_setpriority 97
-#define LINUX_SYS_profil 98
#define LINUX_SYS_linux_statfs 99
#define LINUX_SYS_linux_fstatfs 100
#define LINUX_SYS_linux_ioperm 101
#define LINUX_SYS_linux_socketcall 102
-#define LINUX_SYS_linux_ksyslog 103
+#define LINUX_SYS_linux_syslog 103
#define LINUX_SYS_linux_setitimer 104
#define LINUX_SYS_linux_getitimer 105
#define LINUX_SYS_linux_newstat 106
@@ -118,7 +108,6 @@
#define LINUX_SYS_linux_uname 109
#define LINUX_SYS_linux_iopl 110
#define LINUX_SYS_linux_vhangup 111
-#define LINUX_SYS_linux_idle 112
#define LINUX_SYS_linux_vm86old 113
#define LINUX_SYS_linux_wait4 114
#define LINUX_SYS_linux_swapoff 115
@@ -143,12 +132,11 @@
#define LINUX_SYS_linux_bdflush 134
#define LINUX_SYS_linux_sysfs 135
#define LINUX_SYS_linux_personality 136
-#define LINUX_SYS_linux_afs_syscall 137
-#define LINUX_SYS_linux_setfsuid 138
-#define LINUX_SYS_linux_setfsgid 139
+#define LINUX_SYS_linux_setfsuid16 138
+#define LINUX_SYS_linux_setfsgid16 139
#define LINUX_SYS_linux_llseek 140
#define LINUX_SYS_linux_getdents 141
-#define LINUX_SYS_linux_newselect 142
+#define LINUX_SYS_linux_select 142
#define LINUX_SYS_flock 143
#define LINUX_SYS_linux_msync 144
#define LINUX_SYS_readv 145
@@ -170,14 +158,14 @@
#define LINUX_SYS_sched_rr_get_interval 161
#define LINUX_SYS_nanosleep 162
#define LINUX_SYS_linux_mremap 163
-#define LINUX_SYS_setresuid 164
-#define LINUX_SYS_linux_getresuid 165
+#define LINUX_SYS_linux_setresuid16 164
+#define LINUX_SYS_linux_getresuid16 165
#define LINUX_SYS_linux_vm86 166
#define LINUX_SYS_linux_query_module 167
#define LINUX_SYS_poll 168
#define LINUX_SYS_linux_nfsservctl 169
-#define LINUX_SYS_setresgid 170
-#define LINUX_SYS_linux_getresgid 171
+#define LINUX_SYS_linux_setresgid16 170
+#define LINUX_SYS_linux_getresgid16 171
#define LINUX_SYS_linux_prctl 172
#define LINUX_SYS_linux_rt_sigreturn 173
#define LINUX_SYS_linux_rt_sigaction 174
@@ -188,20 +176,42 @@
#define LINUX_SYS_linux_rt_sigsuspend 179
#define LINUX_SYS_linux_pread 180
#define LINUX_SYS_linux_pwrite 181
-#define LINUX_SYS_linux_chown 182
+#define LINUX_SYS_linux_chown16 182
#define LINUX_SYS_linux_getcwd 183
#define LINUX_SYS_linux_capget 184
#define LINUX_SYS_linux_capset 185
#define LINUX_SYS_linux_sigaltstack 186
#define LINUX_SYS_linux_sendfile 187
-#define LINUX_SYS_linux_getpmsg 188
-#define LINUX_SYS_linux_putpmsg 189
#define LINUX_SYS_linux_vfork 190
-#define LINUX_SYS_linux_ugetrlimit 191
+#define LINUX_SYS_linux_getrlimit 191
#define LINUX_SYS_linux_mmap2 192
#define LINUX_SYS_linux_truncate64 193
#define LINUX_SYS_linux_ftruncate64 194
#define LINUX_SYS_linux_stat64 195
#define LINUX_SYS_linux_lstat64 196
#define LINUX_SYS_linux_fstat64 197
-#define LINUX_SYS_MAXSYSCALL 198
+#define LINUX_SYS_linux_lchown 198
+#define LINUX_SYS_linux_getuid 199
+#define LINUX_SYS_linux_getgid 200
+#define LINUX_SYS_geteuid 201
+#define LINUX_SYS_getegid 202
+#define LINUX_SYS_setreuid 203
+#define LINUX_SYS_setregid 204
+#define LINUX_SYS_linux_getgroups 205
+#define LINUX_SYS_linux_setgroups 206
+#define LINUX_SYS_linux_fchown 207
+#define LINUX_SYS_setresuid 208
+#define LINUX_SYS_getresuid 209
+#define LINUX_SYS_setresgid 210
+#define LINUX_SYS_getresgid 211
+#define LINUX_SYS_linux_chown 212
+#define LINUX_SYS_setuid 213
+#define LINUX_SYS_setgid 214
+#define LINUX_SYS_linux_setfsuid 215
+#define LINUX_SYS_linux_setfsgid 216
+#define LINUX_SYS_linux_pivot_root 217
+#define LINUX_SYS_linux_mincore 218
+#define LINUX_SYS_linux_madvise 219
+#define LINUX_SYS_linux_getdents64 220
+#define LINUX_SYS_linux_fcntl64 221
+#define LINUX_SYS_MAXSYSCALL 222
diff --git a/sys/i386/linux/linux_sysent.c b/sys/i386/linux/linux_sysent.c
index 0c96903..de2af45 100644
--- a/sys/i386/linux/linux_sysent.c
+++ b/sys/i386/linux/linux_sysent.c
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.40 2001/04/01 06:37:40 alc Exp
+ * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.43 2001/09/08 18:48:40 marcel Exp
*/
#include "opt_compat.h"
@@ -17,9 +17,9 @@
/* The casts are bogus but will do for now. */
struct sysent linux_sysent[] = {
- { 0, (sy_call_t *)linux_setup }, /* 0 = linux_setup */
- { AS(sys_exit_args), (sy_call_t *)sys_exit }, /* 1 = exit */
- { 0, (sy_call_t *)linux_fork }, /* 2 = linux_fork */
+ { 0, (sy_call_t *)nosys }, /* 0 = setup */
+ { SYF_MPSAFE | AS(sys_exit_args), (sy_call_t *)sys_exit }, /* 1 = exit */
+ { SYF_MPSAFE | 0, (sy_call_t *)linux_fork }, /* 2 = linux_fork */
{ AS(read_args), (sy_call_t *)read }, /* 3 = read */
{ AS(write_args), (sy_call_t *)write }, /* 4 = write */
{ AS(linux_open_args), (sy_call_t *)linux_open }, /* 5 = linux_open */
@@ -33,26 +33,26 @@ struct sysent linux_sysent[] = {
{ AS(linux_time_args), (sy_call_t *)linux_time }, /* 13 = linux_time */
{ AS(linux_mknod_args), (sy_call_t *)linux_mknod }, /* 14 = linux_mknod */
{ AS(linux_chmod_args), (sy_call_t *)linux_chmod }, /* 15 = linux_chmod */
- { AS(linux_lchown_args), (sy_call_t *)linux_lchown }, /* 16 = linux_lchown */
- { AS(linux_break_args), (sy_call_t *)linux_break }, /* 17 = linux_break */
+ { AS(linux_lchown16_args), (sy_call_t *)linux_lchown16 }, /* 16 = linux_lchown16 */
+ { 0, (sy_call_t *)nosys }, /* 17 = break */
{ AS(linux_stat_args), (sy_call_t *)linux_stat }, /* 18 = linux_stat */
{ AS(linux_lseek_args), (sy_call_t *)linux_lseek }, /* 19 = linux_lseek */
- { 0, (sy_call_t *)getpid }, /* 20 = getpid */
+ { 0, (sy_call_t *)linux_getpid }, /* 20 = linux_getpid */
{ AS(linux_mount_args), (sy_call_t *)linux_mount }, /* 21 = linux_mount */
- { AS(linux_umount_args), (sy_call_t *)linux_umount }, /* 22 = linux_umount */
- { AS(setuid_args), (sy_call_t *)setuid }, /* 23 = setuid */
- { 0, (sy_call_t *)getuid }, /* 24 = getuid */
+ { AS(linux_oldumount_args), (sy_call_t *)linux_oldumount }, /* 22 = linux_oldumount */
+ { AS(linux_setuid16_args), (sy_call_t *)linux_setuid16 }, /* 23 = linux_setuid16 */
+ { 0, (sy_call_t *)linux_getuid16 }, /* 24 = linux_getuid16 */
{ 0, (sy_call_t *)linux_stime }, /* 25 = linux_stime */
{ 0, (sy_call_t *)linux_ptrace }, /* 26 = linux_ptrace */
{ AS(linux_alarm_args), (sy_call_t *)linux_alarm }, /* 27 = linux_alarm */
{ AS(linux_fstat_args), (sy_call_t *)linux_fstat }, /* 28 = linux_fstat */
{ 0, (sy_call_t *)linux_pause }, /* 29 = linux_pause */
{ AS(linux_utime_args), (sy_call_t *)linux_utime }, /* 30 = linux_utime */
- { 0, (sy_call_t *)linux_stty }, /* 31 = linux_stty */
- { 0, (sy_call_t *)linux_gtty }, /* 32 = linux_gtty */
+ { 0, (sy_call_t *)nosys }, /* 31 = stty */
+ { 0, (sy_call_t *)nosys }, /* 32 = gtty */
{ AS(linux_access_args), (sy_call_t *)linux_access }, /* 33 = linux_access */
{ AS(linux_nice_args), (sy_call_t *)linux_nice }, /* 34 = linux_nice */
- { 0, (sy_call_t *)linux_ftime }, /* 35 = linux_ftime */
+ { 0, (sy_call_t *)nosys }, /* 35 = ftime */
{ 0, (sy_call_t *)sync }, /* 36 = sync */
{ AS(linux_kill_args), (sy_call_t *)linux_kill }, /* 37 = linux_kill */
{ AS(linux_rename_args), (sy_call_t *)linux_rename }, /* 38 = linux_rename */
@@ -61,21 +61,21 @@ struct sysent linux_sysent[] = {
{ AS(dup_args), (sy_call_t *)dup }, /* 41 = dup */
{ AS(linux_pipe_args), (sy_call_t *)linux_pipe }, /* 42 = linux_pipe */
{ AS(linux_times_args), (sy_call_t *)linux_times }, /* 43 = linux_times */
- { 0, (sy_call_t *)linux_prof }, /* 44 = linux_prof */
+ { 0, (sy_call_t *)nosys }, /* 44 = prof */
{ AS(linux_brk_args), (sy_call_t *)linux_brk }, /* 45 = linux_brk */
- { AS(setgid_args), (sy_call_t *)setgid }, /* 46 = setgid */
- { 0, (sy_call_t *)getgid }, /* 47 = getgid */
+ { AS(linux_setgid16_args), (sy_call_t *)linux_setgid16 }, /* 46 = linux_setgid16 */
+ { 0, (sy_call_t *)linux_getgid16 }, /* 47 = linux_getgid16 */
{ AS(linux_signal_args), (sy_call_t *)linux_signal }, /* 48 = linux_signal */
- { 0, (sy_call_t *)geteuid }, /* 49 = geteuid */
- { 0, (sy_call_t *)getegid }, /* 50 = getegid */
+ { 0, (sy_call_t *)linux_geteuid16 }, /* 49 = linux_geteuid16 */
+ { 0, (sy_call_t *)linux_getegid16 }, /* 50 = linux_getegid16 */
{ AS(acct_args), (sy_call_t *)acct }, /* 51 = acct */
- { AS(linux_umount2_args), (sy_call_t *)linux_umount2 }, /* 52 = linux_umount2 */
- { 0, (sy_call_t *)linux_lock }, /* 53 = linux_lock */
+ { AS(linux_umount_args), (sy_call_t *)linux_umount }, /* 52 = linux_umount */
+ { 0, (sy_call_t *)nosys }, /* 53 = lock */
{ AS(linux_ioctl_args), (sy_call_t *)linux_ioctl }, /* 54 = linux_ioctl */
{ AS(linux_fcntl_args), (sy_call_t *)linux_fcntl }, /* 55 = linux_fcntl */
- { 0, (sy_call_t *)linux_mpx }, /* 56 = linux_mpx */
+ { 0, (sy_call_t *)nosys }, /* 56 = mpx */
{ AS(setpgid_args), (sy_call_t *)setpgid }, /* 57 = setpgid */
- { 0, (sy_call_t *)linux_ulimit }, /* 58 = linux_ulimit */
+ { 0, (sy_call_t *)nosys }, /* 58 = ulimit */
{ 0, (sy_call_t *)linux_olduname }, /* 59 = linux_olduname */
{ AS(umask_args), (sy_call_t *)umask }, /* 60 = umask */
{ AS(chroot_args), (sy_call_t *)chroot }, /* 61 = chroot */
@@ -85,21 +85,21 @@ struct sysent linux_sysent[] = {
{ 0, (sy_call_t *)getpgrp }, /* 65 = getpgrp */
{ 0, (sy_call_t *)setsid }, /* 66 = setsid */
{ AS(linux_sigaction_args), (sy_call_t *)linux_sigaction }, /* 67 = linux_sigaction */
- { 0, (sy_call_t *)linux_siggetmask }, /* 68 = linux_siggetmask */
- { AS(linux_sigsetmask_args), (sy_call_t *)linux_sigsetmask }, /* 69 = linux_sigsetmask */
- { AS(setreuid_args), (sy_call_t *)setreuid }, /* 70 = setreuid */
- { AS(setregid_args), (sy_call_t *)setregid }, /* 71 = setregid */
+ { 0, (sy_call_t *)linux_sgetmask }, /* 68 = linux_sgetmask */
+ { AS(linux_ssetmask_args), (sy_call_t *)linux_ssetmask }, /* 69 = linux_ssetmask */
+ { AS(linux_setreuid16_args), (sy_call_t *)linux_setreuid16 }, /* 70 = linux_setreuid16 */
+ { AS(linux_setregid16_args), (sy_call_t *)linux_setregid16 }, /* 71 = linux_setregid16 */
{ AS(linux_sigsuspend_args), (sy_call_t *)linux_sigsuspend }, /* 72 = linux_sigsuspend */
{ AS(linux_sigpending_args), (sy_call_t *)linux_sigpending }, /* 73 = linux_sigpending */
- { AS(sethostname_args), (sy_call_t *)osethostname }, /* 74 = osethostname */
+ { SYF_MPSAFE | AS(sethostname_args), (sy_call_t *)osethostname }, /* 74 = osethostname */
{ AS(linux_setrlimit_args), (sy_call_t *)linux_setrlimit }, /* 75 = linux_setrlimit */
- { AS(linux_getrlimit_args), (sy_call_t *)linux_getrlimit }, /* 76 = linux_getrlimit */
+ { AS(linux_old_getrlimit_args), (sy_call_t *)linux_old_getrlimit }, /* 76 = linux_old_getrlimit */
{ AS(getrusage_args), (sy_call_t *)getrusage }, /* 77 = getrusage */
{ AS(gettimeofday_args), (sy_call_t *)gettimeofday }, /* 78 = gettimeofday */
- { AS(settimeofday_args), (sy_call_t *)settimeofday }, /* 79 = settimeofday */
- { AS(linux_getgroups_args), (sy_call_t *)linux_getgroups }, /* 80 = linux_getgroups */
- { AS(linux_setgroups_args), (sy_call_t *)linux_setgroups }, /* 81 = linux_setgroups */
- { AS(linux_select_args), (sy_call_t *)linux_select }, /* 82 = linux_select */
+ { SYF_MPSAFE | AS(settimeofday_args), (sy_call_t *)settimeofday }, /* 79 = settimeofday */
+ { AS(linux_getgroups16_args), (sy_call_t *)linux_getgroups16 }, /* 80 = linux_getgroups16 */
+ { AS(linux_setgroups16_args), (sy_call_t *)linux_setgroups16 }, /* 81 = linux_setgroups16 */
+ { AS(linux_old_select_args), (sy_call_t *)linux_old_select }, /* 82 = linux_old_select */
{ AS(linux_symlink_args), (sy_call_t *)linux_symlink }, /* 83 = linux_symlink */
{ AS(ostat_args), (sy_call_t *)ostat }, /* 84 = ostat */
{ AS(linux_readlink_args), (sy_call_t *)linux_readlink }, /* 85 = linux_readlink */
@@ -115,12 +115,12 @@ struct sysent linux_sysent[] = {
{ AS(fchown_args), (sy_call_t *)fchown }, /* 95 = fchown */
{ AS(getpriority_args), (sy_call_t *)getpriority }, /* 96 = getpriority */
{ AS(setpriority_args), (sy_call_t *)setpriority }, /* 97 = setpriority */
- { AS(profil_args), (sy_call_t *)profil }, /* 98 = profil */
+ { 0, (sy_call_t *)nosys }, /* 98 = profil */
{ AS(linux_statfs_args), (sy_call_t *)linux_statfs }, /* 99 = linux_statfs */
{ AS(linux_fstatfs_args), (sy_call_t *)linux_fstatfs }, /* 100 = linux_fstatfs */
{ AS(linux_ioperm_args), (sy_call_t *)linux_ioperm }, /* 101 = linux_ioperm */
{ AS(linux_socketcall_args), (sy_call_t *)linux_socketcall }, /* 102 = linux_socketcall */
- { AS(linux_ksyslog_args), (sy_call_t *)linux_ksyslog }, /* 103 = linux_ksyslog */
+ { AS(linux_syslog_args), (sy_call_t *)linux_syslog }, /* 103 = linux_syslog */
{ AS(linux_setitimer_args), (sy_call_t *)linux_setitimer }, /* 104 = linux_setitimer */
{ AS(linux_getitimer_args), (sy_call_t *)linux_getitimer }, /* 105 = linux_getitimer */
{ AS(linux_newstat_args), (sy_call_t *)linux_newstat }, /* 106 = linux_newstat */
@@ -129,7 +129,7 @@ struct sysent linux_sysent[] = {
{ 0, (sy_call_t *)linux_uname }, /* 109 = linux_uname */
{ AS(linux_iopl_args), (sy_call_t *)linux_iopl }, /* 110 = linux_iopl */
{ 0, (sy_call_t *)linux_vhangup }, /* 111 = linux_vhangup */
- { 0, (sy_call_t *)linux_idle }, /* 112 = linux_idle */
+ { 0, (sy_call_t *)nosys }, /* 112 = idle */
{ 0, (sy_call_t *)linux_vm86old }, /* 113 = linux_vm86old */
{ AS(linux_wait4_args), (sy_call_t *)linux_wait4 }, /* 114 = linux_wait4 */
{ 0, (sy_call_t *)linux_swapoff }, /* 115 = linux_swapoff */
@@ -138,7 +138,7 @@ struct sysent linux_sysent[] = {
{ AS(fsync_args), (sy_call_t *)fsync }, /* 118 = fsync */
{ AS(linux_sigreturn_args), (sy_call_t *)linux_sigreturn }, /* 119 = linux_sigreturn */
{ AS(linux_clone_args), (sy_call_t *)linux_clone }, /* 120 = linux_clone */
- { AS(setdomainname_args), (sy_call_t *)setdomainname }, /* 121 = setdomainname */
+ { SYF_MPSAFE | AS(setdomainname_args), (sy_call_t *)setdomainname }, /* 121 = setdomainname */
{ AS(linux_newuname_args), (sy_call_t *)linux_newuname }, /* 122 = linux_newuname */
{ AS(linux_modify_ldt_args), (sy_call_t *)linux_modify_ldt }, /* 123 = linux_modify_ldt */
{ 0, (sy_call_t *)linux_adjtimex }, /* 124 = linux_adjtimex */
@@ -154,19 +154,19 @@ struct sysent linux_sysent[] = {
{ 0, (sy_call_t *)linux_bdflush }, /* 134 = linux_bdflush */
{ AS(linux_sysfs_args), (sy_call_t *)linux_sysfs }, /* 135 = linux_sysfs */
{ AS(linux_personality_args), (sy_call_t *)linux_personality }, /* 136 = linux_personality */
- { 0, (sy_call_t *)linux_afs_syscall }, /* 137 = linux_afs_syscall */
- { AS(linux_setfsuid_args), (sy_call_t *)linux_setfsuid }, /* 138 = linux_setfsuid */
- { AS(linux_setfsgid_args), (sy_call_t *)linux_setfsgid }, /* 139 = linux_setfsgid */
+ { 0, (sy_call_t *)nosys }, /* 137 = afs_syscall */
+ { AS(linux_setfsuid16_args), (sy_call_t *)linux_setfsuid16 }, /* 138 = linux_setfsuid16 */
+ { AS(linux_setfsgid16_args), (sy_call_t *)linux_setfsgid16 }, /* 139 = linux_setfsgid16 */
{ AS(linux_llseek_args), (sy_call_t *)linux_llseek }, /* 140 = linux_llseek */
{ AS(linux_getdents_args), (sy_call_t *)linux_getdents }, /* 141 = linux_getdents */
- { AS(linux_newselect_args), (sy_call_t *)linux_newselect }, /* 142 = linux_newselect */
+ { AS(linux_select_args), (sy_call_t *)linux_select }, /* 142 = linux_select */
{ AS(flock_args), (sy_call_t *)flock }, /* 143 = flock */
{ AS(linux_msync_args), (sy_call_t *)linux_msync }, /* 144 = linux_msync */
{ AS(readv_args), (sy_call_t *)readv }, /* 145 = readv */
{ AS(writev_args), (sy_call_t *)writev }, /* 146 = writev */
{ AS(linux_getsid_args), (sy_call_t *)linux_getsid }, /* 147 = linux_getsid */
{ AS(linux_fdatasync_args), (sy_call_t *)linux_fdatasync }, /* 148 = linux_fdatasync */
- { 0, (sy_call_t *)linux_sysctl }, /* 149 = linux_sysctl */
+ { AS(linux_sysctl_args), (sy_call_t *)linux_sysctl }, /* 149 = linux_sysctl */
{ AS(mlock_args), (sy_call_t *)mlock }, /* 150 = mlock */
{ AS(munlock_args), (sy_call_t *)munlock }, /* 151 = munlock */
{ AS(mlockall_args), (sy_call_t *)mlockall }, /* 152 = mlockall */
@@ -179,16 +179,16 @@ struct sysent linux_sysent[] = {
{ AS(linux_sched_get_priority_max_args), (sy_call_t *)linux_sched_get_priority_max }, /* 159 = linux_sched_get_priority_max */
{ AS(linux_sched_get_priority_min_args), (sy_call_t *)linux_sched_get_priority_min }, /* 160 = linux_sched_get_priority_min */
{ AS(sched_rr_get_interval_args), (sy_call_t *)sched_rr_get_interval }, /* 161 = sched_rr_get_interval */
- { AS(nanosleep_args), (sy_call_t *)nanosleep }, /* 162 = nanosleep */
+ { SYF_MPSAFE | AS(nanosleep_args), (sy_call_t *)nanosleep }, /* 162 = nanosleep */
{ AS(linux_mremap_args), (sy_call_t *)linux_mremap }, /* 163 = linux_mremap */
- { AS(setresuid_args), (sy_call_t *)setresuid }, /* 164 = setresuid */
- { AS(linux_getresuid_args), (sy_call_t *)linux_getresuid }, /* 165 = linux_getresuid */
+ { AS(linux_setresuid16_args), (sy_call_t *)linux_setresuid16 }, /* 164 = linux_setresuid16 */
+ { AS(linux_getresuid16_args), (sy_call_t *)linux_getresuid16 }, /* 165 = linux_getresuid16 */
{ 0, (sy_call_t *)linux_vm86 }, /* 166 = linux_vm86 */
{ 0, (sy_call_t *)linux_query_module }, /* 167 = linux_query_module */
{ AS(poll_args), (sy_call_t *)poll }, /* 168 = poll */
{ 0, (sy_call_t *)linux_nfsservctl }, /* 169 = linux_nfsservctl */
- { AS(setresgid_args), (sy_call_t *)setresgid }, /* 170 = setresgid */
- { AS(linux_getresgid_args), (sy_call_t *)linux_getresgid }, /* 171 = linux_getresgid */
+ { AS(linux_setresgid16_args), (sy_call_t *)linux_setresgid16 }, /* 170 = linux_setresgid16 */
+ { AS(linux_getresgid16_args), (sy_call_t *)linux_getresgid16 }, /* 171 = linux_getresgid16 */
{ 0, (sy_call_t *)linux_prctl }, /* 172 = linux_prctl */
{ AS(linux_rt_sigreturn_args), (sy_call_t *)linux_rt_sigreturn }, /* 173 = linux_rt_sigreturn */
{ AS(linux_rt_sigaction_args), (sy_call_t *)linux_rt_sigaction }, /* 174 = linux_rt_sigaction */
@@ -199,20 +199,44 @@ struct sysent linux_sysent[] = {
{ AS(linux_rt_sigsuspend_args), (sy_call_t *)linux_rt_sigsuspend }, /* 179 = linux_rt_sigsuspend */
{ AS(linux_pread_args), (sy_call_t *)linux_pread }, /* 180 = linux_pread */
{ AS(linux_pwrite_args), (sy_call_t *)linux_pwrite }, /* 181 = linux_pwrite */
- { AS(linux_chown_args), (sy_call_t *)linux_chown }, /* 182 = linux_chown */
+ { AS(linux_chown16_args), (sy_call_t *)linux_chown16 }, /* 182 = linux_chown16 */
{ AS(linux_getcwd_args), (sy_call_t *)linux_getcwd }, /* 183 = linux_getcwd */
{ 0, (sy_call_t *)linux_capget }, /* 184 = linux_capget */
{ 0, (sy_call_t *)linux_capset }, /* 185 = linux_capset */
{ AS(linux_sigaltstack_args), (sy_call_t *)linux_sigaltstack }, /* 186 = linux_sigaltstack */
{ 0, (sy_call_t *)linux_sendfile }, /* 187 = linux_sendfile */
- { 0, (sy_call_t *)linux_getpmsg }, /* 188 = linux_getpmsg */
- { 0, (sy_call_t *)linux_putpmsg }, /* 189 = linux_putpmsg */
- { 0, (sy_call_t *)linux_vfork }, /* 190 = linux_vfork */
- { 0, (sy_call_t *)linux_ugetrlimit }, /* 191 = linux_ugetrlimit */
- { 0, (sy_call_t *)linux_mmap2 }, /* 192 = linux_mmap2 */
- { 0, (sy_call_t *)linux_truncate64 }, /* 193 = linux_truncate64 */
- { 0, (sy_call_t *)linux_ftruncate64 }, /* 194 = linux_ftruncate64 */
- { 0, (sy_call_t *)linux_stat64 }, /* 195 = linux_stat64 */
- { 0, (sy_call_t *)linux_lstat64 }, /* 196 = linux_lstat64 */
- { 0, (sy_call_t *)linux_fstat64 }, /* 197 = linux_fstat64 */
+ { 0, (sy_call_t *)nosys }, /* 188 = getpmsg */
+ { 0, (sy_call_t *)nosys }, /* 189 = putpmsg */
+ { SYF_MPSAFE | 0, (sy_call_t *)linux_vfork }, /* 190 = linux_vfork */
+ { AS(linux_getrlimit_args), (sy_call_t *)linux_getrlimit }, /* 191 = linux_getrlimit */
+ { AS(linux_mmap2_args), (sy_call_t *)linux_mmap2 }, /* 192 = linux_mmap2 */
+ { AS(linux_truncate64_args), (sy_call_t *)linux_truncate64 }, /* 193 = linux_truncate64 */
+ { AS(linux_ftruncate64_args), (sy_call_t *)linux_ftruncate64 }, /* 194 = linux_ftruncate64 */
+ { AS(linux_stat64_args), (sy_call_t *)linux_stat64 }, /* 195 = linux_stat64 */
+ { AS(linux_lstat64_args), (sy_call_t *)linux_lstat64 }, /* 196 = linux_lstat64 */
+ { AS(linux_fstat64_args), (sy_call_t *)linux_fstat64 }, /* 197 = linux_fstat64 */
+ { AS(linux_lchown_args), (sy_call_t *)linux_lchown }, /* 198 = linux_lchown */
+ { 0, (sy_call_t *)linux_getuid }, /* 199 = linux_getuid */
+ { 0, (sy_call_t *)linux_getgid }, /* 200 = linux_getgid */
+ { 0, (sy_call_t *)geteuid }, /* 201 = geteuid */
+ { 0, (sy_call_t *)getegid }, /* 202 = getegid */
+ { AS(setreuid_args), (sy_call_t *)setreuid }, /* 203 = setreuid */
+ { AS(setregid_args), (sy_call_t *)setregid }, /* 204 = setregid */
+ { AS(linux_getgroups_args), (sy_call_t *)linux_getgroups }, /* 205 = linux_getgroups */
+ { AS(linux_setgroups_args), (sy_call_t *)linux_setgroups }, /* 206 = linux_setgroups */
+ { AS(linux_fchown_args), (sy_call_t *)linux_fchown }, /* 207 = linux_fchown */
+ { AS(setresuid_args), (sy_call_t *)setresuid }, /* 208 = setresuid */
+ { AS(getresuid_args), (sy_call_t *)getresuid }, /* 209 = getresuid */
+ { AS(setresgid_args), (sy_call_t *)setresgid }, /* 210 = setresgid */
+ { AS(getresgid_args), (sy_call_t *)getresgid }, /* 211 = getresgid */
+ { AS(linux_chown_args), (sy_call_t *)linux_chown }, /* 212 = linux_chown */
+ { AS(setuid_args), (sy_call_t *)setuid }, /* 213 = setuid */
+ { AS(setgid_args), (sy_call_t *)setgid }, /* 214 = setgid */
+ { AS(linux_setfsuid_args), (sy_call_t *)linux_setfsuid }, /* 215 = linux_setfsuid */
+ { AS(linux_setfsgid_args), (sy_call_t *)linux_setfsgid }, /* 216 = linux_setfsgid */
+ { AS(linux_pivot_root_args), (sy_call_t *)linux_pivot_root }, /* 217 = linux_pivot_root */
+ { AS(linux_mincore_args), (sy_call_t *)linux_mincore }, /* 218 = linux_mincore */
+ { 0, (sy_call_t *)linux_madvise }, /* 219 = linux_madvise */
+ { AS(linux_getdents64_args), (sy_call_t *)linux_getdents64 }, /* 220 = linux_getdents64 */
+ { AS(linux_fcntl64_args), (sy_call_t *)linux_fcntl64 }, /* 221 = linux_fcntl64 */
};
diff --git a/sys/i386/linux/linux_sysvec.c b/sys/i386/linux/linux_sysvec.c
index 306b411..eaab863 100644
--- a/sys/i386/linux/linux_sysvec.c
+++ b/sys/i386/linux/linux_sysvec.c
@@ -212,7 +212,7 @@ linux_rt_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
{
register struct proc *p = curproc;
register struct trapframe *regs;
- struct linux_rt_sigframe *fp, frame;
+ struct l_rt_sigframe *fp, frame;
int oonstack;
PROC_LOCK_ASSERT(p, MA_OWNED);
@@ -220,7 +220,7 @@ linux_rt_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
oonstack = sigonstack(regs->tf_esp);
#ifdef DEBUG
- if (ldebug(sigreturn))
+ if (ldebug(rt_sendsig))
printf(ARGS(rt_sendsig, "%p, %d, %p, %lu"),
catcher, sig, (void*)mask, code);
#endif
@@ -229,10 +229,10 @@ linux_rt_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
*/
if ((p->p_flag & P_ALTSTACK) && !oonstack &&
SIGISMEMBER(p->p_sigacts->ps_sigonstack, sig)) {
- fp = (struct linux_rt_sigframe *)(p->p_sigstk.ss_sp +
- p->p_sigstk.ss_size - sizeof(struct linux_rt_sigframe));
+ fp = (struct l_rt_sigframe *)(p->p_sigstk.ss_sp +
+ p->p_sigstk.ss_size - sizeof(struct l_rt_sigframe));
} else
- fp = (struct linux_rt_sigframe *)regs->tf_esp - 1;
+ fp = (struct l_rt_sigframe *)regs->tf_esp - 1;
PROC_UNLOCK(p);
/*
@@ -241,7 +241,7 @@ linux_rt_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
* if access is denied.
*/
if ((grow_stack (p, (int)fp) == FALSE) ||
- !useracc((caddr_t)fp, sizeof (struct linux_rt_sigframe),
+ !useracc((caddr_t)fp, sizeof (struct l_rt_sigframe),
VM_PROT_WRITE)) {
/*
* Process has trashed its stack; give it an illegal
@@ -253,7 +253,7 @@ linux_rt_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
SIGDELSET(p->p_sigcatch, SIGILL);
SIGDELSET(p->p_sigmask, SIGILL);
#ifdef DEBUG
- if (ldebug(sigreturn))
+ if (ldebug(rt_sendsig))
printf(LMSG("rt_sendsig: bad stack %p, oonstack=%x"),
fp, oonstack);
#endif
@@ -314,7 +314,7 @@ linux_rt_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
frame.sf_sc.uc_mcontext.sc_trapno = code; /* XXX ???? */
#ifdef DEBUG
- if (ldebug(sigreturn))
+ if (ldebug(rt_sendsig))
printf(LMSG("rt_sendsig flags: 0x%x, sp: %p, ss: 0x%x, mask: 0x%x"),
frame.sf_sc.uc_stack.ss_flags, p->p_sigstk.ss_sp,
p->p_sigstk.ss_size, frame.sf_sc.uc_mcontext.sc_mask);
@@ -362,8 +362,8 @@ linux_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
{
register struct proc *p = curproc;
register struct trapframe *regs;
- struct linux_sigframe *fp, frame;
- linux_sigset_t lmask;
+ struct l_sigframe *fp, frame;
+ l_sigset_t lmask;
int oonstack, i;
if (SIGISMEMBER(p->p_sigacts->ps_siginfo, sig)) {
@@ -376,7 +376,7 @@ linux_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
oonstack = sigonstack(regs->tf_esp);
#ifdef DEBUG
- if (ldebug(sigreturn))
+ if (ldebug(sendsig))
printf(ARGS(sendsig, "%p, %d, %p, %lu"),
catcher, sig, (void*)mask, code);
#endif
@@ -384,13 +384,12 @@ linux_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
/*
* Allocate space for the signal handler context.
*/
- PROC_LOCK(p);
if ((p->p_flag & P_ALTSTACK) && !oonstack &&
SIGISMEMBER(p->p_sigacts->ps_sigonstack, sig)) {
- fp = (struct linux_sigframe *)(p->p_sigstk.ss_sp +
- p->p_sigstk.ss_size - sizeof(struct linux_sigframe));
+ fp = (struct l_sigframe *)(p->p_sigstk.ss_sp +
+ p->p_sigstk.ss_size - sizeof(struct l_sigframe));
} else
- fp = (struct linux_sigframe *)regs->tf_esp - 1;
+ fp = (struct l_sigframe *)regs->tf_esp - 1;
PROC_UNLOCK(p);
/*
@@ -399,7 +398,7 @@ linux_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
* if access is denied.
*/
if ((grow_stack (p, (int)fp) == FALSE) ||
- !useracc((caddr_t)fp, sizeof (struct linux_sigframe),
+ !useracc((caddr_t)fp, sizeof (struct l_sigframe),
VM_PROT_WRITE)) {
/*
* Process has trashed its stack; give it an illegal
@@ -411,7 +410,6 @@ linux_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
SIGDELSET(p->p_sigcatch, SIGILL);
SIGDELSET(p->p_sigmask, SIGILL);
psignal(p, SIGILL);
- PROC_UNLOCK(p);
return;
}
@@ -450,7 +448,7 @@ linux_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
frame.sf_sc.sc_err = regs->tf_err;
frame.sf_sc.sc_trapno = code; /* XXX ???? */
- bzero(&frame.sf_fpstate, sizeof(struct linux_fpstate));
+ bzero(&frame.sf_fpstate, sizeof(struct l_fpstate));
for (i = 0; i < (LINUX_NSIG_WORDS-1); i++)
frame.sf_extramask[i] = lmask.__bits[i+1];
@@ -476,6 +474,7 @@ linux_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
regs->tf_es = _udatasel;
regs->tf_fs = _udatasel;
regs->tf_ss = _udatasel;
+ PROC_LOCK(p);
}
/*
@@ -493,9 +492,9 @@ linux_sigreturn(p, args)
struct proc *p;
struct linux_sigreturn_args *args;
{
- struct linux_sigframe frame;
+ struct l_sigframe frame;
register struct trapframe *regs;
- linux_sigset_t lmask;
+ l_sigset_t lmask;
int eflags, i;
regs = p->p_frame;
@@ -589,9 +588,9 @@ linux_rt_sigreturn(p, args)
struct linux_rt_sigreturn_args *args;
{
struct sigaltstack_args sasargs;
- struct linux_ucontext uc;
- struct linux_sigcontext *context;
- linux_stack_t *lss;
+ struct l_ucontext uc;
+ struct l_sigcontext *context;
+ l_stack_t *lss;
stack_t *ss;
register struct trapframe *regs;
int eflags;
OpenPOWER on IntegriCloud