Add preliminary support for running 32-bit Linux binaries on amd64, enabled

with the COMPAT_LINUX32 option. This is largely based on the i386 MD Linux
emulations bits, but also builds on the 32-bit FreeBSD and generic IA-32
binary emulation work.

Some of this is still a little rough around the edges, and will need to be
revisited before 32-bit and 64-bit Linux emulation support can coexist in
the same kernel.
This commit is contained in:
Tim J. Robbins 2004-08-16 07:55:06 +00:00
parent 25aea0fcaa
commit ea0fabbc4f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=133819
16 changed files with 4915 additions and 1 deletions

View File

@ -465,6 +465,9 @@ options PMAP_SHPGPERPROC=201
# Enable Linux ABI emulation
#XXX#options COMPAT_LINUX
# Enable 32-bit Linux ABI emulation (requires COMPAT_43 and IA32)
options COMPAT_LINUX32
# Enable the linux-like proc filesystem support (requires COMPAT_LINUX
# and PSEUDOFS)
#XXX#options LINPROCFS

View File

@ -0,0 +1,15 @@
# Makefile for syscall tables
#
# $FreeBSD$
all:
@echo "make sysent only"
sysent: linux32_sysent.c linux32_syscall.h linux32_proto.h
linux32_sysent.c linux32_syscall.h linux32_proto.h: ../../kern/makesyscalls.sh \
syscalls.master syscalls.conf
-mv -f linux32_sysent.c linux32_sysent.c.bak
-mv -f linux32_syscall.h linux32_syscall.h.bak
-mv -f linux32_proto.h linux32_proto.h.bak
sh ../../kern/makesyscalls.sh syscalls.master syscalls.conf

722
sys/amd64/linux32/linux.h Normal file
View File

@ -0,0 +1,722 @@
/*-
* Copyright (c) 2004 Tim J. Robbins
* Copyright (c) 2001 Doug Rabson
* Copyright (c) 1994-1996 Søren Schmidt
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer
* in this position and unchanged.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $FreeBSD$
*/
#ifndef _AMD64_LINUX_LINUX_H_
#define _AMD64_LINUX_LINUX_H_
#include <sys/signal.h> /* for sigval union */
#include <amd64/linux32/linux32_syscall.h>
/*
* debugging support
*/
extern u_char linux_debug_map[];
#define ldebug(name) isclr(linux_debug_map, LINUX_SYS_linux_ ## name)
#define ARGS(nm, fmt) "linux(%ld): "#nm"("fmt")\n", (long)td->td_proc->p_pid
#define LMSG(fmt) "linux(%ld): "fmt"\n", (long)td->td_proc->p_pid
#ifdef MALLOC_DECLARE
MALLOC_DECLARE(M_LINUX);
#endif
#define LINUX32_USRSTACK ((1ul << 32) - PAGE_SIZE)
/* XXX 16 = sizeof(linux32_ps_strings) */
#define LINUX32_PS_STRINGS (LINUX32_USRSTACK - 16)
#define LINUX32_MAXDSIZ (512*1024*1024) /* 512MB */
#define LINUX32_MAXSSIZ (64*1024*1024) /* 64MB */
#define LINUX32_MAXVMEM 0 /* Unlimited */
#define PTRIN(v) (void *)(uintptr_t)(v)
#define PTROUT(v) (l_uintptr_t)(uintptr_t)(v)
/*
* Provide a separate 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 l_ulong l_uintptr_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];
} __packed l_fsid_t;
typedef struct {
l_time_t tv_sec;
l_suseconds_t tv_usec;
} __packed 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_uintptr_t name;
l_int nlen;
l_uintptr_t oldval;
l_uintptr_t oldlenp;
l_uintptr_t newval;
l_size_t newlen;
l_ulong __spare[4];
} __packed;
/* Scheduling policies */
#define LINUX_SCHED_OTHER 0
#define LINUX_SCHED_FIFO 1
#define LINUX_SCHED_RR 2
/* Resource limits */
#define LINUX_RLIMIT_CPU 0
#define LINUX_RLIMIT_FSIZE 1
#define LINUX_RLIMIT_DATA 2
#define LINUX_RLIMIT_STACK 3
#define LINUX_RLIMIT_CORE 4
#define LINUX_RLIMIT_RSS 5
#define LINUX_RLIMIT_NPROC 6
#define LINUX_RLIMIT_NOFILE 7
#define LINUX_RLIMIT_MEMLOCK 8
#define LINUX_RLIMIT_AS 9 /* address space limit */
#define LINUX_RLIM_NLIMITS 10
struct l_rlimit {
l_ulong rlim_cur;
l_ulong rlim_max;
} __packed;
struct l_rusage {
l_timeval ru_utime;
l_timeval ru_stime;
l_long ru_maxrss;
l_long ru_ixrss;
l_long ru_idrss;
l_long ru_isrss;
l_long ru_minflt;
l_long ru_majflt;
l_long ru_nswap;
l_long ru_inblock;
l_long ru_oublock;
l_long ru_msgsnd;
l_long ru_msgrcv;
l_long ru_nsignals;
l_long ru_nvcsw;
l_long ru_nivcsw;
} __packed;
/* mmap options */
#define LINUX_MAP_SHARED 0x0001
#define LINUX_MAP_PRIVATE 0x0002
#define LINUX_MAP_FIXED 0x0010
#define LINUX_MAP_ANON 0x0020
#define LINUX_MAP_GROWSDOWN 0x0100
/*
* stat family of syscalls
*/
struct l_timespec {
l_ulong tv_sec;
l_ulong tv_nsec;
} __packed;
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;
} __packed;
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;
} __packed;
struct l_new_utsname {
char sysname[LINUX_MAX_UTSNAME];
char nodename[LINUX_MAX_UTSNAME];
char release[LINUX_MAX_UTSNAME];
char version[LINUX_MAX_UTSNAME];
char machine[LINUX_MAX_UTSNAME];
char domainname[LINUX_MAX_UTSNAME];
} __packed;
/*
* Signalling
*/
#define LINUX_SIGHUP 1
#define LINUX_SIGINT 2
#define LINUX_SIGQUIT 3
#define LINUX_SIGILL 4
#define LINUX_SIGTRAP 5
#define LINUX_SIGABRT 6
#define LINUX_SIGIOT LINUX_SIGABRT
#define LINUX_SIGBUS 7
#define LINUX_SIGFPE 8
#define LINUX_SIGKILL 9
#define LINUX_SIGUSR1 10
#define LINUX_SIGSEGV 11
#define LINUX_SIGUSR2 12
#define LINUX_SIGPIPE 13
#define LINUX_SIGALRM 14
#define LINUX_SIGTERM 15
#define LINUX_SIGSTKFLT 16
#define LINUX_SIGCHLD 17
#define LINUX_SIGCONT 18
#define LINUX_SIGSTOP 19
#define LINUX_SIGTSTP 20
#define LINUX_SIGTTIN 21
#define LINUX_SIGTTOU 22
#define LINUX_SIGURG 23
#define LINUX_SIGXCPU 24
#define LINUX_SIGXFSZ 25
#define LINUX_SIGVTALRM 26
#define LINUX_SIGPROF 27
#define LINUX_SIGWINCH 28
#define LINUX_SIGIO 29
#define LINUX_SIGPOLL LINUX_SIGIO
#define LINUX_SIGPWR 30
#define LINUX_SIGSYS 31
#define LINUX_SIGTBLSZ 31
#define LINUX_NSIG_WORDS 2
#define LINUX_NBPW 32
#define LINUX_NSIG (LINUX_NBPW * LINUX_NSIG_WORDS)
/* sigaction flags */
#define LINUX_SA_NOCLDSTOP 0x00000001
#define LINUX_SA_NOCLDWAIT 0x00000002
#define LINUX_SA_SIGINFO 0x00000004
#define LINUX_SA_RESTORER 0x04000000
#define LINUX_SA_ONSTACK 0x08000000
#define LINUX_SA_RESTART 0x10000000
#define LINUX_SA_INTERRUPT 0x20000000
#define LINUX_SA_NOMASK 0x40000000
#define LINUX_SA_ONESHOT 0x80000000
/* sigprocmask actions */
#define LINUX_SIG_BLOCK 0
#define LINUX_SIG_UNBLOCK 1
#define LINUX_SIG_SETMASK 2
/* sigset_t macros */
#define LINUX_SIGEMPTYSET(set) (set).__bits[0] = (set).__bits[1] = 0
#define LINUX_SIGISMEMBER(set, sig) SIGISMEMBER(set, sig)
#define LINUX_SIGADDSET(set, sig) SIGADDSET(set, sig)
/* sigaltstack */
#define LINUX_MINSIGSTKSZ 2048
#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 l_uintptr_t l_handler_t;
typedef l_ulong l_osigset_t;
typedef struct {
l_uint __bits[LINUX_NSIG_WORDS];
} __packed l_sigset_t;
typedef struct {
l_handler_t lsa_handler;
l_osigset_t lsa_mask;
l_ulong lsa_flags;
l_uintptr_t lsa_restorer;
} __packed l_osigaction_t;
typedef struct {
l_handler_t lsa_handler;
l_ulong lsa_flags;
l_uintptr_t lsa_restorer;
l_sigset_t lsa_mask;
} __packed l_sigaction_t;
typedef struct {
l_uintptr_t ss_sp;
l_int ss_flags;
l_size_t ss_size;
} __packed l_stack_t;
/* The Linux sigcontext, pretty much a standard 386 trapframe. */
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;
} __packed;
struct l_ucontext {
l_ulong uc_flags;
l_uintptr_t uc_link;
l_stack_t uc_stack;
struct l_sigcontext uc_mcontext;
l_sigset_t uc_sigmask;
} __packed;
#define LINUX_SI_MAX_SIZE 128
#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 {
l_int _pad[LINUX_SI_PAD_SIZE];
struct {
l_pid_t _pid;
l_uid16_t _uid;
} __packed _kill;
struct {
l_uint _timer1;
l_uint _timer2;
} __packed _timer;
struct {
l_pid_t _pid; /* sender's pid */
l_uid16_t _uid; /* sender's uid */
union sigval _sigval;
} __packed _rt;
struct {
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;
} __packed _sigchld;
struct {
l_uintptr_t _addr; /* faulting insn/memory ref. */
} __packed _sigfault;
struct {
l_int _band; /* POLL_IN,POLL_OUT,POLL_MSG */
l_int _fd;
} __packed _sigpoll;
} _sifields;
} __packed l_siginfo_t;
#define lsi_pid _sifields._kill._pid
#define lsi_uid _sifields._kill._uid
#define lsi_status _sifields._sigchld._status
#define lsi_utime _sifields._sigchld._utime
#define lsi_stime _sifields._sigchld._stime
#define lsi_value _sifields._rt._sigval
#define lsi_int _sifields._rt._sigval.sival_int
#define lsi_ptr _sifields._rt._sigval.sival_ptr
#define lsi_addr _sifields._sigfault._addr
#define lsi_band _sifields._sigpoll._band
#define lsi_fd _sifields._sigpoll._fd
struct l_fpreg {
u_int16_t significand[4];
u_int16_t exponent;
} __packed;
struct l_fpxreg {
u_int16_t significand[4];
u_int16_t exponent;
u_int16_t padding[3];
} __packed;
struct l_xmmreg {
u_int32_t element[4];
} __packed;
struct l_fpstate {
/* Regular FPU environment */
u_int32_t cw;
u_int32_t sw;
u_int32_t tag;
u_int32_t ipoff;
u_int32_t cssel;
u_int32_t dataoff;
u_int32_t datasel;
struct l_fpreg _st[8];
u_int16_t status;
u_int16_t magic; /* 0xffff = regular FPU data */
/* FXSR FPU environment */
u_int32_t _fxsr_env[6]; /* env is ignored */
u_int32_t mxcsr;
u_int32_t reserved;
struct l_fpxreg _fxsr_st[8]; /* reg data is ignored */
struct l_xmmreg _xmm[8];
u_int32_t padding[56];
} __packed;
/*
* We make the stack look like Linux expects it when calling a signal
* handler, but use the BSD way of calling the handler and sigreturn().
* 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 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;
} __packed;
struct l_rt_sigframe {
l_int sf_sig;
l_uintptr_t sf_siginfo;
l_uintptr_t sf_ucontext;
l_siginfo_t sf_si;
struct l_ucontext sf_sc;
l_handler_t sf_handler;
} __packed;
extern int bsd_to_linux_signal[];
extern int linux_to_bsd_signal[];
/*
* Pluggable ioctl handlers
*/
struct linux_ioctl_args;
struct thread;
typedef int linux_ioctl_function_t(struct thread *, struct linux_ioctl_args *);
struct linux_ioctl_handler {
linux_ioctl_function_t *func;
int low, high;
};
int linux_ioctl_register_handler(struct linux_ioctl_handler *h);
int linux_ioctl_unregister_handler(struct linux_ioctl_handler *h);
/*
* open/fcntl flags
*/
#define LINUX_O_RDONLY 00
#define LINUX_O_WRONLY 01
#define LINUX_O_RDWR 02
#define LINUX_O_CREAT 0100
#define LINUX_O_EXCL 0200
#define LINUX_O_NOCTTY 0400
#define LINUX_O_TRUNC 01000
#define LINUX_O_APPEND 02000
#define LINUX_O_NONBLOCK 04000
#define LINUX_O_NDELAY LINUX_O_NONBLOCK
#define LINUX_O_SYNC 010000
#define LINUX_FASYNC 020000
#define LINUX_F_DUPFD 0
#define LINUX_F_GETFD 1
#define LINUX_F_SETFD 2
#define LINUX_F_GETFL 3
#define LINUX_F_SETFL 4
#define LINUX_F_GETLK 5
#define LINUX_F_SETLK 6
#define LINUX_F_SETLKW 7
#define LINUX_F_SETOWN 8
#define LINUX_F_GETOWN 9
#define LINUX_F_GETLK64 12
#define LINUX_F_SETLK64 13
#define LINUX_F_SETLKW64 14
#define LINUX_F_RDLCK 0
#define LINUX_F_WRLCK 1
#define LINUX_F_UNLCK 2
/*
* mount flags
*/
#define LINUX_MS_RDONLY 0x0001
#define LINUX_MS_NOSUID 0x0002
#define LINUX_MS_NODEV 0x0004
#define LINUX_MS_NOEXEC 0x0008
#define LINUX_MS_REMOUNT 0x0020
/*
* SystemV IPC defines
*/
#define LINUX_SEMOP 1
#define LINUX_SEMGET 2
#define LINUX_SEMCTL 3
#define LINUX_MSGSND 11
#define LINUX_MSGRCV 12
#define LINUX_MSGGET 13
#define LINUX_MSGCTL 14
#define LINUX_SHMAT 21
#define LINUX_SHMDT 22
#define LINUX_SHMGET 23
#define LINUX_SHMCTL 24
#define LINUX_IPC_RMID 0
#define LINUX_IPC_SET 1
#define LINUX_IPC_STAT 2
#define LINUX_IPC_INFO 3
#define LINUX_SHM_LOCK 11
#define LINUX_SHM_UNLOCK 12
#define LINUX_SHM_STAT 13
#define LINUX_SHM_INFO 14
#define LINUX_SHM_RDONLY 0x1000
#define LINUX_SHM_RND 0x2000
#define LINUX_SHM_REMAP 0x4000
/* semctl commands */
#define LINUX_GETPID 11
#define LINUX_GETVAL 12
#define LINUX_GETALL 13
#define LINUX_GETNCNT 14
#define LINUX_GETZCNT 15
#define LINUX_SETVAL 16
#define LINUX_SETALL 17
#define LINUX_SEM_STAT 18
#define LINUX_SEM_INFO 19
union l_semun {
l_int val;
l_uintptr_t buf;
l_uintptr_t array;
l_uintptr_t __buf;
l_uintptr_t __pad;
} __packed;
/*
* Socket defines
*/
#define LINUX_SOCKET 1
#define LINUX_BIND 2
#define LINUX_CONNECT 3
#define LINUX_LISTEN 4
#define LINUX_ACCEPT 5
#define LINUX_GETSOCKNAME 6
#define LINUX_GETPEERNAME 7
#define LINUX_SOCKETPAIR 8
#define LINUX_SEND 9
#define LINUX_RECV 10
#define LINUX_SENDTO 11
#define LINUX_RECVFROM 12
#define LINUX_SHUTDOWN 13
#define LINUX_SETSOCKOPT 14
#define LINUX_GETSOCKOPT 15
#define LINUX_SENDMSG 16
#define LINUX_RECVMSG 17
#define LINUX_AF_UNSPEC 0
#define LINUX_AF_UNIX 1
#define LINUX_AF_INET 2
#define LINUX_AF_AX25 3
#define LINUX_AF_IPX 4
#define LINUX_AF_APPLETALK 5
#define LINUX_AF_INET6 10
#define LINUX_SOL_SOCKET 1
#define LINUX_SOL_IP 0
#define LINUX_SOL_IPX 256
#define LINUX_SOL_AX25 257
#define LINUX_SOL_TCP 6
#define LINUX_SOL_UDP 17
#define LINUX_SO_DEBUG 1
#define LINUX_SO_REUSEADDR 2
#define LINUX_SO_TYPE 3
#define LINUX_SO_ERROR 4
#define LINUX_SO_DONTROUTE 5
#define LINUX_SO_BROADCAST 6
#define LINUX_SO_SNDBUF 7
#define LINUX_SO_RCVBUF 8
#define LINUX_SO_KEEPALIVE 9
#define LINUX_SO_OOBINLINE 10
#define LINUX_SO_NO_CHECK 11
#define LINUX_SO_PRIORITY 12
#define LINUX_SO_LINGER 13
#define LINUX_IP_TOS 1
#define LINUX_IP_TTL 2
#define LINUX_IP_HDRINCL 3
#define LINUX_IP_OPTIONS 4
#define LINUX_IP_MULTICAST_IF 32
#define LINUX_IP_MULTICAST_TTL 33
#define LINUX_IP_MULTICAST_LOOP 34
#define LINUX_IP_ADD_MEMBERSHIP 35
#define LINUX_IP_DROP_MEMBERSHIP 36
struct l_sockaddr {
l_ushort sa_family;
char sa_data[14];
} __packed;
struct l_ifmap {
l_ulong mem_start;
l_ulong mem_end;
l_ushort base_addr;
u_char irq;
u_char dma;
u_char port;
} __packed;
#define LINUX_IFHWADDRLEN 6
#define LINUX_IFNAMSIZ 16
struct l_ifreq {
union {
char ifrn_name[LINUX_IFNAMSIZ];
} ifr_ifrn;
union {
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[1];
l_int ifru_metric;
l_int ifru_mtu;
struct l_ifmap ifru_map;
char ifru_slave[LINUX_IFNAMSIZ];
l_uintptr_t ifru_data;
} ifr_ifru;
} __packed;
#define ifr_name ifr_ifrn.ifrn_name /* interface name */
#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */
struct l_ifconf {
int ifc_len;
union {
l_uintptr_t ifcu_buf;
l_uintptr_t ifcu_req;
} ifc_ifcu;
} __packed;
#define ifc_buf ifc_ifcu.ifcu_buf
#define ifc_req ifc_ifcu.ifcu_req
/*
* 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;
} __packed;
#endif /* !_AMD64_LINUX_LINUX_H_ */

View File

@ -0,0 +1,91 @@
/*-
* Copyright (c) 1994-1995 Søren Schmidt
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer
* in this position and unchanged.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/proc.h>
#include <amd64/linux32/linux.h>
#include <amd64/linux32/linux32_proto.h>
#include <compat/linux/linux_util.h>
DUMMY(stime);
DUMMY(olduname);
DUMMY(syslog);
DUMMY(uname);
DUMMY(vhangup);
DUMMY(swapoff);
DUMMY(adjtimex);
DUMMY(create_module);
DUMMY(init_module);
DUMMY(delete_module);
DUMMY(get_kernel_syms);
DUMMY(quotactl);
DUMMY(bdflush);
DUMMY(sysfs);
DUMMY(query_module);
DUMMY(nfsservctl);
DUMMY(prctl);
DUMMY(rt_sigpending);
DUMMY(rt_sigtimedwait);
DUMMY(rt_sigqueueinfo);
DUMMY(capget);
DUMMY(capset);
DUMMY(sendfile);
DUMMY(truncate64);
DUMMY(setfsuid);
DUMMY(setfsgid);
DUMMY(pivot_root);
DUMMY(mincore);
DUMMY(fadvise64);
DUMMY(ptrace);
DUMMY(settimeofday);
#define DUMMY_XATTR(s) \
int \
linux_ ## s ## xattr( \
struct thread *td, struct linux_ ## s ## xattr_args *arg) \
{ \
\
return (ENOATTR); \
}
DUMMY_XATTR(set);
DUMMY_XATTR(lset);
DUMMY_XATTR(fset);
DUMMY_XATTR(get);
DUMMY_XATTR(lget);
DUMMY_XATTR(fget);
DUMMY_XATTR(list);
DUMMY_XATTR(llist);
DUMMY_XATTR(flist);
DUMMY_XATTR(remove);
DUMMY_XATTR(lremove);
DUMMY_XATTR(fremove);

View File

@ -0,0 +1,17 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/assym.h>
#include <sys/systm.h>
#include <amd64/linux32/linux.h>
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_FS, offsetof(struct l_sigcontext, sc_fs));
ASSYM(LINUX_SC_ES, offsetof(struct l_sigcontext, sc_es));
ASSYM(LINUX_SC_DS, offsetof(struct l_sigcontext, sc_ds));
ASSYM(LINUX_RT_SIGF_HANDLER, offsetof(struct l_rt_sigframe, sf_handler));
ASSYM(LINUX_RT_SIGF_UC, offsetof(struct l_rt_sigframe, sf_sc));

View File

@ -0,0 +1,145 @@
/*-
* Copyright (c) 2002 Maxim Sobolev <sobomax@FreeBSD.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer
* in this position and unchanged.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $FreeBSD$
*/
#ifndef _AMD64_LINUX_LINUX_IPC64_H_
#define _AMD64_LINUX_LINUX_IPC64_H_
/*
* The ipc64_perm structure for i386 architecture.
* Note extra padding because this structure is passed back and forth
* between kernel and user space.
*
* Pad space is left for:
* - 32-bit mode_t and seq
* - 2 miscellaneous 32-bit values
*/
struct l_ipc64_perm
{
l_key_t key;
l_uid_t uid;
l_gid_t gid;
l_uid_t cuid;
l_gid_t cgid;
l_mode_t mode;
l_ushort __pad1;
l_ushort seq;
l_ushort __pad2;
l_ulong __unused1;
l_ulong __unused2;
} __packed;
/*
* The msqid64_ds structure for i386 architecture.
* Note extra padding because this structure is passed back and forth
* between kernel and user space.
*
* Pad space is left for:
* - 64-bit time_t to solve y2038 problem
* - 2 miscellaneous 32-bit values
*/
struct l_msqid64_ds {
struct l_ipc64_perm msg_perm;
l_time_t msg_stime; /* last msgsnd time */
l_ulong __unused1;
l_time_t msg_rtime; /* last msgrcv time */
l_ulong __unused2;
l_time_t msg_ctime; /* last change time */
l_ulong __unused3;
l_ulong msg_cbytes; /* current number of bytes on queue */
l_ulong msg_qnum; /* number of messages in queue */
l_ulong msg_qbytes; /* max number of bytes on queue */
l_pid_t msg_lspid; /* pid of last msgsnd */
l_pid_t msg_lrpid; /* last receive pid */
l_ulong __unused4;
l_ulong __unused5;
} __packed;
/*
* The semid64_ds structure for i386 architecture.
* Note extra padding because this structure is passed back and forth
* between kernel and user space.
*
* Pad space is left for:
* - 64-bit time_t to solve y2038 problem
* - 2 miscellaneous 32-bit values
*/
struct l_semid64_ds {
struct l_ipc64_perm sem_perm; /* permissions */
l_time_t sem_otime; /* last semop time */
l_ulong __unused1;
l_time_t sem_ctime; /* last change time */
l_ulong __unused2;
l_ulong sem_nsems; /* no. of semaphores in array */
l_ulong __unused3;
l_ulong __unused4;
} __packed;
/*
* The shmid64_ds structure for i386 architecture.
* Note extra padding because this structure is passed back and forth
* between kernel and user space.
*
* Pad space is left for:
* - 64-bit time_t to solve y2038 problem
* - 2 miscellaneous 32-bit values
*/
struct l_shmid64_ds {
struct l_ipc64_perm shm_perm; /* operation perms */
l_size_t shm_segsz; /* size of segment (bytes) */
l_time_t shm_atime; /* last attach time */
l_ulong __unused1;
l_time_t shm_dtime; /* last detach time */
l_ulong __unused2;
l_time_t shm_ctime; /* last change time */
l_ulong __unused3;
l_pid_t shm_cpid; /* pid of creator */
l_pid_t shm_lpid; /* pid of last operator */
l_ulong shm_nattch; /* no. of current attaches */
l_ulong __unused4;
l_ulong __unused5;
} __packed;
struct l_shminfo64 {
l_ulong shmmax;
l_ulong shmmin;
l_ulong shmmni;
l_ulong shmseg;
l_ulong shmall;
l_ulong __unused1;
l_ulong __unused2;
l_ulong __unused3;
l_ulong __unused4;
} __packed;
#endif /* !_AMD64_LINUX_LINUX_IPC64_H_ */

View File

@ -0,0 +1,45 @@
/* $FreeBSD$ */
#include "linux32_assym.h" /* system definitions */
#include <machine/asmacros.h> /* miscellaneous asm macros */
#include <amd64/linux32/linux32_syscall.h> /* system call numbers */
.text
.code32
NON_GPROF_ENTRY(linux_sigcode)
call *LINUX_SIGF_HANDLER(%esp)
leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */
movl LINUX_SC_GS(%ebx),%gs
movl LINUX_SC_FS(%ebx),%fs
movl LINUX_SC_ES(%ebx),%es
movl LINUX_SC_DS(%ebx),%ds
movl %esp, %ebx /* pass sigframe */
push %eax /* fake ret addr */
movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */
int $0x80 /* enter kernel with args */
0: jmp 0b
ALIGN_TEXT
/* XXXXX */
linux_rt_sigcode:
call *LINUX_RT_SIGF_HANDLER(%esp)
leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */
movl LINUX_SC_GS(%ebx),%gs
movl LINUX_SC_FS(%ebx),%fs
movl LINUX_SC_ES(%ebx),%es
movl LINUX_SC_DS(%ebx),%ds
push %eax /* fake ret addr */
movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */
int $0x80 /* enter kernel with args */
0: jmp 0b
ALIGN_TEXT
/* XXXXX */
linux_esigcode:
.data
.globl linux_szsigcode, linux_sznonrtsigcode
linux_szsigcode:
.long linux_esigcode-linux_sigcode
linux_sznonrtsigcode:
.long linux_rt_sigcode-linux_sigcode

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,869 @@
/*
* System call prototypes.
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
* created from FreeBSD
*/
#ifndef _LINUX_SYSPROTO_H_
#define _LINUX_SYSPROTO_H_
#include <sys/signal.h>
#include <sys/acl.h>
#include <sys/thr.h>
#include <sys/umtx.h>
#include <posix4/_semaphore.h>
#include <sys/ucontext.h>
struct proc;
struct thread;
#define PAD_(t) (sizeof(register_t) <= sizeof(t) ? \
0 : sizeof(register_t) - sizeof(t))
#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_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_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_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_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_unlink_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(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_chdir_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(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_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_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_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_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_getpid_args {
register_t dummy;
};
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_oldumount_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(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_getuid16_args {
register_t dummy;
};
struct linux_stime_args {
register_t dummy;
};
struct linux_ptrace_args {
char req_l_[PADL_(l_long)]; l_long req; char req_r_[PADR_(l_long)];
char pid_l_[PADL_(l_long)]; l_long pid; char pid_r_[PADR_(l_long)];
char addr_l_[PADL_(l_long)]; l_long addr; char addr_r_[PADR_(l_long)];
char data_l_[PADL_(l_long)]; l_long data; char data_r_[PADR_(l_long)];
};
struct linux_alarm_args {
char secs_l_[PADL_(l_uint)]; l_uint secs; char secs_r_[PADR_(l_uint)];
};
struct linux_pause_args {
register_t dummy;
};
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_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_nice_args {
char inc_l_[PADL_(l_int)]; l_int inc; char inc_r_[PADR_(l_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_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_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_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
};
struct linux_pipe_args {
char pipefds_l_[PADL_(l_ulong *)]; l_ulong * pipefds; char pipefds_r_[PADR_(l_ulong *)];
};
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_brk_args {
char dsend_l_[PADL_(l_ulong)]; l_ulong dsend; char dsend_r_[PADR_(l_ulong)];
};
struct linux_setgid16_args {
char gid_l_[PADL_(l_gid16_t)]; l_gid16_t gid; char gid_r_[PADR_(l_gid16_t)];
};
struct linux_getgid16_args {
register_t dummy;
};
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_geteuid16_args {
register_t dummy;
};
struct linux_getegid16_args {
register_t dummy;
};
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_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_(uintptr_t)]; uintptr_t arg; char arg_r_[PADR_(uintptr_t)];
};
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_(uintptr_t)]; uintptr_t arg; char arg_r_[PADR_(uintptr_t)];
};
struct linux_olduname_args {
register_t dummy;
};
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 {
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_sgetmask_args {
register_t dummy;
};
struct linux_ssetmask_args {
char mask_l_[PADL_(l_osigset_t)]; l_osigset_t mask; char mask_r_[PADR_(l_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_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_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_sigpending_args {
char mask_l_[PADL_(l_osigset_t *)]; l_osigset_t * mask; char mask_r_[PADR_(l_osigset_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_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_getrusage_args {
char who_l_[PADL_(int)]; int who; char who_r_[PADR_(int)];
char rusage_l_[PADL_(struct l_rusage *)]; struct l_rusage * rusage; char rusage_r_[PADR_(struct l_rusage *)];
};
struct linux_gettimeofday_args {
char tp_l_[PADL_(struct l_timeval *)]; struct l_timeval * tp; char tp_r_[PADR_(struct l_timeval *)];
char tzp_l_[PADL_(struct timezone *)]; struct timezone * tzp; char tzp_r_[PADR_(struct timezone *)];
};
struct linux_settimeofday_args {
char tp_l_[PADL_(struct l_timeval *)]; struct l_timeval * tp; char tp_r_[PADR_(struct l_timeval *)];
char tzp_l_[PADL_(struct timezone *)]; struct timezone * tzp; char tzp_r_[PADR_(struct timezone *)];
};
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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_uname_args {
register_t dummy;
};
struct linux_vhangup_args {
register_t dummy;
};
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 {
register_t dummy;
};
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 {
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 {
char sfp_l_[PADL_(struct l_sigframe *)]; struct l_sigframe * sfp; char sfp_r_[PADR_(struct l_sigframe *)];
};
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 {
char buf_l_[PADL_(struct l_new_utsname *)]; struct l_new_utsname * buf; char buf_r_[PADR_(struct l_new_utsname *)];
};
struct linux_adjtimex_args {
register_t dummy;
};
struct linux_mprotect_args {
char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)];
char len_l_[PADL_(int)]; int len; char len_r_[PADR_(int)];
char prot_l_[PADL_(int)]; int prot; char prot_r_[PADR_(int)];
};
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 {
register_t dummy;
};
struct linux_init_module_args {
register_t dummy;
};
struct linux_delete_module_args {
register_t dummy;
};
struct linux_get_kernel_syms_args {
register_t dummy;
};
struct linux_quotactl_args {
register_t dummy;
};
struct linux_bdflush_args {
register_t dummy;
};
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 {
char per_l_[PADL_(l_ulong)]; l_ulong per; char per_r_[PADR_(l_ulong)];
};
struct linux_setfsuid16_args {
char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_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_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_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_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_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_readv_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)];
char iovcnt_l_[PADL_(u_int)]; u_int iovcnt; char iovcnt_r_[PADR_(u_int)];
};
struct linux_writev_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)];
char iovcnt_l_[PADL_(u_int)]; u_int iovcnt; char iovcnt_r_[PADR_(u_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_fdatasync_args {
char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)];
};
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_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_getscheduler_args {
char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_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_min_args {
char policy_l_[PADL_(l_int)]; l_int policy; char policy_r_[PADR_(l_int)];
};
struct linux_sched_rr_get_interval_args {
char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
char interval_l_[PADL_(struct l_timespec *)]; struct l_timespec * interval; char interval_r_[PADR_(struct l_timespec *)];
};
struct linux_nanosleep_args {
char rqtp_l_[PADL_(const struct l_timespec *)]; const struct l_timespec * rqtp; char rqtp_r_[PADR_(const struct l_timespec *)];
char rmtp_l_[PADL_(struct l_timespec *)]; struct l_timespec * rmtp; char rmtp_r_[PADR_(struct l_timespec *)];
};
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_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_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_query_module_args {
register_t dummy;
};
struct linux_nfsservctl_args {
register_t dummy;
};
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_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 {
char ucp_l_[PADL_(struct l_ucontext *)]; struct l_ucontext * ucp; char ucp_r_[PADR_(struct l_ucontext *)];
};
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 {
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 {
register_t dummy;
};
struct linux_rt_sigtimedwait_args {
register_t dummy;
};
struct linux_rt_sigqueueinfo_args {
register_t dummy;
};
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 {
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 {
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_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_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 {
register_t dummy;
};
struct linux_capset_args {
register_t dummy;
};
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 {
register_t dummy;
};
struct linux_vfork_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_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_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_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_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_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_lchown_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char uid_l_[PADL_(l_uid_t)]; l_uid_t uid; char uid_r_[PADR_(l_uid_t)];
char gid_l_[PADL_(l_gid_t)]; l_gid_t gid; char gid_r_[PADR_(l_gid_t)];
};
struct linux_getuid_args {
register_t dummy;
};
struct linux_getgid_args {
register_t dummy;
};
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_chown_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char uid_l_[PADL_(l_uid_t)]; l_uid_t uid; char uid_r_[PADR_(l_uid_t)];
char gid_l_[PADL_(l_gid_t)]; l_gid_t gid; char gid_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_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_(uintptr_t)]; uintptr_t arg; char arg_r_[PADR_(uintptr_t)];
};
struct linux_setxattr_args {
register_t dummy;
};
struct linux_lsetxattr_args {
register_t dummy;
};
struct linux_fsetxattr_args {
register_t dummy;
};
struct linux_getxattr_args {
register_t dummy;
};
struct linux_lgetxattr_args {
register_t dummy;
};
struct linux_fgetxattr_args {
register_t dummy;
};
struct linux_listxattr_args {
register_t dummy;
};
struct linux_llistxattr_args {
register_t dummy;
};
struct linux_flistxattr_args {
register_t dummy;
};
struct linux_removexattr_args {
register_t dummy;
};
struct linux_lremovexattr_args {
register_t dummy;
};
struct linux_fremovexattr_args {
register_t dummy;
};
struct linux_fadvise64_args {
register_t dummy;
};
int linux_fork(struct thread *, struct linux_fork_args *);
int linux_open(struct thread *, struct linux_open_args *);
int linux_waitpid(struct thread *, struct linux_waitpid_args *);
int linux_creat(struct thread *, struct linux_creat_args *);
int linux_link(struct thread *, struct linux_link_args *);
int linux_unlink(struct thread *, struct linux_unlink_args *);
int linux_execve(struct thread *, struct linux_execve_args *);
int linux_chdir(struct thread *, struct linux_chdir_args *);
int linux_time(struct thread *, struct linux_time_args *);
int linux_mknod(struct thread *, struct linux_mknod_args *);
int linux_chmod(struct thread *, struct linux_chmod_args *);
int linux_lchown16(struct thread *, struct linux_lchown16_args *);
int linux_lseek(struct thread *, struct linux_lseek_args *);
int linux_getpid(struct thread *, struct linux_getpid_args *);
int linux_mount(struct thread *, struct linux_mount_args *);
int linux_oldumount(struct thread *, struct linux_oldumount_args *);
int linux_setuid16(struct thread *, struct linux_setuid16_args *);
int linux_getuid16(struct thread *, struct linux_getuid16_args *);
int linux_stime(struct thread *, struct linux_stime_args *);
int linux_ptrace(struct thread *, struct linux_ptrace_args *);
int linux_alarm(struct thread *, struct linux_alarm_args *);
int linux_pause(struct thread *, struct linux_pause_args *);
int linux_utime(struct thread *, struct linux_utime_args *);
int linux_access(struct thread *, struct linux_access_args *);
int linux_nice(struct thread *, struct linux_nice_args *);
int linux_kill(struct thread *, struct linux_kill_args *);
int linux_rename(struct thread *, struct linux_rename_args *);
int linux_mkdir(struct thread *, struct linux_mkdir_args *);
int linux_rmdir(struct thread *, struct linux_rmdir_args *);
int linux_pipe(struct thread *, struct linux_pipe_args *);
int linux_times(struct thread *, struct linux_times_args *);
int linux_brk(struct thread *, struct linux_brk_args *);
int linux_setgid16(struct thread *, struct linux_setgid16_args *);
int linux_getgid16(struct thread *, struct linux_getgid16_args *);
int linux_signal(struct thread *, struct linux_signal_args *);
int linux_geteuid16(struct thread *, struct linux_geteuid16_args *);
int linux_getegid16(struct thread *, struct linux_getegid16_args *);
int linux_umount(struct thread *, struct linux_umount_args *);
int linux_ioctl(struct thread *, struct linux_ioctl_args *);
int linux_fcntl(struct thread *, struct linux_fcntl_args *);
int linux_olduname(struct thread *, struct linux_olduname_args *);
int linux_ustat(struct thread *, struct linux_ustat_args *);
int linux_sigaction(struct thread *, struct linux_sigaction_args *);
int linux_sgetmask(struct thread *, struct linux_sgetmask_args *);
int linux_ssetmask(struct thread *, struct linux_ssetmask_args *);
int linux_setreuid16(struct thread *, struct linux_setreuid16_args *);
int linux_setregid16(struct thread *, struct linux_setregid16_args *);
int linux_sigsuspend(struct thread *, struct linux_sigsuspend_args *);
int linux_sigpending(struct thread *, struct linux_sigpending_args *);
int linux_setrlimit(struct thread *, struct linux_setrlimit_args *);
int linux_old_getrlimit(struct thread *, struct linux_old_getrlimit_args *);
int linux_getrusage(struct thread *, struct linux_getrusage_args *);
int linux_gettimeofday(struct thread *, struct linux_gettimeofday_args *);
int linux_settimeofday(struct thread *, struct linux_settimeofday_args *);
int linux_getgroups16(struct thread *, struct linux_getgroups16_args *);
int linux_setgroups16(struct thread *, struct linux_setgroups16_args *);
int linux_old_select(struct thread *, struct linux_old_select_args *);
int linux_symlink(struct thread *, struct linux_symlink_args *);
int linux_readlink(struct thread *, struct linux_readlink_args *);
int linux_reboot(struct thread *, struct linux_reboot_args *);
int linux_readdir(struct thread *, struct linux_readdir_args *);
int linux_mmap(struct thread *, struct linux_mmap_args *);
int linux_truncate(struct thread *, struct linux_truncate_args *);
int linux_statfs(struct thread *, struct linux_statfs_args *);
int linux_fstatfs(struct thread *, struct linux_fstatfs_args *);
int linux_socketcall(struct thread *, struct linux_socketcall_args *);
int linux_syslog(struct thread *, struct linux_syslog_args *);
int linux_setitimer(struct thread *, struct linux_setitimer_args *);
int linux_getitimer(struct thread *, struct linux_getitimer_args *);
int linux_newstat(struct thread *, struct linux_newstat_args *);
int linux_newlstat(struct thread *, struct linux_newlstat_args *);
int linux_newfstat(struct thread *, struct linux_newfstat_args *);
int linux_uname(struct thread *, struct linux_uname_args *);
int linux_vhangup(struct thread *, struct linux_vhangup_args *);
int linux_wait4(struct thread *, struct linux_wait4_args *);
int linux_swapoff(struct thread *, struct linux_swapoff_args *);
int linux_sysinfo(struct thread *, struct linux_sysinfo_args *);
int linux_ipc(struct thread *, struct linux_ipc_args *);
int linux_sigreturn(struct thread *, struct linux_sigreturn_args *);
int linux_clone(struct thread *, struct linux_clone_args *);
int linux_newuname(struct thread *, struct linux_newuname_args *);
int linux_adjtimex(struct thread *, struct linux_adjtimex_args *);
int linux_mprotect(struct thread *, struct linux_mprotect_args *);
int linux_sigprocmask(struct thread *, struct linux_sigprocmask_args *);
int linux_create_module(struct thread *, struct linux_create_module_args *);
int linux_init_module(struct thread *, struct linux_init_module_args *);
int linux_delete_module(struct thread *, struct linux_delete_module_args *);
int linux_get_kernel_syms(struct thread *, struct linux_get_kernel_syms_args *);
int linux_quotactl(struct thread *, struct linux_quotactl_args *);
int linux_bdflush(struct thread *, struct linux_bdflush_args *);
int linux_sysfs(struct thread *, struct linux_sysfs_args *);
int linux_personality(struct thread *, struct linux_personality_args *);
int linux_setfsuid16(struct thread *, struct linux_setfsuid16_args *);
int linux_setfsgid16(struct thread *, struct linux_setfsgid16_args *);
int linux_llseek(struct thread *, struct linux_llseek_args *);
int linux_getdents(struct thread *, struct linux_getdents_args *);
int linux_select(struct thread *, struct linux_select_args *);
int linux_msync(struct thread *, struct linux_msync_args *);
int linux_readv(struct thread *, struct linux_readv_args *);
int linux_writev(struct thread *, struct linux_writev_args *);
int linux_getsid(struct thread *, struct linux_getsid_args *);
int linux_fdatasync(struct thread *, struct linux_fdatasync_args *);
int linux_sysctl(struct thread *, struct linux_sysctl_args *);
int linux_sched_setscheduler(struct thread *, struct linux_sched_setscheduler_args *);
int linux_sched_getscheduler(struct thread *, struct linux_sched_getscheduler_args *);
int linux_sched_get_priority_max(struct thread *, struct linux_sched_get_priority_max_args *);
int linux_sched_get_priority_min(struct thread *, struct linux_sched_get_priority_min_args *);
int linux_sched_rr_get_interval(struct thread *, struct linux_sched_rr_get_interval_args *);
int linux_nanosleep(struct thread *, struct linux_nanosleep_args *);
int linux_mremap(struct thread *, struct linux_mremap_args *);
int linux_setresuid16(struct thread *, struct linux_setresuid16_args *);
int linux_getresuid16(struct thread *, struct linux_getresuid16_args *);
int linux_query_module(struct thread *, struct linux_query_module_args *);
int linux_nfsservctl(struct thread *, struct linux_nfsservctl_args *);
int linux_setresgid16(struct thread *, struct linux_setresgid16_args *);
int linux_getresgid16(struct thread *, struct linux_getresgid16_args *);
int linux_prctl(struct thread *, struct linux_prctl_args *);
int linux_rt_sigreturn(struct thread *, struct linux_rt_sigreturn_args *);
int linux_rt_sigaction(struct thread *, struct linux_rt_sigaction_args *);
int linux_rt_sigprocmask(struct thread *, struct linux_rt_sigprocmask_args *);
int linux_rt_sigpending(struct thread *, struct linux_rt_sigpending_args *);
int linux_rt_sigtimedwait(struct thread *, struct linux_rt_sigtimedwait_args *);
int linux_rt_sigqueueinfo(struct thread *, struct linux_rt_sigqueueinfo_args *);
int linux_rt_sigsuspend(struct thread *, struct linux_rt_sigsuspend_args *);
int linux_pread(struct thread *, struct linux_pread_args *);
int linux_pwrite(struct thread *, struct linux_pwrite_args *);
int linux_chown16(struct thread *, struct linux_chown16_args *);
int linux_getcwd(struct thread *, struct linux_getcwd_args *);
int linux_capget(struct thread *, struct linux_capget_args *);
int linux_capset(struct thread *, struct linux_capset_args *);
int linux_sigaltstack(struct thread *, struct linux_sigaltstack_args *);
int linux_sendfile(struct thread *, struct linux_sendfile_args *);
int linux_vfork(struct thread *, struct linux_vfork_args *);
int linux_getrlimit(struct thread *, struct linux_getrlimit_args *);
int linux_mmap2(struct thread *, struct linux_mmap2_args *);
int linux_truncate64(struct thread *, struct linux_truncate64_args *);
int linux_ftruncate64(struct thread *, struct linux_ftruncate64_args *);
int linux_stat64(struct thread *, struct linux_stat64_args *);
int linux_lstat64(struct thread *, struct linux_lstat64_args *);
int linux_fstat64(struct thread *, struct linux_fstat64_args *);
int linux_lchown(struct thread *, struct linux_lchown_args *);
int linux_getuid(struct thread *, struct linux_getuid_args *);
int linux_getgid(struct thread *, struct linux_getgid_args *);
int linux_getgroups(struct thread *, struct linux_getgroups_args *);
int linux_setgroups(struct thread *, struct linux_setgroups_args *);
int linux_chown(struct thread *, struct linux_chown_args *);
int linux_setfsuid(struct thread *, struct linux_setfsuid_args *);
int linux_setfsgid(struct thread *, struct linux_setfsgid_args *);
int linux_pivot_root(struct thread *, struct linux_pivot_root_args *);
int linux_mincore(struct thread *, struct linux_mincore_args *);
int linux_getdents64(struct thread *, struct linux_getdents64_args *);
int linux_fcntl64(struct thread *, struct linux_fcntl64_args *);
int linux_setxattr(struct thread *, struct linux_setxattr_args *);
int linux_lsetxattr(struct thread *, struct linux_lsetxattr_args *);
int linux_fsetxattr(struct thread *, struct linux_fsetxattr_args *);
int linux_getxattr(struct thread *, struct linux_getxattr_args *);
int linux_lgetxattr(struct thread *, struct linux_lgetxattr_args *);
int linux_fgetxattr(struct thread *, struct linux_fgetxattr_args *);
int linux_listxattr(struct thread *, struct linux_listxattr_args *);
int linux_llistxattr(struct thread *, struct linux_llistxattr_args *);
int linux_flistxattr(struct thread *, struct linux_flistxattr_args *);
int linux_removexattr(struct thread *, struct linux_removexattr_args *);
int linux_lremovexattr(struct thread *, struct linux_lremovexattr_args *);
int linux_fremovexattr(struct thread *, struct linux_fremovexattr_args *);
int linux_fadvise64(struct thread *, struct linux_fadvise64_args *);
#ifdef COMPAT_43
#endif /* COMPAT_43 */
#ifdef COMPAT_FREEBSD4
#endif /* COMPAT_FREEBSD4 */
#undef PAD_
#undef PADL_
#undef PADR_
#endif /* !_LINUX_SYSPROTO_H_ */

View File

@ -0,0 +1,222 @@
/*
* System call numbers.
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
* created from FreeBSD
*/
#define LINUX_SYS_exit 1
#define LINUX_SYS_linux_fork 2
#define LINUX_SYS_read 3
#define LINUX_SYS_write 4
#define LINUX_SYS_linux_open 5
#define LINUX_SYS_close 6
#define LINUX_SYS_linux_waitpid 7
#define LINUX_SYS_linux_creat 8
#define LINUX_SYS_linux_link 9
#define LINUX_SYS_linux_unlink 10
#define LINUX_SYS_linux_execve 11
#define LINUX_SYS_linux_chdir 12
#define LINUX_SYS_linux_time 13
#define LINUX_SYS_linux_mknod 14
#define LINUX_SYS_linux_chmod 15
#define LINUX_SYS_linux_lchown16 16
#define LINUX_SYS_linux_lseek 19
#define LINUX_SYS_linux_getpid 20
#define LINUX_SYS_linux_mount 21
#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_pause 29
#define LINUX_SYS_linux_utime 30
#define LINUX_SYS_linux_access 33
#define LINUX_SYS_linux_nice 34
#define LINUX_SYS_sync 36
#define LINUX_SYS_linux_kill 37
#define LINUX_SYS_linux_rename 38
#define LINUX_SYS_linux_mkdir 39
#define LINUX_SYS_linux_rmdir 40
#define LINUX_SYS_dup 41
#define LINUX_SYS_linux_pipe 42
#define LINUX_SYS_linux_times 43
#define LINUX_SYS_linux_brk 45
#define LINUX_SYS_linux_setgid16 46
#define LINUX_SYS_linux_getgid16 47
#define LINUX_SYS_linux_signal 48
#define LINUX_SYS_linux_geteuid16 49
#define LINUX_SYS_linux_getegid16 50
#define LINUX_SYS_acct 51
#define LINUX_SYS_linux_umount 52
#define LINUX_SYS_linux_ioctl 54
#define LINUX_SYS_linux_fcntl 55
#define LINUX_SYS_setpgid 57
#define LINUX_SYS_linux_olduname 59
#define LINUX_SYS_umask 60
#define LINUX_SYS_chroot 61
#define LINUX_SYS_linux_ustat 62
#define LINUX_SYS_dup2 63
#define LINUX_SYS_getppid 64
#define LINUX_SYS_getpgrp 65
#define LINUX_SYS_setsid 66
#define LINUX_SYS_linux_sigaction 67
#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_old_getrlimit 76
#define LINUX_SYS_linux_getrusage 77
#define LINUX_SYS_linux_gettimeofday 78
#define LINUX_SYS_linux_settimeofday 79
#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_linux_readlink 85
#define LINUX_SYS_swapon 87
#define LINUX_SYS_linux_reboot 88
#define LINUX_SYS_linux_readdir 89
#define LINUX_SYS_linux_mmap 90
#define LINUX_SYS_munmap 91
#define LINUX_SYS_linux_truncate 92
#define LINUX_SYS_oftruncate 93
#define LINUX_SYS_fchmod 94
#define LINUX_SYS_fchown 95
#define LINUX_SYS_getpriority 96
#define LINUX_SYS_setpriority 97
#define LINUX_SYS_linux_statfs 99
#define LINUX_SYS_linux_fstatfs 100
#define LINUX_SYS_linux_socketcall 102
#define LINUX_SYS_linux_syslog 103
#define LINUX_SYS_linux_setitimer 104
#define LINUX_SYS_linux_getitimer 105
#define LINUX_SYS_linux_newstat 106
#define LINUX_SYS_linux_newlstat 107
#define LINUX_SYS_linux_newfstat 108
#define LINUX_SYS_linux_uname 109
#define LINUX_SYS_linux_vhangup 111
#define LINUX_SYS_linux_wait4 114
#define LINUX_SYS_linux_swapoff 115
#define LINUX_SYS_linux_sysinfo 116
#define LINUX_SYS_linux_ipc 117
#define LINUX_SYS_fsync 118
#define LINUX_SYS_linux_sigreturn 119
#define LINUX_SYS_linux_clone 120
#define LINUX_SYS_setdomainname 121
#define LINUX_SYS_linux_newuname 122
#define LINUX_SYS_linux_adjtimex 124
#define LINUX_SYS_linux_mprotect 125
#define LINUX_SYS_linux_sigprocmask 126
#define LINUX_SYS_linux_create_module 127
#define LINUX_SYS_linux_init_module 128
#define LINUX_SYS_linux_delete_module 129
#define LINUX_SYS_linux_get_kernel_syms 130
#define LINUX_SYS_linux_quotactl 131
#define LINUX_SYS_getpgid 132
#define LINUX_SYS_fchdir 133
#define LINUX_SYS_linux_bdflush 134
#define LINUX_SYS_linux_sysfs 135
#define LINUX_SYS_linux_personality 136
#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_select 142
#define LINUX_SYS_flock 143
#define LINUX_SYS_linux_msync 144
#define LINUX_SYS_linux_readv 145
#define LINUX_SYS_linux_writev 146
#define LINUX_SYS_linux_getsid 147
#define LINUX_SYS_linux_fdatasync 148
#define LINUX_SYS_linux_sysctl 149
#define LINUX_SYS_mlock 150
#define LINUX_SYS_munlock 151
#define LINUX_SYS_mlockall 152
#define LINUX_SYS_munlockall 153
#define LINUX_SYS_sched_setparam 154
#define LINUX_SYS_sched_getparam 155
#define LINUX_SYS_linux_sched_setscheduler 156
#define LINUX_SYS_linux_sched_getscheduler 157
#define LINUX_SYS_sched_yield 158
#define LINUX_SYS_linux_sched_get_priority_max 159
#define LINUX_SYS_linux_sched_get_priority_min 160
#define LINUX_SYS_linux_sched_rr_get_interval 161
#define LINUX_SYS_linux_nanosleep 162
#define LINUX_SYS_linux_mremap 163
#define LINUX_SYS_linux_setresuid16 164
#define LINUX_SYS_linux_getresuid16 165
#define LINUX_SYS_linux_query_module 167
#define LINUX_SYS_poll 168
#define LINUX_SYS_linux_nfsservctl 169
#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
#define LINUX_SYS_linux_rt_sigprocmask 175
#define LINUX_SYS_linux_rt_sigpending 176
#define LINUX_SYS_linux_rt_sigtimedwait 177
#define LINUX_SYS_linux_rt_sigqueueinfo 178
#define LINUX_SYS_linux_rt_sigsuspend 179
#define LINUX_SYS_linux_pread 180
#define LINUX_SYS_linux_pwrite 181
#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_vfork 190
#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_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_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_madvise 219
#define LINUX_SYS_linux_getdents64 220
#define LINUX_SYS_linux_fcntl64 221
#define LINUX_SYS_gettid 224
#define LINUX_SYS_linux_setxattr 226
#define LINUX_SYS_linux_lsetxattr 227
#define LINUX_SYS_linux_fsetxattr 228
#define LINUX_SYS_linux_getxattr 229
#define LINUX_SYS_linux_lgetxattr 230
#define LINUX_SYS_linux_fgetxattr 231
#define LINUX_SYS_linux_listxattr 232
#define LINUX_SYS_linux_llistxattr 233
#define LINUX_SYS_linux_flistxattr 234
#define LINUX_SYS_linux_removexattr 235
#define LINUX_SYS_linux_lremovexattr 236
#define LINUX_SYS_linux_fremovexattr 237
#define LINUX_SYS_linux_fadvise64 250
#define LINUX_SYS_exit_group 252
#define LINUX_SYS_MAXSYSCALL 268

View File

@ -0,0 +1,288 @@
/*
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
* created from FreeBSD
*/
#include "opt_compat.h"
#include <sys/param.h>
#include <sys/sysent.h>
#include <sys/sysproto.h>
#include <amd64/linux32/linux.h>
#include <amd64/linux32/linux32_proto.h>
#define AS(name) (sizeof(struct name) / sizeof(register_t))
/* The casts are bogus but will do for now. */
struct sysent linux_sysent[] = {
{ 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 */
{ SYF_MPSAFE | AS(read_args), (sy_call_t *)read }, /* 3 = read */
{ SYF_MPSAFE | AS(write_args), (sy_call_t *)write }, /* 4 = write */
{ AS(linux_open_args), (sy_call_t *)linux_open }, /* 5 = linux_open */
{ SYF_MPSAFE | AS(close_args), (sy_call_t *)close }, /* 6 = close */
{ SYF_MPSAFE | AS(linux_waitpid_args), (sy_call_t *)linux_waitpid }, /* 7 = linux_waitpid */
{ AS(linux_creat_args), (sy_call_t *)linux_creat }, /* 8 = linux_creat */
{ AS(linux_link_args), (sy_call_t *)linux_link }, /* 9 = linux_link */
{ AS(linux_unlink_args), (sy_call_t *)linux_unlink }, /* 10 = linux_unlink */
{ AS(linux_execve_args), (sy_call_t *)linux_execve }, /* 11 = linux_execve */
{ AS(linux_chdir_args), (sy_call_t *)linux_chdir }, /* 12 = linux_chdir */
{ 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_lchown16_args), (sy_call_t *)linux_lchown16 }, /* 16 = linux_lchown16 */
{ 0, (sy_call_t *)nosys }, /* 17 = break */
{ 0, (sy_call_t *)nosys }, /* 18 = stat */
{ AS(linux_lseek_args), (sy_call_t *)linux_lseek }, /* 19 = linux_lseek */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getpid }, /* 20 = linux_getpid */
{ AS(linux_mount_args), (sy_call_t *)linux_mount }, /* 21 = linux_mount */
{ AS(linux_oldumount_args), (sy_call_t *)linux_oldumount }, /* 22 = linux_oldumount */
{ SYF_MPSAFE | AS(linux_setuid16_args), (sy_call_t *)linux_setuid16 }, /* 23 = linux_setuid16 */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getuid16 }, /* 24 = linux_getuid16 */
{ 0, (sy_call_t *)linux_stime }, /* 25 = linux_stime */
{ SYF_MPSAFE | AS(linux_ptrace_args), (sy_call_t *)linux_ptrace }, /* 26 = linux_ptrace */
{ AS(linux_alarm_args), (sy_call_t *)linux_alarm }, /* 27 = linux_alarm */
{ 0, (sy_call_t *)nosys }, /* 28 = fstat */
{ SYF_MPSAFE | 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 *)nosys }, /* 31 = stty */
{ 0, (sy_call_t *)nosys }, /* 32 = gtty */
{ AS(linux_access_args), (sy_call_t *)linux_access }, /* 33 = linux_access */
{ SYF_MPSAFE | AS(linux_nice_args), (sy_call_t *)linux_nice }, /* 34 = linux_nice */
{ 0, (sy_call_t *)nosys }, /* 35 = ftime */
{ 0, (sy_call_t *)sync }, /* 36 = sync */
{ SYF_MPSAFE | AS(linux_kill_args), (sy_call_t *)linux_kill }, /* 37 = linux_kill */
{ AS(linux_rename_args), (sy_call_t *)linux_rename }, /* 38 = linux_rename */
{ AS(linux_mkdir_args), (sy_call_t *)linux_mkdir }, /* 39 = linux_mkdir */
{ AS(linux_rmdir_args), (sy_call_t *)linux_rmdir }, /* 40 = linux_rmdir */
{ SYF_MPSAFE | AS(dup_args), (sy_call_t *)dup }, /* 41 = dup */
{ SYF_MPSAFE | 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 *)nosys }, /* 44 = prof */
{ AS(linux_brk_args), (sy_call_t *)linux_brk }, /* 45 = linux_brk */
{ SYF_MPSAFE | AS(linux_setgid16_args), (sy_call_t *)linux_setgid16 }, /* 46 = linux_setgid16 */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getgid16 }, /* 47 = linux_getgid16 */
{ SYF_MPSAFE | AS(linux_signal_args), (sy_call_t *)linux_signal }, /* 48 = linux_signal */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_geteuid16 }, /* 49 = linux_geteuid16 */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getegid16 }, /* 50 = linux_getegid16 */
{ SYF_MPSAFE | AS(acct_args), (sy_call_t *)acct }, /* 51 = acct */
{ 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 *)nosys }, /* 56 = mpx */
{ SYF_MPSAFE | AS(setpgid_args), (sy_call_t *)setpgid }, /* 57 = setpgid */
{ 0, (sy_call_t *)nosys }, /* 58 = ulimit */
{ 0, (sy_call_t *)linux_olduname }, /* 59 = linux_olduname */
{ SYF_MPSAFE | AS(umask_args), (sy_call_t *)umask }, /* 60 = umask */
{ AS(chroot_args), (sy_call_t *)chroot }, /* 61 = chroot */
{ AS(linux_ustat_args), (sy_call_t *)linux_ustat }, /* 62 = linux_ustat */
{ SYF_MPSAFE | AS(dup2_args), (sy_call_t *)dup2 }, /* 63 = dup2 */
{ SYF_MPSAFE | 0, (sy_call_t *)getppid }, /* 64 = getppid */
{ SYF_MPSAFE | 0, (sy_call_t *)getpgrp }, /* 65 = getpgrp */
{ SYF_MPSAFE | 0, (sy_call_t *)setsid }, /* 66 = setsid */
{ SYF_MPSAFE | AS(linux_sigaction_args), (sy_call_t *)linux_sigaction }, /* 67 = linux_sigaction */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_sgetmask }, /* 68 = linux_sgetmask */
{ SYF_MPSAFE | AS(linux_ssetmask_args), (sy_call_t *)linux_ssetmask }, /* 69 = linux_ssetmask */
{ SYF_MPSAFE | AS(linux_setreuid16_args), (sy_call_t *)linux_setreuid16 }, /* 70 = linux_setreuid16 */
{ SYF_MPSAFE | AS(linux_setregid16_args), (sy_call_t *)linux_setregid16 }, /* 71 = linux_setregid16 */
{ SYF_MPSAFE | AS(linux_sigsuspend_args), (sy_call_t *)linux_sigsuspend }, /* 72 = linux_sigsuspend */
{ SYF_MPSAFE | AS(linux_sigpending_args), (sy_call_t *)linux_sigpending }, /* 73 = linux_sigpending */
{ SYF_MPSAFE | AS(sethostname_args), (sy_call_t *)osethostname }, /* 74 = osethostname */
{ SYF_MPSAFE | AS(linux_setrlimit_args), (sy_call_t *)linux_setrlimit }, /* 75 = linux_setrlimit */
{ SYF_MPSAFE | AS(linux_old_getrlimit_args), (sy_call_t *)linux_old_getrlimit }, /* 76 = linux_old_getrlimit */
{ SYF_MPSAFE | AS(linux_getrusage_args), (sy_call_t *)linux_getrusage }, /* 77 = linux_getrusage */
{ SYF_MPSAFE | AS(linux_gettimeofday_args), (sy_call_t *)linux_gettimeofday }, /* 78 = linux_gettimeofday */
{ SYF_MPSAFE | AS(linux_settimeofday_args), (sy_call_t *)linux_settimeofday }, /* 79 = linux_settimeofday */
{ SYF_MPSAFE | AS(linux_getgroups16_args), (sy_call_t *)linux_getgroups16 }, /* 80 = linux_getgroups16 */
{ SYF_MPSAFE | 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 */
{ 0, (sy_call_t *)nosys }, /* 84 = ostat */
{ AS(linux_readlink_args), (sy_call_t *)linux_readlink }, /* 85 = linux_readlink */
{ 0, (sy_call_t *)nosys }, /* 86 = linux_uselib */
{ AS(swapon_args), (sy_call_t *)swapon }, /* 87 = swapon */
{ AS(linux_reboot_args), (sy_call_t *)linux_reboot }, /* 88 = linux_reboot */
{ AS(linux_readdir_args), (sy_call_t *)linux_readdir }, /* 89 = linux_readdir */
{ AS(linux_mmap_args), (sy_call_t *)linux_mmap }, /* 90 = linux_mmap */
{ AS(munmap_args), (sy_call_t *)munmap }, /* 91 = munmap */
{ AS(linux_truncate_args), (sy_call_t *)linux_truncate }, /* 92 = linux_truncate */
{ AS(oftruncate_args), (sy_call_t *)oftruncate }, /* 93 = oftruncate */
{ AS(fchmod_args), (sy_call_t *)fchmod }, /* 94 = fchmod */
{ AS(fchown_args), (sy_call_t *)fchown }, /* 95 = fchown */
{ SYF_MPSAFE | AS(getpriority_args), (sy_call_t *)getpriority }, /* 96 = getpriority */
{ SYF_MPSAFE | AS(setpriority_args), (sy_call_t *)setpriority }, /* 97 = setpriority */
{ 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 */
{ 0, (sy_call_t *)nosys }, /* 101 = ioperm */
{ AS(linux_socketcall_args), (sy_call_t *)linux_socketcall }, /* 102 = linux_socketcall */
{ 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 */
{ AS(linux_newlstat_args), (sy_call_t *)linux_newlstat }, /* 107 = linux_newlstat */
{ AS(linux_newfstat_args), (sy_call_t *)linux_newfstat }, /* 108 = linux_newfstat */
{ 0, (sy_call_t *)linux_uname }, /* 109 = linux_uname */
{ 0, (sy_call_t *)nosys }, /* 110 = iopl */
{ 0, (sy_call_t *)linux_vhangup }, /* 111 = linux_vhangup */
{ 0, (sy_call_t *)nosys }, /* 112 = idle */
{ 0, (sy_call_t *)nosys }, /* 113 = vm86old */
{ SYF_MPSAFE | AS(linux_wait4_args), (sy_call_t *)linux_wait4 }, /* 114 = linux_wait4 */
{ 0, (sy_call_t *)linux_swapoff }, /* 115 = linux_swapoff */
{ AS(linux_sysinfo_args), (sy_call_t *)linux_sysinfo }, /* 116 = linux_sysinfo */
{ AS(linux_ipc_args), (sy_call_t *)linux_ipc }, /* 117 = linux_ipc */
{ AS(fsync_args), (sy_call_t *)fsync }, /* 118 = fsync */
{ SYF_MPSAFE | AS(linux_sigreturn_args), (sy_call_t *)linux_sigreturn }, /* 119 = linux_sigreturn */
{ SYF_MPSAFE | AS(linux_clone_args), (sy_call_t *)linux_clone }, /* 120 = linux_clone */
{ SYF_MPSAFE | AS(setdomainname_args), (sy_call_t *)setdomainname }, /* 121 = setdomainname */
{ AS(linux_newuname_args), (sy_call_t *)linux_newuname }, /* 122 = linux_newuname */
{ 0, (sy_call_t *)nosys }, /* 123 = modify_ldt */
{ 0, (sy_call_t *)linux_adjtimex }, /* 124 = linux_adjtimex */
{ SYF_MPSAFE | AS(linux_mprotect_args), (sy_call_t *)linux_mprotect }, /* 125 = linux_mprotect */
{ SYF_MPSAFE | AS(linux_sigprocmask_args), (sy_call_t *)linux_sigprocmask }, /* 126 = linux_sigprocmask */
{ 0, (sy_call_t *)linux_create_module }, /* 127 = linux_create_module */
{ 0, (sy_call_t *)linux_init_module }, /* 128 = linux_init_module */
{ 0, (sy_call_t *)linux_delete_module }, /* 129 = linux_delete_module */
{ 0, (sy_call_t *)linux_get_kernel_syms }, /* 130 = linux_get_kernel_syms */
{ 0, (sy_call_t *)linux_quotactl }, /* 131 = linux_quotactl */
{ AS(getpgid_args), (sy_call_t *)getpgid }, /* 132 = getpgid */
{ AS(fchdir_args), (sy_call_t *)fchdir }, /* 133 = fchdir */
{ 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 *)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_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(linux_readv_args), (sy_call_t *)linux_readv }, /* 145 = linux_readv */
{ AS(linux_writev_args), (sy_call_t *)linux_writev }, /* 146 = linux_writev */
{ SYF_MPSAFE | AS(linux_getsid_args), (sy_call_t *)linux_getsid }, /* 147 = linux_getsid */
{ AS(linux_fdatasync_args), (sy_call_t *)linux_fdatasync }, /* 148 = linux_fdatasync */
{ AS(linux_sysctl_args), (sy_call_t *)linux_sysctl }, /* 149 = linux_sysctl */
{ SYF_MPSAFE | AS(mlock_args), (sy_call_t *)mlock }, /* 150 = mlock */
{ SYF_MPSAFE | AS(munlock_args), (sy_call_t *)munlock }, /* 151 = munlock */
{ SYF_MPSAFE | AS(mlockall_args), (sy_call_t *)mlockall }, /* 152 = mlockall */
{ SYF_MPSAFE | 0, (sy_call_t *)munlockall }, /* 153 = munlockall */
{ SYF_MPSAFE | AS(sched_setparam_args), (sy_call_t *)sched_setparam }, /* 154 = sched_setparam */
{ SYF_MPSAFE | AS(sched_getparam_args), (sy_call_t *)sched_getparam }, /* 155 = sched_getparam */
{ SYF_MPSAFE | AS(linux_sched_setscheduler_args), (sy_call_t *)linux_sched_setscheduler }, /* 156 = linux_sched_setscheduler */
{ SYF_MPSAFE | AS(linux_sched_getscheduler_args), (sy_call_t *)linux_sched_getscheduler }, /* 157 = linux_sched_getscheduler */
{ 0, (sy_call_t *)sched_yield }, /* 158 = sched_yield */
{ SYF_MPSAFE | AS(linux_sched_get_priority_max_args), (sy_call_t *)linux_sched_get_priority_max }, /* 159 = linux_sched_get_priority_max */
{ SYF_MPSAFE | AS(linux_sched_get_priority_min_args), (sy_call_t *)linux_sched_get_priority_min }, /* 160 = linux_sched_get_priority_min */
{ SYF_MPSAFE | AS(linux_sched_rr_get_interval_args), (sy_call_t *)linux_sched_rr_get_interval }, /* 161 = linux_sched_rr_get_interval */
{ SYF_MPSAFE | AS(linux_nanosleep_args), (sy_call_t *)linux_nanosleep }, /* 162 = linux_nanosleep */
{ AS(linux_mremap_args), (sy_call_t *)linux_mremap }, /* 163 = linux_mremap */
{ SYF_MPSAFE | AS(linux_setresuid16_args), (sy_call_t *)linux_setresuid16 }, /* 164 = linux_setresuid16 */
{ SYF_MPSAFE | AS(linux_getresuid16_args), (sy_call_t *)linux_getresuid16 }, /* 165 = linux_getresuid16 */
{ 0, (sy_call_t *)nosys }, /* 166 = 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 */
{ SYF_MPSAFE | AS(linux_setresgid16_args), (sy_call_t *)linux_setresgid16 }, /* 170 = linux_setresgid16 */
{ SYF_MPSAFE | 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 */
{ SYF_MPSAFE | AS(linux_rt_sigaction_args), (sy_call_t *)linux_rt_sigaction }, /* 174 = linux_rt_sigaction */
{ SYF_MPSAFE | AS(linux_rt_sigprocmask_args), (sy_call_t *)linux_rt_sigprocmask }, /* 175 = linux_rt_sigprocmask */
{ 0, (sy_call_t *)linux_rt_sigpending }, /* 176 = linux_rt_sigpending */
{ 0, (sy_call_t *)linux_rt_sigtimedwait }, /* 177 = linux_rt_sigtimedwait */
{ 0, (sy_call_t *)linux_rt_sigqueueinfo }, /* 178 = linux_rt_sigqueueinfo */
{ SYF_MPSAFE | 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_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 *)nosys }, /* 188 = getpmsg */
{ 0, (sy_call_t *)nosys }, /* 189 = putpmsg */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_vfork }, /* 190 = linux_vfork */
{ SYF_MPSAFE | 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 */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getuid }, /* 199 = linux_getuid */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getgid }, /* 200 = linux_getgid */
{ SYF_MPSAFE | 0, (sy_call_t *)geteuid }, /* 201 = geteuid */
{ SYF_MPSAFE | 0, (sy_call_t *)getegid }, /* 202 = getegid */
{ SYF_MPSAFE | AS(setreuid_args), (sy_call_t *)setreuid }, /* 203 = setreuid */
{ SYF_MPSAFE | AS(setregid_args), (sy_call_t *)setregid }, /* 204 = setregid */
{ SYF_MPSAFE | AS(linux_getgroups_args), (sy_call_t *)linux_getgroups }, /* 205 = linux_getgroups */
{ SYF_MPSAFE | AS(linux_setgroups_args), (sy_call_t *)linux_setgroups }, /* 206 = linux_setgroups */
{ AS(fchown_args), (sy_call_t *)fchown }, /* 207 = fchown */
{ SYF_MPSAFE | AS(setresuid_args), (sy_call_t *)setresuid }, /* 208 = setresuid */
{ SYF_MPSAFE | AS(getresuid_args), (sy_call_t *)getresuid }, /* 209 = getresuid */
{ SYF_MPSAFE | AS(setresgid_args), (sy_call_t *)setresgid }, /* 210 = setresgid */
{ SYF_MPSAFE | AS(getresgid_args), (sy_call_t *)getresgid }, /* 211 = getresgid */
{ AS(linux_chown_args), (sy_call_t *)linux_chown }, /* 212 = linux_chown */
{ SYF_MPSAFE | AS(setuid_args), (sy_call_t *)setuid }, /* 213 = setuid */
{ SYF_MPSAFE | 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 */
{ SYF_MPSAFE | AS(madvise_args), (sy_call_t *)madvise }, /* 219 = 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 */
{ 0, (sy_call_t *)nosys }, /* 222 = */
{ 0, (sy_call_t *)nosys }, /* 223 = */
{ SYF_MPSAFE | 0, (sy_call_t *)linux_getpid }, /* 224 = gettid */
{ 0, (sy_call_t *)nosys }, /* 225 = linux_readahead */
{ 0, (sy_call_t *)linux_setxattr }, /* 226 = linux_setxattr */
{ 0, (sy_call_t *)linux_lsetxattr }, /* 227 = linux_lsetxattr */
{ 0, (sy_call_t *)linux_fsetxattr }, /* 228 = linux_fsetxattr */
{ 0, (sy_call_t *)linux_getxattr }, /* 229 = linux_getxattr */
{ 0, (sy_call_t *)linux_lgetxattr }, /* 230 = linux_lgetxattr */
{ 0, (sy_call_t *)linux_fgetxattr }, /* 231 = linux_fgetxattr */
{ 0, (sy_call_t *)linux_listxattr }, /* 232 = linux_listxattr */
{ 0, (sy_call_t *)linux_llistxattr }, /* 233 = linux_llistxattr */
{ 0, (sy_call_t *)linux_flistxattr }, /* 234 = linux_flistxattr */
{ 0, (sy_call_t *)linux_removexattr }, /* 235 = linux_removexattr */
{ 0, (sy_call_t *)linux_lremovexattr }, /* 236 = linux_lremovexattr */
{ 0, (sy_call_t *)linux_fremovexattr }, /* 237 = linux_fremovexattr */
{ 0, (sy_call_t *)nosys }, /* 238 = linux_tkill */
{ 0, (sy_call_t *)nosys }, /* 239 = linux_sendfile64 */
{ 0, (sy_call_t *)nosys }, /* 240 = linux_futex */
{ 0, (sy_call_t *)nosys }, /* 241 = linux_sched_setaffinity */
{ 0, (sy_call_t *)nosys }, /* 242 = linux_sched_getaffinity */
{ 0, (sy_call_t *)nosys }, /* 243 = linux_set_thread_area */
{ 0, (sy_call_t *)nosys }, /* 244 = linux_get_thread_area */
{ 0, (sy_call_t *)nosys }, /* 245 = linux_io_setup */
{ 0, (sy_call_t *)nosys }, /* 246 = linux_io_destroy */
{ 0, (sy_call_t *)nosys }, /* 247 = linux_io_getevents */
{ 0, (sy_call_t *)nosys }, /* 248 = linux_io_submit */
{ 0, (sy_call_t *)nosys }, /* 249 = linux_io_cancel */
{ 0, (sy_call_t *)linux_fadvise64 }, /* 250 = linux_fadvise64 */
{ 0, (sy_call_t *)nosys }, /* 251 = */
{ SYF_MPSAFE | AS(sys_exit_args), (sy_call_t *)sys_exit }, /* 252 = exit_group */
{ 0, (sy_call_t *)nosys }, /* 253 = linux_lookup_dcookie */
{ 0, (sy_call_t *)nosys }, /* 254 = linux_epoll_create */
{ 0, (sy_call_t *)nosys }, /* 255 = linux_epoll_ctl */
{ 0, (sy_call_t *)nosys }, /* 256 = linux_epoll_wait */
{ 0, (sy_call_t *)nosys }, /* 257 = linux_remap_file_pages */
{ 0, (sy_call_t *)nosys }, /* 258 = linux_set_tid_address */
{ 0, (sy_call_t *)nosys }, /* 259 = linux_timer_create */
{ 0, (sy_call_t *)nosys }, /* 260 = linux_timer_settime */
{ 0, (sy_call_t *)nosys }, /* 261 = linux_timer_gettime */
{ 0, (sy_call_t *)nosys }, /* 262 = linux_timer_getoverrun */
{ 0, (sy_call_t *)nosys }, /* 263 = linux_timer_delete */
{ 0, (sy_call_t *)nosys }, /* 264 = linux_clock_settime */
{ 0, (sy_call_t *)nosys }, /* 265 = linux_clock_gettime */
{ 0, (sy_call_t *)nosys }, /* 266 = linux_clock_getres */
{ 0, (sy_call_t *)nosys }, /* 267 = linux_clock_nanosleep */
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
# $FreeBSD$
sysnames="/dev/null"
sysproto="linux32_proto.h"
sysproto_h=_LINUX_SYSPROTO_H_
syshdr="linux32_syscall.h"
syssw="linux32_sysent.c"
sysmk="/dev/null"
syscallprefix="LINUX_SYS_"
switchname="linux_sysent"
namesname="linux_syscallnames"
sysvec="\n"

View File

@ -0,0 +1,345 @@
$FreeBSD$
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
; System call name/number master file (or rather, slave, from LINUX).
; Processed to create linux_sysent.c, linux_proto.h and linux_syscall.h.
; Columns: number type nargs name alt{name,tag,rtyp}/comments
; number system call number, must be in order
; type one of STD, OBSOL, UNIMPL, COMPAT
; name psuedo-prototype of syscall routine
; If one of the following alts is different, then all appear:
; altname name of system call if different
; alttag name of args struct tag if different from [o]`name'"_args"
; altrtyp return type if not int (bogus - syscalls always return int)
; for UNIMPL/OBSOL, name continues with comments
; types:
; STD always included
; COMPAT included on COMPAT #ifdef
; LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h
; OBSOL obsolete, not included in system, only specifies name
; UNIMPL not implemented, placeholder only
#include "opt_compat.h"
#include <sys/param.h>
#include <sys/sysent.h>
#include <sys/sysproto.h>
#include <amd64/linux32/linux.h>
#include <amd64/linux32/linux32_proto.h>
; #ifdef's, etc. may be included, and are copied to the output files.
0 UNIMPL setup
1 MNOPROTO { void sys_exit(int rval); } exit sys_exit_args void
2 MSTD { int linux_fork(void); }
3 MNOPROTO { int read(int fd, char *buf, u_int nbyte); }
4 MNOPROTO { int write(int fd, char *buf, u_int nbyte); }
5 STD { int linux_open(char *path, l_int flags, l_int mode); }
6 MNOPROTO { int close(int fd); }
7 MSTD { int linux_waitpid(l_pid_t pid, l_int *status, l_int options); }
8 STD { int linux_creat(char *path, l_int mode); }
9 STD { int linux_link(char *path, char *to); }
10 STD { int linux_unlink(char *path); }
11 STD { int linux_execve(char *path, char **argp, char **envp); }
12 STD { int linux_chdir(char *path); }
13 STD { int linux_time(l_time_t *tm); }
14 STD { int linux_mknod(char *path, l_int mode, l_dev_t dev); }
15 STD { int linux_chmod(char *path, l_mode_t mode); }
16 STD { int linux_lchown16(char *path, l_uid16_t uid, \
l_gid16_t gid); }
17 UNIMPL break
18 UNIMPL stat
19 STD { int linux_lseek(l_uint fdes, l_off_t off, l_int whence); }
20 MSTD { int linux_getpid(void); }
21 STD { int linux_mount(char *specialfile, char *dir, \
char *filesystemtype, l_ulong rwflag, \
void *data); }
22 STD { int linux_oldumount(char *path); }
23 MSTD { int linux_setuid16(l_uid16_t uid); }
24 MSTD { int linux_getuid16(void); }
25 STD { int linux_stime(void); }
26 MSTD { int linux_ptrace(l_long req, l_long pid, l_long addr, \
l_long data); }
27 STD { int linux_alarm(l_uint secs); }
28 UNIMPL fstat
29 MSTD { int linux_pause(void); }
30 STD { int linux_utime(char *fname, struct l_utimbuf *times); }
31 UNIMPL stty
32 UNIMPL gtty
33 STD { int linux_access(char *path, l_int flags); }
34 MSTD { int linux_nice(l_int inc); }
35 UNIMPL ftime
36 NOPROTO { int sync(void); }
37 MSTD { int linux_kill(l_int pid, l_int signum); }
38 STD { int linux_rename(char *from, char *to); }
39 STD { int linux_mkdir(char *path, l_int mode); }
40 STD { int linux_rmdir(char *path); }
41 MNOPROTO { int dup(u_int fd); }
42 MSTD { int linux_pipe(l_ulong *pipefds); }
43 STD { int linux_times(struct l_times_argv *buf); }
44 UNIMPL prof
45 STD { int linux_brk(l_ulong dsend); }
46 MSTD { int linux_setgid16(l_gid16_t gid); }
47 MSTD { int linux_getgid16(void); }
48 MSTD { int linux_signal(l_int sig, l_handler_t handler); }
49 MSTD { int linux_geteuid16(void); }
50 MSTD { int linux_getegid16(void); }
51 MNOPROTO { int acct(char *path); }
52 STD { int linux_umount(char *path, l_int flags); }
53 UNIMPL lock
54 STD { int linux_ioctl(l_uint fd, l_uint cmd, uintptr_t arg); }
55 STD { int linux_fcntl(l_uint fd, l_uint cmd, uintptr_t arg); }
56 UNIMPL mpx
57 MNOPROTO { int setpgid(int pid, int pgid); }
58 UNIMPL ulimit
59 STD { int linux_olduname(void); }
60 MNOPROTO { int umask(int newmask); }
61 NOPROTO { int chroot(char *path); }
62 STD { int linux_ustat(l_dev_t dev, struct l_ustat *ubuf); }
63 MNOPROTO { int dup2(u_int from, u_int to); }
64 MNOPROTO { int getppid(void); }
65 MNOPROTO { int getpgrp(void); }
66 MNOPROTO { int setsid(void); }
67 MSTD { int linux_sigaction(l_int sig, l_osigaction_t *nsa, \
l_osigaction_t *osa); }
68 MSTD { int linux_sgetmask(void); }
69 MSTD { int linux_ssetmask(l_osigset_t mask); }
70 MSTD { int linux_setreuid16(l_uid16_t ruid, l_uid16_t euid); }
71 MSTD { int linux_setregid16(l_gid16_t rgid, l_gid16_t egid); }
72 MSTD { int linux_sigsuspend(l_int hist0, l_int hist1, \
l_osigset_t mask); }
73 MSTD { int linux_sigpending(l_osigset_t *mask); }
74 MNOPROTO { int osethostname(char *hostname, u_int len); } \
osethostname sethostname_args int
75 MSTD { int linux_setrlimit(l_uint resource, struct l_rlimit *rlim); }
76 MSTD { int linux_old_getrlimit(l_uint resource, \
struct l_rlimit *rlim); }
77 MSTD { int linux_getrusage(int who, struct l_rusage *rusage); }
78 MSTD { int linux_gettimeofday(struct l_timeval *tp, \
struct timezone *tzp); }
79 MSTD { int linux_settimeofday(struct l_timeval *tp, \
struct timezone *tzp); }
80 MSTD { int linux_getgroups16(l_uint gidsetsize, l_gid16_t *gidset); }
81 MSTD { int linux_setgroups16(l_uint gidsetsize, l_gid16_t *gidset); }
82 STD { int linux_old_select(struct l_old_select_argv *ptr); }
83 STD { int linux_symlink(char *path, char *to); }
84 UNIMPL ostat
85 STD { int linux_readlink(char *name, char *buf, l_int count); }
86 UNIMPL linux_uselib
87 NOPROTO { int swapon(char *name); }
88 STD { int linux_reboot(l_int magic1, l_int magic2, l_uint cmd, \
void *arg); }
89 STD { int linux_readdir(l_uint fd, struct l_dirent *dent, \
l_uint count); }
90 STD { int linux_mmap(struct l_mmap_argv *ptr); }
91 NOPROTO { int munmap(caddr_t addr, int len); }
92 STD { int linux_truncate(char *path, l_ulong length); }
93 NOPROTO { int oftruncate(int fd, long length); }
94 NOPROTO { int fchmod(int fd, int mode); }
95 NOPROTO { int fchown(int fd, int uid, int gid); }
96 MNOPROTO { int getpriority(int which, int who); }
97 MNOPROTO { int setpriority(int which, int who, int prio); }
98 UNIMPL profil
99 STD { int linux_statfs(char *path, struct l_statfs_buf *buf); }
100 STD { int linux_fstatfs(l_uint fd, struct l_statfs_buf *buf); }
101 UNIMPL ioperm
102 STD { int linux_socketcall(l_int what, l_ulong args); }
103 STD { int linux_syslog(l_int type, char *buf, l_int len); }
104 STD { int linux_setitimer(l_int which, struct l_itimerval *itv, \
struct l_itimerval *oitv); }
105 STD { int linux_getitimer(l_int which, struct l_itimerval *itv); }
106 STD { int linux_newstat(char *path, struct l_newstat *buf); }
107 STD { int linux_newlstat(char *path, struct l_newstat *buf); }
108 STD { int linux_newfstat(l_uint fd, struct l_newstat *buf); }
109 STD { int linux_uname(void); }
110 UNIMPL iopl
111 STD { int linux_vhangup(void); }
112 UNIMPL idle
113 UNIMPL vm86old
114 MSTD { int linux_wait4(l_pid_t pid, l_uint *status, \
l_int options, struct l_rusage *rusage); }
115 STD { int linux_swapoff(void); }
116 STD { int linux_sysinfo(struct l_sysinfo *info); }
117 STD { int linux_ipc(l_uint what, l_int arg1, l_int arg2, \
l_int arg3, void *ptr, l_long arg5); }
118 NOPROTO { int fsync(int fd); }
119 MSTD { int linux_sigreturn(struct l_sigframe *sfp); }
120 MSTD { int linux_clone(l_int flags, void *stack); }
121 MNOPROTO { int setdomainname(char *name, int len); }
122 STD { int linux_newuname(struct l_new_utsname *buf); }
123 UNIMPL modify_ldt
124 STD { int linux_adjtimex(void); }
125 MSTD { int linux_mprotect(caddr_t addr, int len, int prot); }
126 MSTD { int linux_sigprocmask(l_int how, l_osigset_t *mask, \
l_osigset_t *omask); }
127 STD { int linux_create_module(void); }
128 STD { int linux_init_module(void); }
129 STD { int linux_delete_module(void); }
130 STD { int linux_get_kernel_syms(void); }
131 STD { int linux_quotactl(void); }
132 NOPROTO { int getpgid(int pid); }
133 NOPROTO { int fchdir(int fd); }
134 STD { int linux_bdflush(void); }
135 STD { int linux_sysfs(l_int option, l_ulong arg1, l_ulong arg2); }
136 STD { int linux_personality(l_ulong per); }
137 UNIMPL afs_syscall
138 STD { int linux_setfsuid16(l_uid16_t uid); }
139 STD { int linux_setfsgid16(l_gid16_t gid); }
140 STD { int linux_llseek(l_int fd, l_ulong ohigh, l_ulong olow, \
l_loff_t *res, l_uint whence); }
141 STD { int linux_getdents(l_uint fd, void *dent, l_uint count); }
142 STD { int linux_select(l_int nfds, l_fd_set *readfds, \
l_fd_set *writefds, l_fd_set *exceptfds, \
struct l_timeval *timeout); }
143 NOPROTO { int flock(int fd, int how); }
144 STD { int linux_msync(l_ulong addr, l_size_t len, l_int fl); }
145 STD { int linux_readv(int fd, struct iovec32 *iovp, \
u_int iovcnt); }
146 STD { int linux_writev(int fd, struct iovec32 *iovp, \
u_int iovcnt); }
147 MSTD { int linux_getsid(l_pid_t pid); }
148 STD { int linux_fdatasync(l_uint fd); }
149 STD { int linux_sysctl(struct l___sysctl_args *args); }
150 MNOPROTO { int mlock(const void *addr, size_t len); }
151 MNOPROTO { int munlock(const void *addr, size_t len); }
152 MNOPROTO { int mlockall(int how); }
153 MNOPROTO { int munlockall(void); }
154 MNOPROTO { int sched_setparam(pid_t pid, \
const struct sched_param *param); }
155 MNOPROTO { int sched_getparam(pid_t pid, \
struct sched_param *param); }
156 MSTD { int linux_sched_setscheduler(l_pid_t pid, \
l_int policy, struct l_sched_param *param); }
157 MSTD { int linux_sched_getscheduler(l_pid_t pid); }
158 NOPROTO { int sched_yield(void); }
159 MSTD { int linux_sched_get_priority_max(l_int policy); }
160 MSTD { int linux_sched_get_priority_min(l_int policy); }
161 MSTD { int linux_sched_rr_get_interval(l_pid_t pid, \
struct l_timespec *interval); }
162 MSTD { int linux_nanosleep(const struct l_timespec *rqtp, \
struct l_timespec *rmtp); }
163 STD { int linux_mremap(l_ulong addr, l_ulong old_len, \
l_ulong new_len, l_ulong flags, \
l_ulong new_addr); }
164 MSTD { int linux_setresuid16(l_uid16_t ruid, \
l_uid16_t euid, l_uid16_t suid); }
165 MSTD { int linux_getresuid16(l_uid16_t *ruid, \
l_uid16_t *euid, l_uid16_t *suid); }
166 UNIMPL vm86
167 STD { int linux_query_module(void); }
168 NOPROTO { int poll(struct pollfd*, unsigned int nfds, int timeout); }
169 STD { int linux_nfsservctl(void); }
170 MSTD { int linux_setresgid16(l_gid16_t rgid, \
l_gid16_t egid, l_gid16_t sgid); }
171 MSTD { int linux_getresgid16(l_gid16_t *rgid, \
l_gid16_t *egid, l_gid16_t *sgid); }
172 STD { int linux_prctl(void); }
173 STD { int linux_rt_sigreturn(struct l_ucontext *ucp); }
174 MSTD { int linux_rt_sigaction(l_int sig, \
l_sigaction_t *act, l_sigaction_t *oact, \
l_size_t sigsetsize); }
175 MSTD { int linux_rt_sigprocmask(l_int how, \
l_sigset_t *mask, l_sigset_t *omask, \
l_size_t sigsetsize); }
176 STD { int linux_rt_sigpending(void); }
177 STD { int linux_rt_sigtimedwait(void); }
178 STD { int linux_rt_sigqueueinfo(void); }
179 MSTD { int linux_rt_sigsuspend(l_sigset_t *newset, \
l_size_t sigsetsize); }
180 STD { int linux_pread(l_uint fd, char *buf, \
l_size_t nbyte, l_loff_t offset); }
181 STD { int linux_pwrite(l_uint fd, char *buf, \
l_size_t nbyte, l_loff_t offset); }
182 STD { int linux_chown16(char *path, l_uid16_t uid, l_gid16_t gid); }
183 STD { int linux_getcwd(char *buf, l_ulong bufsize); }
184 STD { int linux_capget(void); }
185 STD { int linux_capset(void); }
186 STD { int linux_sigaltstack(l_stack_t *uss, l_stack_t *uoss); }
187 STD { int linux_sendfile(void); }
188 UNIMPL getpmsg
189 UNIMPL putpmsg
190 MSTD { int linux_vfork(void); }
191 MSTD { int linux_getrlimit(l_uint resource, struct l_rlimit *rlim); }
192 STD { int linux_mmap2(l_ulong addr, l_ulong len, \
l_ulong prot, l_ulong flags, l_ulong fd, \
l_ulong pgoff); }
193 STD { int linux_truncate64(char *path, l_loff_t length); }
194 STD { int linux_ftruncate64(l_uint fd, l_loff_t length); }
195 STD { int linux_stat64(char *filename, \
struct l_stat64 *statbuf, l_long flags); }
196 STD { int linux_lstat64(char *filename, \
struct l_stat64 *statbuf, l_long flags); }
197 STD { int linux_fstat64(l_ulong fd, \
struct l_stat64 *statbuf, l_long flags); }
198 STD { int linux_lchown(char *path, l_uid_t uid, \
l_gid_t gid); }
199 MSTD { int linux_getuid(void); }
200 MSTD { int linux_getgid(void); }
201 MNOPROTO { int geteuid(void); }
202 MNOPROTO { int getegid(void); }
203 MNOPROTO { int setreuid(uid_t ruid, uid_t euid); }
204 MNOPROTO { int setregid(gid_t rgid, gid_t egid); }
205 MSTD { int linux_getgroups(l_int gidsetsize, l_gid_t *grouplist); }
206 MSTD { int linux_setgroups(l_int gidsetsize, l_gid_t *grouplist); }
207 NODEF fchown fchown fchown_args int
208 MNOPROTO { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
209 MNOPROTO { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
210 MNOPROTO { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
211 MNOPROTO { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
212 STD { int linux_chown(char *path, l_uid_t uid, l_gid_t gid); }
213 MNOPROTO { int setuid(uid_t uid); }
214 MNOPROTO { int setgid(gid_t gid); }
215 STD { int linux_setfsuid(l_uid_t uid); }
216 STD { int linux_setfsgid(l_gid_t gid); }
217 STD { int linux_pivot_root(char *new_root, char *put_old); }
218 STD { int linux_mincore(l_ulong start, l_size_t len, u_char *vec); }
219 MNOPROTO { int madvise(void *addr, size_t len, int behav); }
220 STD { int linux_getdents64(l_uint fd, void *dirent, l_uint count); }
221 STD { int linux_fcntl64(l_uint fd, l_uint cmd, uintptr_t arg); }
222 UNIMPL
223 UNIMPL
224 MNOPROTO { int linux_getpid(void); } gettid linux_getpid_args void
225 UNIMPL linux_readahead
226 STD { int linux_setxattr(void); }
227 STD { int linux_lsetxattr(void); }
228 STD { int linux_fsetxattr(void); }
229 STD { int linux_getxattr(void); }
230 STD { int linux_lgetxattr(void); }
231 STD { int linux_fgetxattr(void); }
232 STD { int linux_listxattr(void); }
233 STD { int linux_llistxattr(void); }
234 STD { int linux_flistxattr(void); }
235 STD { int linux_removexattr(void); }
236 STD { int linux_lremovexattr(void); }
237 STD { int linux_fremovexattr(void); }
238 UNIMPL linux_tkill
239 UNIMPL linux_sendfile64
240 UNIMPL linux_futex
241 UNIMPL linux_sched_setaffinity
242 UNIMPL linux_sched_getaffinity
243 UNIMPL linux_set_thread_area
244 UNIMPL linux_get_thread_area
245 UNIMPL linux_io_setup
246 UNIMPL linux_io_destroy
247 UNIMPL linux_io_getevents
248 UNIMPL linux_io_submit
249 UNIMPL linux_io_cancel
250 STD { int linux_fadvise64(void); }
251 UNIMPL
252 MNOPROTO { void sys_exit(int rval); } exit_group sys_exit_args void
253 UNIMPL linux_lookup_dcookie
254 UNIMPL linux_epoll_create
255 UNIMPL linux_epoll_ctl
256 UNIMPL linux_epoll_wait
257 UNIMPL linux_remap_file_pages
258 UNIMPL linux_set_tid_address
259 UNIMPL linux_timer_create
260 UNIMPL linux_timer_settime
261 UNIMPL linux_timer_gettime
262 UNIMPL linux_timer_getoverrun
263 UNIMPL linux_timer_delete
264 UNIMPL linux_clock_settime
265 UNIMPL linux_clock_gettime
266 UNIMPL linux_clock_getres
267 UNIMPL linux_clock_nanosleep

View File

@ -7,7 +7,19 @@
# limitations in config: backslash-newline doesn't work in strings, and
# dependency lines other than the first are silently ignored.
#
#
linux32_genassym.o optional compat_linux32 \
dependency "$S/amd64/linux32/linux32_genassym.c" \
compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \
no-obj no-implicit-rule \
clean "linux32_genassym.o"
#
linux32_assym.h optional compat_linux32 \
dependency "$S/kern/genassym.sh linux32_genassym.o" \
compile-with "sh $S/kern/genassym.sh linux32_genassym.o > ${.TARGET}" \
no-obj no-implicit-rule before-depend \
clean "linux32_assym.h"
#
ia32_genassym.o standard \
dependency "$S/compat/ia32/ia32_genassym.c" \
compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \
@ -156,3 +168,24 @@ compat/freebsd32/freebsd32_syscalls.c optional ia32
compat/freebsd32/freebsd32_sysent.c optional ia32
compat/ia32/ia32_sysvec.c optional ia32
kern/imgact_elf32.c optional ia32
#
# Linux/i386 binary support
#
amd64/linux32/linux32_dummy.c optional compat_linux32
amd64/linux32/linux32_locore.s optional compat_linux32 \
dependency "linux32_assym.h"
amd64/linux32/linux32_machdep.c optional compat_linux32
amd64/linux32/linux32_sysent.c optional compat_linux32
amd64/linux32/linux32_sysvec.c optional compat_linux32
compat/linux/linux_file.c optional compat_linux32
compat/linux/linux_getcwd.c optional compat_linux32
compat/linux/linux_ioctl.c optional compat_linux32
compat/linux/linux_ipc.c optional compat_linux32
compat/linux/linux_mib.c optional compat_linux32
compat/linux/linux_misc.c optional compat_linux32
compat/linux/linux_signal.c optional compat_linux32
compat/linux/linux_socket.c optional compat_linux32
compat/linux/linux_stats.c optional compat_linux32
compat/linux/linux_sysctl.c optional compat_linux32
compat/linux/linux_uid16.c optional compat_linux32
compat/linux/linux_util.c optional compat_linux32

View File

@ -12,6 +12,7 @@ PMAP_SHPGPERPROC opt_pmap.h
# (see src/sys/conf/options), except for broken debugging options.
#IBCS2 opt_dontuse.h
#COMPAT_LINUX opt_dontuse.h
COMPAT_LINUX32 opt_compat.h
#COMPAT_SVR4 opt_dontuse.h
#DEBUG_SVR4 opt_svr4.h
#NDISAPI opt_dontuse.h