mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Preliminary BSD user emulator support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5544 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
+105
@@ -469,6 +469,111 @@ $(QEMU_PROG): $(OBJS)
|
||||
|
||||
endif #CONFIG_DARWIN_USER
|
||||
|
||||
#########################################################
|
||||
# BSD user emulator target
|
||||
|
||||
ifdef CONFIG_BSD_USER
|
||||
|
||||
VPATH+=:$(SRC_PATH)/bsd-user
|
||||
CPPFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ARCH)
|
||||
|
||||
ifdef CONFIG_STATIC
|
||||
LDFLAGS+=-static
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),i386)
|
||||
ifdef TARGET_GPROF
|
||||
USE_I386_LD=y
|
||||
endif
|
||||
ifdef CONFIG_STATIC
|
||||
USE_I386_LD=y
|
||||
endif
|
||||
ifdef USE_I386_LD
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
else
|
||||
# WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object
|
||||
# that the kernel ELF loader considers as an executable. I think this
|
||||
# is the simplest way to make it self virtualizable!
|
||||
LDFLAGS+=-Wl,-shared
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),x86_64)
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),ppc)
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),ppc64)
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),s390)
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),sparc)
|
||||
# -static is used to avoid g1/g3 usage by the dynamic linker
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),sparc64)
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),alpha)
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),ia64)
|
||||
LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),arm)
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),m68k)
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),mips)
|
||||
ifeq ($(WORDS_BIGENDIAN),yes)
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
else
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),mips64)
|
||||
ifeq ($(WORDS_BIGENDIAN),yes)
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||
else
|
||||
LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld
|
||||
endif
|
||||
endif
|
||||
|
||||
OBJS= main.o bsdload.o elfload.o mmap.o path.o signal.o strace.o syscall.o
|
||||
OBJS+= uaccess.o
|
||||
|
||||
OBJS+= libqemu.a
|
||||
|
||||
ifdef CONFIG_GDBSTUB
|
||||
OBJS+=gdbstub.o
|
||||
endif
|
||||
|
||||
# Note: this is a workaround. The real fix is to avoid compiling
|
||||
# cpu_signal_handler() in cpu-exec.c.
|
||||
signal.o: signal.c
|
||||
$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(QEMU_PROG): $(OBJS) ../libqemu_user.a
|
||||
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
endif #CONFIG_BSD_USER
|
||||
|
||||
#########################################################
|
||||
# System emulator target
|
||||
ifndef CONFIG_USER_ONLY
|
||||
|
||||
@@ -0,0 +1,204 @@
|
||||
/* Code for loading BSD executables. Mostly linux kernel code. */
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "qemu.h"
|
||||
|
||||
#define NGROUPS 32
|
||||
|
||||
/* ??? This should really be somewhere else. */
|
||||
abi_long memcpy_to_target(abi_ulong dest, const void *src,
|
||||
unsigned long len)
|
||||
{
|
||||
void *host_ptr;
|
||||
|
||||
host_ptr = lock_user(VERIFY_WRITE, dest, len, 0);
|
||||
if (!host_ptr)
|
||||
return -TARGET_EFAULT;
|
||||
memcpy(host_ptr, src, len);
|
||||
unlock_user(host_ptr, dest, 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int in_group_p(gid_t g)
|
||||
{
|
||||
/* return TRUE if we're in the specified group, FALSE otherwise */
|
||||
int ngroup;
|
||||
int i;
|
||||
gid_t grouplist[NGROUPS];
|
||||
|
||||
ngroup = getgroups(NGROUPS, grouplist);
|
||||
for(i = 0; i < ngroup; i++) {
|
||||
if(grouplist[i] == g) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int count(char ** vec)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i = 0; *vec; i++) {
|
||||
vec++;
|
||||
}
|
||||
|
||||
return(i);
|
||||
}
|
||||
|
||||
static int prepare_binprm(struct linux_binprm *bprm)
|
||||
{
|
||||
struct stat st;
|
||||
int mode;
|
||||
int retval, id_change;
|
||||
|
||||
if(fstat(bprm->fd, &st) < 0) {
|
||||
return(-errno);
|
||||
}
|
||||
|
||||
mode = st.st_mode;
|
||||
if(!S_ISREG(mode)) { /* Must be regular file */
|
||||
return(-EACCES);
|
||||
}
|
||||
if(!(mode & 0111)) { /* Must have at least one execute bit set */
|
||||
return(-EACCES);
|
||||
}
|
||||
|
||||
bprm->e_uid = geteuid();
|
||||
bprm->e_gid = getegid();
|
||||
id_change = 0;
|
||||
|
||||
/* Set-uid? */
|
||||
if(mode & S_ISUID) {
|
||||
bprm->e_uid = st.st_uid;
|
||||
if(bprm->e_uid != geteuid()) {
|
||||
id_change = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Set-gid? */
|
||||
/*
|
||||
* If setgid is set but no group execute bit then this
|
||||
* is a candidate for mandatory locking, not a setgid
|
||||
* executable.
|
||||
*/
|
||||
if ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) {
|
||||
bprm->e_gid = st.st_gid;
|
||||
if (!in_group_p(bprm->e_gid)) {
|
||||
id_change = 1;
|
||||
}
|
||||
}
|
||||
|
||||
memset(bprm->buf, 0, sizeof(bprm->buf));
|
||||
retval = lseek(bprm->fd, 0L, SEEK_SET);
|
||||
if(retval >= 0) {
|
||||
retval = read(bprm->fd, bprm->buf, 128);
|
||||
}
|
||||
if(retval < 0) {
|
||||
perror("prepare_binprm");
|
||||
exit(-1);
|
||||
/* return(-errno); */
|
||||
}
|
||||
else {
|
||||
return(retval);
|
||||
}
|
||||
}
|
||||
|
||||
/* Construct the envp and argv tables on the target stack. */
|
||||
abi_ulong loader_build_argptr(int envc, int argc, abi_ulong sp,
|
||||
abi_ulong stringp, int push_ptr)
|
||||
{
|
||||
int n = sizeof(abi_ulong);
|
||||
abi_ulong envp;
|
||||
abi_ulong argv;
|
||||
|
||||
sp -= (envc + 1) * n;
|
||||
envp = sp;
|
||||
sp -= (argc + 1) * n;
|
||||
argv = sp;
|
||||
if (push_ptr) {
|
||||
/* FIXME - handle put_user() failures */
|
||||
sp -= n;
|
||||
put_user_ual(envp, sp);
|
||||
sp -= n;
|
||||
put_user_ual(argv, sp);
|
||||
}
|
||||
sp -= n;
|
||||
/* FIXME - handle put_user() failures */
|
||||
put_user_ual(argc, sp);
|
||||
|
||||
while (argc-- > 0) {
|
||||
/* FIXME - handle put_user() failures */
|
||||
put_user_ual(stringp, argv);
|
||||
argv += n;
|
||||
stringp += target_strlen(stringp) + 1;
|
||||
}
|
||||
/* FIXME - handle put_user() failures */
|
||||
put_user_ual(0, argv);
|
||||
while (envc-- > 0) {
|
||||
/* FIXME - handle put_user() failures */
|
||||
put_user_ual(stringp, envp);
|
||||
envp += n;
|
||||
stringp += target_strlen(stringp) + 1;
|
||||
}
|
||||
/* FIXME - handle put_user() failures */
|
||||
put_user_ual(0, envp);
|
||||
|
||||
return sp;
|
||||
}
|
||||
|
||||
int loader_exec(const char * filename, char ** argv, char ** envp,
|
||||
struct target_pt_regs * regs, struct image_info *infop)
|
||||
{
|
||||
struct linux_binprm bprm;
|
||||
int retval;
|
||||
int i;
|
||||
|
||||
bprm.p = TARGET_PAGE_SIZE*MAX_ARG_PAGES-sizeof(unsigned int);
|
||||
for (i=0 ; i<MAX_ARG_PAGES ; i++) /* clear page-table */
|
||||
bprm.page[i] = 0;
|
||||
retval = open(filename, O_RDONLY);
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
bprm.fd = retval;
|
||||
bprm.filename = (char *)filename;
|
||||
bprm.argc = count(argv);
|
||||
bprm.argv = argv;
|
||||
bprm.envc = count(envp);
|
||||
bprm.envp = envp;
|
||||
|
||||
retval = prepare_binprm(&bprm);
|
||||
|
||||
infop->host_argv = argv;
|
||||
|
||||
if(retval>=0) {
|
||||
if (bprm.buf[0] == 0x7f
|
||||
&& bprm.buf[1] == 'E'
|
||||
&& bprm.buf[2] == 'L'
|
||||
&& bprm.buf[3] == 'F') {
|
||||
retval = load_elf_binary(&bprm,regs,infop);
|
||||
} else {
|
||||
fprintf(stderr, "Unknown binary format\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if(retval>=0) {
|
||||
/* success. Initialize important registers */
|
||||
do_init_thread(regs, infop);
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* Something went wrong, return the inode and free the argument pages*/
|
||||
for (i=0 ; i<MAX_ARG_PAGES ; i++) {
|
||||
free(bprm.page[i]);
|
||||
}
|
||||
return(retval);
|
||||
}
|
||||
+1523
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,149 @@
|
||||
/* $OpenBSD: errno.h,v 1.20 2007/09/03 14:37:52 millert Exp $ */
|
||||
/* $NetBSD: errno.h,v 1.10 1996/01/20 01:33:53 jtc Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1986, 1989, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* (c) UNIX System Laboratories, Inc.
|
||||
* All or some portions of this file are derived from material licensed
|
||||
* to the University of California by American Telephone and Telegraph
|
||||
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||
* the permission of UNIX System Laboratories, Inc.
|
||||
*
|
||||
* 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.
|
||||
* 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. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
|
||||
*
|
||||
* @(#)errno.h 8.5 (Berkeley) 1/21/94
|
||||
*/
|
||||
|
||||
#define TARGET_EPERM 1 /* Operation not permitted */
|
||||
#define TARGET_ENOENT 2 /* No such file or directory */
|
||||
#define TARGET_ESRCH 3 /* No such process */
|
||||
#define TARGET_EINTR 4 /* Interrupted system call */
|
||||
#define TARGET_EIO 5 /* Input/output error */
|
||||
#define TARGET_ENXIO 6 /* Device not configured */
|
||||
#define TARGET_E2BIG 7 /* Argument list too long */
|
||||
#define TARGET_ENOEXEC 8 /* Exec format error */
|
||||
#define TARGET_EBADF 9 /* Bad file descriptor */
|
||||
#define TARGET_ECHILD 10 /* No child processes */
|
||||
#define TARGET_EDEADLK 11 /* Resource deadlock avoided */
|
||||
/* 11 was EAGAIN */
|
||||
#define TARGET_ENOMEM 12 /* Cannot allocate memory */
|
||||
#define TARGET_EACCES 13 /* Permission denied */
|
||||
#define TARGET_EFAULT 14 /* Bad address */
|
||||
#define TARGET_ENOTBLK 15 /* Block device required */
|
||||
#define TARGET_EBUSY 16 /* Device busy */
|
||||
#define TARGET_EEXIST 17 /* File exists */
|
||||
#define TARGET_EXDEV 18 /* Cross-device link */
|
||||
#define TARGET_ENODEV 19 /* Operation not supported by device */
|
||||
#define TARGET_ENOTDIR 20 /* Not a directory */
|
||||
#define TARGET_EISDIR 21 /* Is a directory */
|
||||
#define TARGET_EINVAL 22 /* Invalid argument */
|
||||
#define TARGET_ENFILE 23 /* Too many open files in system */
|
||||
#define TARGET_EMFILE 24 /* Too many open files */
|
||||
#define TARGET_ENOTTY 25 /* Inappropriate ioctl for device */
|
||||
#define TARGET_ETXTBSY 26 /* Text file busy */
|
||||
#define TARGET_EFBIG 27 /* File too large */
|
||||
#define TARGET_ENOSPC 28 /* No space left on device */
|
||||
#define TARGET_ESPIPE 29 /* Illegal seek */
|
||||
#define TARGET_EROFS 30 /* Read-only file system */
|
||||
#define TARGET_EMLINK 31 /* Too many links */
|
||||
#define TARGET_EPIPE 32 /* Broken pipe */
|
||||
|
||||
/* math software */
|
||||
#define TARGET_EDOM 33 /* Numerical argument out of domain */
|
||||
#define TARGET_ERANGE 34 /* Result too large */
|
||||
|
||||
/* non-blocking and interrupt i/o */
|
||||
#define TARGET_EAGAIN 35 /* Resource temporarily unavailable */
|
||||
#define TARGET_EWOULDBLOCK EAGAIN /* Operation would block */
|
||||
#define TARGET_EINPROGRESS 36 /* Operation now in progress */
|
||||
#define TARGET_EALREADY 37 /* Operation already in progress */
|
||||
|
||||
/* ipc/network software -- argument errors */
|
||||
#define TARGET_ENOTSOCK 38 /* Socket operation on non-socket */
|
||||
#define TARGET_EDESTADDRREQ 39 /* Destination address required */
|
||||
#define TARGET_EMSGSIZE 40 /* Message too long */
|
||||
#define TARGET_EPROTOTYPE 41 /* Protocol wrong type for socket */
|
||||
#define TARGET_ENOPROTOOPT 42 /* Protocol not available */
|
||||
#define TARGET_EPROTONOSUPPORT 43 /* Protocol not supported */
|
||||
#define TARGET_ESOCKTNOSUPPORT 44 /* Socket type not supported */
|
||||
#define TARGET_EOPNOTSUPP 45 /* Operation not supported */
|
||||
#define TARGET_EPFNOSUPPORT 46 /* Protocol family not supported */
|
||||
#define TARGET_EAFNOSUPPORT 47 /* Address family not supported by protocol family */
|
||||
#define TARGET_EADDRINUSE 48 /* Address already in use */
|
||||
#define TARGET_EADDRNOTAVAIL 49 /* Can't assign requested address */
|
||||
|
||||
/* ipc/network software -- operational errors */
|
||||
#define TARGET_ENETDOWN 50 /* Network is down */
|
||||
#define TARGET_ENETUNREACH 51 /* Network is unreachable */
|
||||
#define TARGET_ENETRESET 52 /* Network dropped connection on reset */
|
||||
#define TARGET_ECONNABORTED 53 /* Software caused connection abort */
|
||||
#define TARGET_ECONNRESET 54 /* Connection reset by peer */
|
||||
#define TARGET_ENOBUFS 55 /* No buffer space available */
|
||||
#define TARGET_EISCONN 56 /* Socket is already connected */
|
||||
#define TARGET_ENOTCONN 57 /* Socket is not connected */
|
||||
#define TARGET_ESHUTDOWN 58 /* Can't send after socket shutdown */
|
||||
#define TARGET_ETOOMANYREFS 59 /* Too many references: can't splice */
|
||||
#define TARGET_ETIMEDOUT 60 /* Operation timed out */
|
||||
#define TARGET_ECONNREFUSED 61 /* Connection refused */
|
||||
|
||||
#define TARGET_ELOOP 62 /* Too many levels of symbolic links */
|
||||
#define TARGET_ENAMETOOLONG 63 /* File name too long */
|
||||
|
||||
/* should be rearranged */
|
||||
#define TARGET_EHOSTDOWN 64 /* Host is down */
|
||||
#define TARGET_EHOSTUNREACH 65 /* No route to host */
|
||||
#define TARGET_ENOTEMPTY 66 /* Directory not empty */
|
||||
|
||||
/* quotas & mush */
|
||||
#define TARGET_EPROCLIM 67 /* Too many processes */
|
||||
#define TARGET_EUSERS 68 /* Too many users */
|
||||
#define TARGET_EDQUOT 69 /* Disk quota exceeded */
|
||||
|
||||
/* Network File System */
|
||||
#define TARGET_ESTALE 70 /* Stale NFS file handle */
|
||||
#define TARGET_EREMOTE 71 /* Too many levels of remote in path */
|
||||
#define TARGET_EBADRPC 72 /* RPC struct is bad */
|
||||
#define TARGET_ERPCMISMATCH 73 /* RPC version wrong */
|
||||
#define TARGET_EPROGUNAVAIL 74 /* RPC prog. not avail */
|
||||
#define TARGET_EPROGMISMATCH 75 /* Program version wrong */
|
||||
#define TARGET_EPROCUNAVAIL 76 /* Bad procedure for program */
|
||||
|
||||
#define TARGET_ENOLCK 77 /* No locks available */
|
||||
#define TARGET_ENOSYS 78 /* Function not implemented */
|
||||
|
||||
#define TARGET_EFTYPE 79 /* Inappropriate file type or format */
|
||||
#define TARGET_EAUTH 80 /* Authentication error */
|
||||
#define TARGET_ENEEDAUTH 81 /* Need authenticator */
|
||||
#define TARGET_EIPSEC 82 /* IPsec processing failure */
|
||||
#define TARGET_ENOATTR 83 /* Attribute not found */
|
||||
#define TARGET_EILSEQ 84 /* Illegal byte sequence */
|
||||
#define TARGET_ENOMEDIUM 85 /* No medium found */
|
||||
#define TARGET_EMEDIUMTYPE 86 /* Wrong Medium Type */
|
||||
#define TARGET_EOVERFLOW 87 /* Conversion overflow */
|
||||
#define TARGET_ECANCELED 88 /* Operation canceled */
|
||||
#define TARGET_EIDRM 89 /* Identifier removed */
|
||||
#define TARGET_ENOMSG 90 /* No message of desired type */
|
||||
#define TARGET_ELAST 90 /* Must be equal largest errno */
|
||||
@@ -0,0 +1,170 @@
|
||||
{ TARGET_FREEBSD_NR___getcwd, "__getcwd", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR___semctl, "__semctl", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR___syscall, "__syscall", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR___sysctl, "__sysctl", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_accept, "accept", "%s(%d,%#x,%#x)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_access, "access", "%s(\"%s\",%#o)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_acct, "acct", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_adjtime, "adjtime", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_bind, "bind", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_break, "break", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_chdir, "chdir", "%s(\"%s\")", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_chflags, "chflags", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_chmod, "chmod", "%s(\"%s\",%#o)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_chown, "chown", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_chroot, "chroot", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_clock_getres, "clock_getres", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_clock_gettime, "clock_gettime", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_clock_settime, "clock_settime", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_close, "close", "%s(%d)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_connect, "connect", "%s(%d,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_dup, "dup", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_dup2, "dup2", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_execve, "execve", NULL, print_execve, NULL },
|
||||
{ TARGET_FREEBSD_NR_exit, "exit", "%s(%d)\n", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fchdir, "fchdir", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fchflags, "fchflags", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fchmod, "fchmod", "%s(%d,%#o)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fchown, "fchown", "%s(\"%s\",%d,%d)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fcntl, "fcntl", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fhopen, "fhopen", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fhstat, "fhstat", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fhstatfs, "fhstatfs", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_flock, "flock", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fork, "fork", "%s()", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fpathconf, "fpathconf", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fstat, "fstat", "%s(%d,%p)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fstatfs, "fstatfs", "%s(%d,%p)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_fsync, "fsync", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_ftruncate, "ftruncate", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_futimes, "futimes", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getdirentries, "getdirentries", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getegid, "getegid", "%s()", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_geteuid, "geteuid", "%s()", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getfh, "getfh", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getfsstat, "getfsstat", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getgid, "getgid", "%s()", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getgroups, "getgroups", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getitimer, "getitimer", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getlogin, "getlogin", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getpeername, "getpeername", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getpgid, "getpgid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getpgrp, "getpgrp", "%s()", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getpid, "getpid", "%s()", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getppid, "getppid", "%s()", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getpriority, "getpriority", "%s(%#x,%#x)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getresgid, "getresgid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getresuid, "getresuid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getrlimit, "getrlimit", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getrusage, "getrusage", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getsid, "getsid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getsockname, "getsockname", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getsockopt, "getsockopt", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_gettimeofday, "gettimeofday", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_getuid, "getuid", "%s()", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_ioctl, "ioctl", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_issetugid, "issetugid", "%s()", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_kevent, "kevent", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_kill, "kill", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_kqueue, "kqueue", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_ktrace, "ktrace", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_lchown, "lchown", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_link, "link", "%s(\"%s\",\"%s\")", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_listen, "listen", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_lseek, "lseek", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_lstat, "lstat", "%s(\"%s\",%p)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_madvise, "madvise", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_mincore, "mincore", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_minherit, "minherit", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_mkdir, "mkdir", "%s(\"%s\",%#o)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_mkfifo, "mkfifo", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_mknod, "mknod", "%s(\"%s\",%#o,%#x)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_mlock, "mlock", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_mlockall, "mlockall", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_mmap, "mmap", NULL, NULL, print_syscall_ret_addr },
|
||||
{ TARGET_FREEBSD_NR_mount, "mount", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_mprotect, "mprotect", "%s(%#x,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_msgctl, "msgctl", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_msgget, "msgget", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_msgrcv, "msgrcv", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_msgsnd, "msgsnd", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_msync, "msync", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_munlock, "munlock", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_munlockall, "munlockall", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_munmap, "munmap", "%s(%p,%d)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_nanosleep, "nanosleep", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_nfssvc, "nfssvc", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_open, "open", "%s(\"%s\",%#x,%#o)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_pathconf, "pathconf", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_pipe, "pipe", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_poll, "poll", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_pread, "pread", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_preadv, "preadv", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_profil, "profil", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_ptrace, "ptrace", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_pwrite, "pwrite", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_pwritev, "pwritev", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_quotactl, "quotactl", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_read, "read", "%s(%d,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_readlink, "readlink", "%s(\"%s\",%p,%d)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_readv, "readv", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_reboot, "reboot", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_recvfrom, "recvfrom", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_recvmsg, "recvmsg", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_rename, "rename", "%s(\"%s\",\"%s\")", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_revoke, "revoke", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_rfork, "rfork", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_rmdir, "rmdir", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sbrk, "sbrk", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sched_yield, "sched_yield", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_select, "select", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_semget, "semget", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_semop, "semop", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sendmsg, "sendmsg", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sendto, "sendto", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setegid, "setegid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_seteuid, "seteuid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setgid, "setgid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setgroups, "setgroups", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setitimer, "setitimer", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setlogin, "setlogin", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setpgid, "setpgid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setpriority, "setpriority", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setregid, "setregid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setresgid, "setresgid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setresuid, "setresuid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setreuid, "setreuid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setrlimit, "setrlimit", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setsid, "setsid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setsockopt, "setsockopt", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_settimeofday, "settimeofday", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_setuid, "setuid", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_shmat, "shmat", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_shmctl, "shmctl", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_shmdt, "shmdt", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_shmget, "shmget", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_shutdown, "shutdown", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sigaction, "sigaction", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sigaltstack, "sigaltstack", "%s(%p,%p)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sigpending, "sigpending", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sigprocmask, "sigprocmask", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sigreturn, "sigreturn", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sigsuspend, "sigsuspend", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_socket, "socket", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_socketpair, "socketpair", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sstk, "sstk", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_stat, "stat", "%s(\"%s\",%p)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_statfs, "statfs", "%s(\"%s\",%p)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_symlink, "symlink", "%s(\"%s\",\"%s\")", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sync, "sync", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_sysarch, "sysarch", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_syscall, "syscall", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_truncate, "truncate", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_umask, "umask", "%s(%#o)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_unlink, "unlink", "%s(\"%s\")", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_unmount, "unmount", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_utimes, "utimes", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_vfork, "vfork", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_wait4, "wait4", NULL, NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_write, "write", "%s(%d,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_FREEBSD_NR_writev, "writev", "%s(%d,%p,%#x)", NULL, NULL },
|
||||
@@ -0,0 +1,373 @@
|
||||
/*
|
||||
* System call numbers.
|
||||
*
|
||||
* $FreeBSD: src/sys/sys/syscall.h,v 1.224 2008/08/24 21:23:08 rwatson Exp $
|
||||
* created from FreeBSD: head/sys/kern/syscalls.master 182123 2008-08-24 21:20:35Z rwatson
|
||||
*/
|
||||
|
||||
#define TARGET_FREEBSD_NR_syscall 0
|
||||
#define TARGET_FREEBSD_NR_exit 1
|
||||
#define TARGET_FREEBSD_NR_fork 2
|
||||
#define TARGET_FREEBSD_NR_read 3
|
||||
#define TARGET_FREEBSD_NR_write 4
|
||||
#define TARGET_FREEBSD_NR_open 5
|
||||
#define TARGET_FREEBSD_NR_close 6
|
||||
#define TARGET_FREEBSD_NR_wait4 7
|
||||
#define TARGET_FREEBSD_NR_link 9
|
||||
#define TARGET_FREEBSD_NR_unlink 10
|
||||
#define TARGET_FREEBSD_NR_chdir 12
|
||||
#define TARGET_FREEBSD_NR_fchdir 13
|
||||
#define TARGET_FREEBSD_NR_mknod 14
|
||||
#define TARGET_FREEBSD_NR_chmod 15
|
||||
#define TARGET_FREEBSD_NR_chown 16
|
||||
#define TARGET_FREEBSD_NR_break 17
|
||||
#define TARGET_FREEBSD_NR_freebsd4_getfsstat 18
|
||||
#define TARGET_FREEBSD_NR_getpid 20
|
||||
#define TARGET_FREEBSD_NR_mount 21
|
||||
#define TARGET_FREEBSD_NR_unmount 22
|
||||
#define TARGET_FREEBSD_NR_setuid 23
|
||||
#define TARGET_FREEBSD_NR_getuid 24
|
||||
#define TARGET_FREEBSD_NR_geteuid 25
|
||||
#define TARGET_FREEBSD_NR_ptrace 26
|
||||
#define TARGET_FREEBSD_NR_recvmsg 27
|
||||
#define TARGET_FREEBSD_NR_sendmsg 28
|
||||
#define TARGET_FREEBSD_NR_recvfrom 29
|
||||
#define TARGET_FREEBSD_NR_accept 30
|
||||
#define TARGET_FREEBSD_NR_getpeername 31
|
||||
#define TARGET_FREEBSD_NR_getsockname 32
|
||||
#define TARGET_FREEBSD_NR_access 33
|
||||
#define TARGET_FREEBSD_NR_chflags 34
|
||||
#define TARGET_FREEBSD_NR_fchflags 35
|
||||
#define TARGET_FREEBSD_NR_sync 36
|
||||
#define TARGET_FREEBSD_NR_kill 37
|
||||
#define TARGET_FREEBSD_NR_getppid 39
|
||||
#define TARGET_FREEBSD_NR_dup 41
|
||||
#define TARGET_FREEBSD_NR_pipe 42
|
||||
#define TARGET_FREEBSD_NR_getegid 43
|
||||
#define TARGET_FREEBSD_NR_profil 44
|
||||
#define TARGET_FREEBSD_NR_ktrace 45
|
||||
#define TARGET_FREEBSD_NR_getgid 47
|
||||
#define TARGET_FREEBSD_NR_getlogin 49
|
||||
#define TARGET_FREEBSD_NR_setlogin 50
|
||||
#define TARGET_FREEBSD_NR_acct 51
|
||||
#define TARGET_FREEBSD_NR_sigaltstack 53
|
||||
#define TARGET_FREEBSD_NR_ioctl 54
|
||||
#define TARGET_FREEBSD_NR_reboot 55
|
||||
#define TARGET_FREEBSD_NR_revoke 56
|
||||
#define TARGET_FREEBSD_NR_symlink 57
|
||||
#define TARGET_FREEBSD_NR_readlink 58
|
||||
#define TARGET_FREEBSD_NR_execve 59
|
||||
#define TARGET_FREEBSD_NR_umask 60
|
||||
#define TARGET_FREEBSD_NR_chroot 61
|
||||
#define TARGET_FREEBSD_NR_msync 65
|
||||
#define TARGET_FREEBSD_NR_vfork 66
|
||||
#define TARGET_FREEBSD_NR_sbrk 69
|
||||
#define TARGET_FREEBSD_NR_sstk 70
|
||||
#define TARGET_FREEBSD_NR_vadvise 72
|
||||
#define TARGET_FREEBSD_NR_munmap 73
|
||||
#define TARGET_FREEBSD_NR_mprotect 74
|
||||
#define TARGET_FREEBSD_NR_madvise 75
|
||||
#define TARGET_FREEBSD_NR_mincore 78
|
||||
#define TARGET_FREEBSD_NR_getgroups 79
|
||||
#define TARGET_FREEBSD_NR_setgroups 80
|
||||
#define TARGET_FREEBSD_NR_getpgrp 81
|
||||
#define TARGET_FREEBSD_NR_setpgid 82
|
||||
#define TARGET_FREEBSD_NR_setitimer 83
|
||||
#define TARGET_FREEBSD_NR_swapon 85
|
||||
#define TARGET_FREEBSD_NR_getitimer 86
|
||||
#define TARGET_FREEBSD_NR_getdtablesize 89
|
||||
#define TARGET_FREEBSD_NR_dup2 90
|
||||
#define TARGET_FREEBSD_NR_fcntl 92
|
||||
#define TARGET_FREEBSD_NR_select 93
|
||||
#define TARGET_FREEBSD_NR_fsync 95
|
||||
#define TARGET_FREEBSD_NR_setpriority 96
|
||||
#define TARGET_FREEBSD_NR_socket 97
|
||||
#define TARGET_FREEBSD_NR_connect 98
|
||||
#define TARGET_FREEBSD_NR_getpriority 100
|
||||
#define TARGET_FREEBSD_NR_bind 104
|
||||
#define TARGET_FREEBSD_NR_setsockopt 105
|
||||
#define TARGET_FREEBSD_NR_listen 106
|
||||
#define TARGET_FREEBSD_NR_gettimeofday 116
|
||||
#define TARGET_FREEBSD_NR_getrusage 117
|
||||
#define TARGET_FREEBSD_NR_getsockopt 118
|
||||
#define TARGET_FREEBSD_NR_readv 120
|
||||
#define TARGET_FREEBSD_NR_writev 121
|
||||
#define TARGET_FREEBSD_NR_settimeofday 122
|
||||
#define TARGET_FREEBSD_NR_fchown 123
|
||||
#define TARGET_FREEBSD_NR_fchmod 124
|
||||
#define TARGET_FREEBSD_NR_setreuid 126
|
||||
#define TARGET_FREEBSD_NR_setregid 127
|
||||
#define TARGET_FREEBSD_NR_rename 128
|
||||
#define TARGET_FREEBSD_NR_flock 131
|
||||
#define TARGET_FREEBSD_NR_mkfifo 132
|
||||
#define TARGET_FREEBSD_NR_sendto 133
|
||||
#define TARGET_FREEBSD_NR_shutdown 134
|
||||
#define TARGET_FREEBSD_NR_socketpair 135
|
||||
#define TARGET_FREEBSD_NR_mkdir 136
|
||||
#define TARGET_FREEBSD_NR_rmdir 137
|
||||
#define TARGET_FREEBSD_NR_utimes 138
|
||||
#define TARGET_FREEBSD_NR_adjtime 140
|
||||
#define TARGET_FREEBSD_NR_setsid 147
|
||||
#define TARGET_FREEBSD_NR_quotactl 148
|
||||
#define TARGET_FREEBSD_NR_nlm_syscall 154
|
||||
#define TARGET_FREEBSD_NR_nfssvc 155
|
||||
#define TARGET_FREEBSD_NR_freebsd4_statfs 157
|
||||
#define TARGET_FREEBSD_NR_freebsd4_fstatfs 158
|
||||
#define TARGET_FREEBSD_NR_lgetfh 160
|
||||
#define TARGET_FREEBSD_NR_getfh 161
|
||||
#define TARGET_FREEBSD_NR_getdomainname 162
|
||||
#define TARGET_FREEBSD_NR_setdomainname 163
|
||||
#define TARGET_FREEBSD_NR_uname 164
|
||||
#define TARGET_FREEBSD_NR_sysarch 165
|
||||
#define TARGET_FREEBSD_NR_rtprio 166
|
||||
#define TARGET_FREEBSD_NR_semsys 169
|
||||
#define TARGET_FREEBSD_NR_msgsys 170
|
||||
#define TARGET_FREEBSD_NR_shmsys 171
|
||||
#define TARGET_FREEBSD_NR_freebsd6_pread 173
|
||||
#define TARGET_FREEBSD_NR_freebsd6_pwrite 174
|
||||
#define TARGET_FREEBSD_NR_setfib 175
|
||||
#define TARGET_FREEBSD_NR_ntp_adjtime 176
|
||||
#define TARGET_FREEBSD_NR_setgid 181
|
||||
#define TARGET_FREEBSD_NR_setegid 182
|
||||
#define TARGET_FREEBSD_NR_seteuid 183
|
||||
#define TARGET_FREEBSD_NR_stat 188
|
||||
#define TARGET_FREEBSD_NR_fstat 189
|
||||
#define TARGET_FREEBSD_NR_lstat 190
|
||||
#define TARGET_FREEBSD_NR_pathconf 191
|
||||
#define TARGET_FREEBSD_NR_fpathconf 192
|
||||
#define TARGET_FREEBSD_NR_getrlimit 194
|
||||
#define TARGET_FREEBSD_NR_setrlimit 195
|
||||
#define TARGET_FREEBSD_NR_getdirentries 196
|
||||
#define TARGET_FREEBSD_NR_freebsd6_mmap 197
|
||||
#define TARGET_FREEBSD_NR___syscall 198
|
||||
#define TARGET_FREEBSD_NR_freebsd6_lseek 199
|
||||
#define TARGET_FREEBSD_NR_freebsd6_truncate 200
|
||||
#define TARGET_FREEBSD_NR_freebsd6_ftruncate 201
|
||||
#define TARGET_FREEBSD_NR___sysctl 202
|
||||
#define TARGET_FREEBSD_NR_mlock 203
|
||||
#define TARGET_FREEBSD_NR_munlock 204
|
||||
#define TARGET_FREEBSD_NR_undelete 205
|
||||
#define TARGET_FREEBSD_NR_futimes 206
|
||||
#define TARGET_FREEBSD_NR_getpgid 207
|
||||
#define TARGET_FREEBSD_NR_poll 209
|
||||
#define TARGET_FREEBSD_NR___semctl 220
|
||||
#define TARGET_FREEBSD_NR_semget 221
|
||||
#define TARGET_FREEBSD_NR_semop 222
|
||||
#define TARGET_FREEBSD_NR_msgctl 224
|
||||
#define TARGET_FREEBSD_NR_msgget 225
|
||||
#define TARGET_FREEBSD_NR_msgsnd 226
|
||||
#define TARGET_FREEBSD_NR_msgrcv 227
|
||||
#define TARGET_FREEBSD_NR_shmat 228
|
||||
#define TARGET_FREEBSD_NR_shmctl 229
|
||||
#define TARGET_FREEBSD_NR_shmdt 230
|
||||
#define TARGET_FREEBSD_NR_shmget 231
|
||||
#define TARGET_FREEBSD_NR_clock_gettime 232
|
||||
#define TARGET_FREEBSD_NR_clock_settime 233
|
||||
#define TARGET_FREEBSD_NR_clock_getres 234
|
||||
#define TARGET_FREEBSD_NR_ktimer_create 235
|
||||
#define TARGET_FREEBSD_NR_ktimer_delete 236
|
||||
#define TARGET_FREEBSD_NR_ktimer_settime 237
|
||||
#define TARGET_FREEBSD_NR_ktimer_gettime 238
|
||||
#define TARGET_FREEBSD_NR_ktimer_getoverrun 239
|
||||
#define TARGET_FREEBSD_NR_nanosleep 240
|
||||
#define TARGET_FREEBSD_NR_ntp_gettime 248
|
||||
#define TARGET_FREEBSD_NR_minherit 250
|
||||
#define TARGET_FREEBSD_NR_rfork 251
|
||||
#define TARGET_FREEBSD_NR_openbsd_poll 252
|
||||
#define TARGET_FREEBSD_NR_issetugid 253
|
||||
#define TARGET_FREEBSD_NR_lchown 254
|
||||
#define TARGET_FREEBSD_NR_aio_read 255
|
||||
#define TARGET_FREEBSD_NR_aio_write 256
|
||||
#define TARGET_FREEBSD_NR_lio_listio 257
|
||||
#define TARGET_FREEBSD_NR_getdents 272
|
||||
#define TARGET_FREEBSD_NR_lchmod 274
|
||||
#define TARGET_FREEBSD_NR_netbsd_lchown 275
|
||||
#define TARGET_FREEBSD_NR_lutimes 276
|
||||
#define TARGET_FREEBSD_NR_netbsd_msync 277
|
||||
#define TARGET_FREEBSD_NR_nstat 278
|
||||
#define TARGET_FREEBSD_NR_nfstat 279
|
||||
#define TARGET_FREEBSD_NR_nlstat 280
|
||||
#define TARGET_FREEBSD_NR_preadv 289
|
||||
#define TARGET_FREEBSD_NR_pwritev 290
|
||||
#define TARGET_FREEBSD_NR_freebsd4_fhstatfs 297
|
||||
#define TARGET_FREEBSD_NR_fhopen 298
|
||||
#define TARGET_FREEBSD_NR_fhstat 299
|
||||
#define TARGET_FREEBSD_NR_modnext 300
|
||||
#define TARGET_FREEBSD_NR_modstat 301
|
||||
#define TARGET_FREEBSD_NR_modfnext 302
|
||||
#define TARGET_FREEBSD_NR_modfind 303
|
||||
#define TARGET_FREEBSD_NR_kldload 304
|
||||
#define TARGET_FREEBSD_NR_kldunload 305
|
||||
#define TARGET_FREEBSD_NR_kldfind 306
|
||||
#define TARGET_FREEBSD_NR_kldnext 307
|
||||
#define TARGET_FREEBSD_NR_kldstat 308
|
||||
#define TARGET_FREEBSD_NR_kldfirstmod 309
|
||||
#define TARGET_FREEBSD_NR_getsid 310
|
||||
#define TARGET_FREEBSD_NR_setresuid 311
|
||||
#define TARGET_FREEBSD_NR_setresgid 312
|
||||
#define TARGET_FREEBSD_NR_aio_return 314
|
||||
#define TARGET_FREEBSD_NR_aio_suspend 315
|
||||
#define TARGET_FREEBSD_NR_aio_cancel 316
|
||||
#define TARGET_FREEBSD_NR_aio_error 317
|
||||
#define TARGET_FREEBSD_NR_oaio_read 318
|
||||
#define TARGET_FREEBSD_NR_oaio_write 319
|
||||
#define TARGET_FREEBSD_NR_olio_listio 320
|
||||
#define TARGET_FREEBSD_NR_yield 321
|
||||
#define TARGET_FREEBSD_NR_mlockall 324
|
||||
#define TARGET_FREEBSD_NR_munlockall 325
|
||||
#define TARGET_FREEBSD_NR___getcwd 326
|
||||
#define TARGET_FREEBSD_NR_sched_setparam 327
|
||||
#define TARGET_FREEBSD_NR_sched_getparam 328
|
||||
#define TARGET_FREEBSD_NR_sched_setscheduler 329
|
||||
#define TARGET_FREEBSD_NR_sched_getscheduler 330
|
||||
#define TARGET_FREEBSD_NR_sched_yield 331
|
||||
#define TARGET_FREEBSD_NR_sched_get_priority_max 332
|
||||
#define TARGET_FREEBSD_NR_sched_get_priority_min 333
|
||||
#define TARGET_FREEBSD_NR_sched_rr_get_interval 334
|
||||
#define TARGET_FREEBSD_NR_utrace 335
|
||||
#define TARGET_FREEBSD_NR_freebsd4_sendfile 336
|
||||
#define TARGET_FREEBSD_NR_kldsym 337
|
||||
#define TARGET_FREEBSD_NR_jail 338
|
||||
#define TARGET_FREEBSD_NR_sigprocmask 340
|
||||
#define TARGET_FREEBSD_NR_sigsuspend 341
|
||||
#define TARGET_FREEBSD_NR_freebsd4_sigaction 342
|
||||
#define TARGET_FREEBSD_NR_sigpending 343
|
||||
#define TARGET_FREEBSD_NR_freebsd4_sigreturn 344
|
||||
#define TARGET_FREEBSD_NR_sigtimedwait 345
|
||||
#define TARGET_FREEBSD_NR_sigwaitinfo 346
|
||||
#define TARGET_FREEBSD_NR___acl_get_file 347
|
||||
#define TARGET_FREEBSD_NR___acl_set_file 348
|
||||
#define TARGET_FREEBSD_NR___acl_get_fd 349
|
||||
#define TARGET_FREEBSD_NR___acl_set_fd 350
|
||||
#define TARGET_FREEBSD_NR___acl_delete_file 351
|
||||
#define TARGET_FREEBSD_NR___acl_delete_fd 352
|
||||
#define TARGET_FREEBSD_NR___acl_aclcheck_file 353
|
||||
#define TARGET_FREEBSD_NR___acl_aclcheck_fd 354
|
||||
#define TARGET_FREEBSD_NR_extattrctl 355
|
||||
#define TARGET_FREEBSD_NR_extattr_set_file 356
|
||||
#define TARGET_FREEBSD_NR_extattr_get_file 357
|
||||
#define TARGET_FREEBSD_NR_extattr_delete_file 358
|
||||
#define TARGET_FREEBSD_NR_aio_waitcomplete 359
|
||||
#define TARGET_FREEBSD_NR_getresuid 360
|
||||
#define TARGET_FREEBSD_NR_getresgid 361
|
||||
#define TARGET_FREEBSD_NR_kqueue 362
|
||||
#define TARGET_FREEBSD_NR_kevent 363
|
||||
#define TARGET_FREEBSD_NR_extattr_set_fd 371
|
||||
#define TARGET_FREEBSD_NR_extattr_get_fd 372
|
||||
#define TARGET_FREEBSD_NR_extattr_delete_fd 373
|
||||
#define TARGET_FREEBSD_NR___setugid 374
|
||||
#define TARGET_FREEBSD_NR_nfsclnt 375
|
||||
#define TARGET_FREEBSD_NR_eaccess 376
|
||||
#define TARGET_FREEBSD_NR_nmount 378
|
||||
#define TARGET_FREEBSD_NR___mac_get_proc 384
|
||||
#define TARGET_FREEBSD_NR___mac_set_proc 385
|
||||
#define TARGET_FREEBSD_NR___mac_get_fd 386
|
||||
#define TARGET_FREEBSD_NR___mac_get_file 387
|
||||
#define TARGET_FREEBSD_NR___mac_set_fd 388
|
||||
#define TARGET_FREEBSD_NR___mac_set_file 389
|
||||
#define TARGET_FREEBSD_NR_kenv 390
|
||||
#define TARGET_FREEBSD_NR_lchflags 391
|
||||
#define TARGET_FREEBSD_NR_uuidgen 392
|
||||
#define TARGET_FREEBSD_NR_sendfile 393
|
||||
#define TARGET_FREEBSD_NR_mac_syscall 394
|
||||
#define TARGET_FREEBSD_NR_getfsstat 395
|
||||
#define TARGET_FREEBSD_NR_statfs 396
|
||||
#define TARGET_FREEBSD_NR_fstatfs 397
|
||||
#define TARGET_FREEBSD_NR_fhstatfs 398
|
||||
#define TARGET_FREEBSD_NR_ksem_close 400
|
||||
#define TARGET_FREEBSD_NR_ksem_post 401
|
||||
#define TARGET_FREEBSD_NR_ksem_wait 402
|
||||
#define TARGET_FREEBSD_NR_ksem_trywait 403
|
||||
#define TARGET_FREEBSD_NR_ksem_init 404
|
||||
#define TARGET_FREEBSD_NR_ksem_open 405
|
||||
#define TARGET_FREEBSD_NR_ksem_unlink 406
|
||||
#define TARGET_FREEBSD_NR_ksem_getvalue 407
|
||||
#define TARGET_FREEBSD_NR_ksem_destroy 408
|
||||
#define TARGET_FREEBSD_NR___mac_get_pid 409
|
||||
#define TARGET_FREEBSD_NR___mac_get_link 410
|
||||
#define TARGET_FREEBSD_NR___mac_set_link 411
|
||||
#define TARGET_FREEBSD_NR_extattr_set_link 412
|
||||
#define TARGET_FREEBSD_NR_extattr_get_link 413
|
||||
#define TARGET_FREEBSD_NR_extattr_delete_link 414
|
||||
#define TARGET_FREEBSD_NR___mac_execve 415
|
||||
#define TARGET_FREEBSD_NR_sigaction 416
|
||||
#define TARGET_FREEBSD_NR_sigreturn 417
|
||||
#define TARGET_FREEBSD_NR_getcontext 421
|
||||
#define TARGET_FREEBSD_NR_setcontext 422
|
||||
#define TARGET_FREEBSD_NR_swapcontext 423
|
||||
#define TARGET_FREEBSD_NR_swapoff 424
|
||||
#define TARGET_FREEBSD_NR___acl_get_link 425
|
||||
#define TARGET_FREEBSD_NR___acl_set_link 426
|
||||
#define TARGET_FREEBSD_NR___acl_delete_link 427
|
||||
#define TARGET_FREEBSD_NR___acl_aclcheck_link 428
|
||||
#define TARGET_FREEBSD_NR_sigwait 429
|
||||
#define TARGET_FREEBSD_NR_thr_create 430
|
||||
#define TARGET_FREEBSD_NR_thr_exit 431
|
||||
#define TARGET_FREEBSD_NR_thr_self 432
|
||||
#define TARGET_FREEBSD_NR_thr_kill 433
|
||||
#define TARGET_FREEBSD_NR__umtx_lock 434
|
||||
#define TARGET_FREEBSD_NR__umtx_unlock 435
|
||||
#define TARGET_FREEBSD_NR_jail_attach 436
|
||||
#define TARGET_FREEBSD_NR_extattr_list_fd 437
|
||||
#define TARGET_FREEBSD_NR_extattr_list_file 438
|
||||
#define TARGET_FREEBSD_NR_extattr_list_link 439
|
||||
#define TARGET_FREEBSD_NR_ksem_timedwait 441
|
||||
#define TARGET_FREEBSD_NR_thr_suspend 442
|
||||
#define TARGET_FREEBSD_NR_thr_wake 443
|
||||
#define TARGET_FREEBSD_NR_kldunloadf 444
|
||||
#define TARGET_FREEBSD_NR_audit 445
|
||||
#define TARGET_FREEBSD_NR_auditon 446
|
||||
#define TARGET_FREEBSD_NR_getauid 447
|
||||
#define TARGET_FREEBSD_NR_setauid 448
|
||||
#define TARGET_FREEBSD_NR_getaudit 449
|
||||
#define TARGET_FREEBSD_NR_setaudit 450
|
||||
#define TARGET_FREEBSD_NR_getaudit_addr 451
|
||||
#define TARGET_FREEBSD_NR_setaudit_addr 452
|
||||
#define TARGET_FREEBSD_NR_auditctl 453
|
||||
#define TARGET_FREEBSD_NR__umtx_op 454
|
||||
#define TARGET_FREEBSD_NR_thr_new 455
|
||||
#define TARGET_FREEBSD_NR_sigqueue 456
|
||||
#define TARGET_FREEBSD_NR_kmq_open 457
|
||||
#define TARGET_FREEBSD_NR_kmq_setattr 458
|
||||
#define TARGET_FREEBSD_NR_kmq_timedreceive 459
|
||||
#define TARGET_FREEBSD_NR_kmq_timedsend 460
|
||||
#define TARGET_FREEBSD_NR_kmq_notify 461
|
||||
#define TARGET_FREEBSD_NR_kmq_unlink 462
|
||||
#define TARGET_FREEBSD_NR_abort2 463
|
||||
#define TARGET_FREEBSD_NR_thr_set_name 464
|
||||
#define TARGET_FREEBSD_NR_aio_fsync 465
|
||||
#define TARGET_FREEBSD_NR_rtprio_thread 466
|
||||
#define TARGET_FREEBSD_NR_sctp_peeloff 471
|
||||
#define TARGET_FREEBSD_NR_sctp_generic_sendmsg 472
|
||||
#define TARGET_FREEBSD_NR_sctp_generic_sendmsg_iov 473
|
||||
#define TARGET_FREEBSD_NR_sctp_generic_recvmsg 474
|
||||
#define TARGET_FREEBSD_NR_pread 475
|
||||
#define TARGET_FREEBSD_NR_pwrite 476
|
||||
#define TARGET_FREEBSD_NR_mmap 477
|
||||
#define TARGET_FREEBSD_NR_lseek 478
|
||||
#define TARGET_FREEBSD_NR_truncate 479
|
||||
#define TARGET_FREEBSD_NR_ftruncate 480
|
||||
#define TARGET_FREEBSD_NR_thr_kill2 481
|
||||
#define TARGET_FREEBSD_NR_shm_open 482
|
||||
#define TARGET_FREEBSD_NR_shm_unlink 483
|
||||
#define TARGET_FREEBSD_NR_cpuset 484
|
||||
#define TARGET_FREEBSD_NR_cpuset_setid 485
|
||||
#define TARGET_FREEBSD_NR_cpuset_getid 486
|
||||
#define TARGET_FREEBSD_NR_cpuset_getaffinity 487
|
||||
#define TARGET_FREEBSD_NR_cpuset_setaffinity 488
|
||||
#define TARGET_FREEBSD_NR_faccessat 489
|
||||
#define TARGET_FREEBSD_NR_fchmodat 490
|
||||
#define TARGET_FREEBSD_NR_fchownat 491
|
||||
#define TARGET_FREEBSD_NR_fexecve 492
|
||||
#define TARGET_FREEBSD_NR_fstatat 493
|
||||
#define TARGET_FREEBSD_NR_futimesat 494
|
||||
#define TARGET_FREEBSD_NR_linkat 495
|
||||
#define TARGET_FREEBSD_NR_mkdirat 496
|
||||
#define TARGET_FREEBSD_NR_mkfifoat 497
|
||||
#define TARGET_FREEBSD_NR_mknodat 498
|
||||
#define TARGET_FREEBSD_NR_openat 499
|
||||
#define TARGET_FREEBSD_NR_readlinkat 500
|
||||
#define TARGET_FREEBSD_NR_renameat 501
|
||||
#define TARGET_FREEBSD_NR_symlinkat 502
|
||||
#define TARGET_FREEBSD_NR_unlinkat 503
|
||||
#define TARGET_FREEBSD_NR_posix_openpt 504
|
||||
+576
File diff suppressed because it is too large
Load Diff
+545
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,145 @@
|
||||
{ TARGET_NETBSD_NR___getcwd, "__getcwd", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR___syscall, "__syscall", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR___sysctl, "__sysctl", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_accept, "accept", "%s(%d,%#x,%#x)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_access, "access", "%s(\"%s\",%#o)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_acct, "acct", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_adjtime, "adjtime", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_bind, "bind", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_break, "break", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_chdir, "chdir", "%s(\"%s\")", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_chflags, "chflags", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_chmod, "chmod", "%s(\"%s\",%#o)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_chown, "chown", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_chroot, "chroot", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_clock_getres, "clock_getres", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_clock_gettime, "clock_gettime", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_clock_settime, "clock_settime", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_close, "close", "%s(%d)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_connect, "connect", "%s(%d,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_dup, "dup", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_dup2, "dup2", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_execve, "execve", NULL, print_execve, NULL },
|
||||
{ TARGET_NETBSD_NR_exit, "exit", "%s(%d)\n", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_fchdir, "fchdir", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_fchflags, "fchflags", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_fchmod, "fchmod", "%s(%d,%#o)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_fchown, "fchown", "%s(\"%s\",%d,%d)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_fcntl, "fcntl", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_flock, "flock", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_fork, "fork", "%s()", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_fpathconf, "fpathconf", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_fsync, "fsync", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_ftruncate, "ftruncate", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_futimes, "futimes", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getegid, "getegid", "%s()", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_geteuid, "geteuid", "%s()", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getgid, "getgid", "%s()", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getgroups, "getgroups", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getitimer, "getitimer", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getpeername, "getpeername", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getpgid, "getpgid", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getpgrp, "getpgrp", "%s()", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getpid, "getpid", "%s()", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getppid, "getppid", "%s()", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getpriority, "getpriority", "%s(%#x,%#x)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getrlimit, "getrlimit", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getrusage, "getrusage", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getsid, "getsid", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getsockname, "getsockname", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getsockopt, "getsockopt", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_gettimeofday, "gettimeofday", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_getuid, "getuid", "%s()", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_ioctl, "ioctl", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_issetugid, "issetugid", "%s()", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_kevent, "kevent", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_kill, "kill", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_kqueue, "kqueue", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_ktrace, "ktrace", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_lchown, "lchown", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_lfs_bmapv, "lfs_bmapv", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_lfs_markv, "lfs_markv", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_lfs_segclean, "lfs_segclean", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_lfs_segwait, "lfs_segwait", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_link, "link", "%s(\"%s\",\"%s\")", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_listen, "listen", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_lseek, "lseek", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_madvise, "madvise", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_mincore, "mincore", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_minherit, "minherit", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_mkdir, "mkdir", "%s(\"%s\",%#o)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_mkfifo, "mkfifo", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_mknod, "mknod", "%s(\"%s\",%#o,%#x)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_mlock, "mlock", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_mlockall, "mlockall", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_mmap, "mmap", NULL, NULL, print_syscall_ret_addr },
|
||||
{ TARGET_NETBSD_NR_mprotect, "mprotect", "%s(%#x,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_msgget, "msgget", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_msgrcv, "msgrcv", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_msgsnd, "msgsnd", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_munlock, "munlock", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_munlockall, "munlockall", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_munmap, "munmap", "%s(%p,%d)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_nanosleep, "nanosleep", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_nfssvc, "nfssvc", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_open, "open", "%s(\"%s\",%#x,%#o)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_pathconf, "pathconf", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_pipe, "pipe", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_poll, "poll", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_pread, "pread", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_preadv, "preadv", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_profil, "profil", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_ptrace, "ptrace", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_pwrite, "pwrite", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_pwritev, "pwritev", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_quotactl, "quotactl", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_read, "read", "%s(%d,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_readlink, "readlink", "%s(\"%s\",%p,%d)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_readv, "readv", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_reboot, "reboot", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_recvfrom, "recvfrom", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_recvmsg, "recvmsg", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_rename, "rename", "%s(\"%s\",\"%s\")", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_revoke, "revoke", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_rmdir, "rmdir", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_sbrk, "sbrk", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_sched_yield, "sched_yield", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_select, "select", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_semget, "semget", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_semop, "semop", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_sendmsg, "sendmsg", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_sendto, "sendto", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setegid, "setegid", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_seteuid, "seteuid", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setgid, "setgid", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setgroups, "setgroups", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setitimer, "setitimer", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setpgid, "setpgid", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setpriority, "setpriority", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setregid, "setregid", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setreuid, "setreuid", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setrlimit, "setrlimit", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setsid, "setsid", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setsockopt, "setsockopt", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_settimeofday, "settimeofday", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_setuid, "setuid", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_shmat, "shmat", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_shmdt, "shmdt", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_shmget, "shmget", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_shutdown, "shutdown", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_socketpair, "socketpair", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_sstk, "sstk", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_swapctl, "swapctl", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_symlink, "symlink", "%s(\"%s\",\"%s\")", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_sync, "sync", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_sysarch, "sysarch", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_syscall, "syscall", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_truncate, "truncate", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_umask, "umask", "%s(%#o)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_unlink, "unlink", "%s(\"%s\")", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_unmount, "unmount", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_utimes, "utimes", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_vfork, "vfork", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_wait4, "wait4", NULL, NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_write, "write", "%s(%d,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_NETBSD_NR_writev, "writev", "%s(%d,%p,%#x)", NULL, NULL },
|
||||
@@ -0,0 +1,373 @@
|
||||
/* $NetBSD: syscall.h,v 1.215 2008/06/17 16:07:57 tsutsui Exp $ */
|
||||
|
||||
/*
|
||||
* System call numbers.
|
||||
*
|
||||
* created from NetBSD: syscalls.master,v 1.204 2008/06/17 16:05:23 tsutsui Exp
|
||||
*/
|
||||
|
||||
#define TARGET_NETBSD_NR_syscall 0
|
||||
#define TARGET_NETBSD_NR_exit 1
|
||||
#define TARGET_NETBSD_NR_fork 2
|
||||
#define TARGET_NETBSD_NR_read 3
|
||||
#define TARGET_NETBSD_NR_write 4
|
||||
#define TARGET_NETBSD_NR_open 5
|
||||
#define TARGET_NETBSD_NR_close 6
|
||||
#define TARGET_NETBSD_NR_wait4 7
|
||||
#define TARGET_NETBSD_NR_compat_43_ocreat 8
|
||||
#define TARGET_NETBSD_NR_link 9
|
||||
#define TARGET_NETBSD_NR_unlink 10
|
||||
#define TARGET_NETBSD_NR_chdir 12
|
||||
#define TARGET_NETBSD_NR_fchdir 13
|
||||
#define TARGET_NETBSD_NR_mknod 14
|
||||
#define TARGET_NETBSD_NR_chmod 15
|
||||
#define TARGET_NETBSD_NR_chown 16
|
||||
#define TARGET_NETBSD_NR_break 17
|
||||
#define TARGET_NETBSD_NR_compat_20_getfsstat 18
|
||||
#define TARGET_NETBSD_NR_compat_43_olseek 19
|
||||
#define TARGET_NETBSD_NR_getpid 20
|
||||
#define TARGET_NETBSD_NR_getpid 20
|
||||
#define TARGET_NETBSD_NR_compat_40_mount 21
|
||||
#define TARGET_NETBSD_NR_unmount 22
|
||||
#define TARGET_NETBSD_NR_setuid 23
|
||||
#define TARGET_NETBSD_NR_getuid 24
|
||||
#define TARGET_NETBSD_NR_getuid 24
|
||||
#define TARGET_NETBSD_NR_geteuid 25
|
||||
#define TARGET_NETBSD_NR_ptrace 26
|
||||
#define TARGET_NETBSD_NR_recvmsg 27
|
||||
#define TARGET_NETBSD_NR_sendmsg 28
|
||||
#define TARGET_NETBSD_NR_recvfrom 29
|
||||
#define TARGET_NETBSD_NR_accept 30
|
||||
#define TARGET_NETBSD_NR_getpeername 31
|
||||
#define TARGET_NETBSD_NR_getsockname 32
|
||||
#define TARGET_NETBSD_NR_access 33
|
||||
#define TARGET_NETBSD_NR_chflags 34
|
||||
#define TARGET_NETBSD_NR_fchflags 35
|
||||
#define TARGET_NETBSD_NR_sync 36
|
||||
#define TARGET_NETBSD_NR_kill 37
|
||||
#define TARGET_NETBSD_NR_compat_43_stat43 38
|
||||
#define TARGET_NETBSD_NR_getppid 39
|
||||
#define TARGET_NETBSD_NR_compat_43_lstat43 40
|
||||
#define TARGET_NETBSD_NR_dup 41
|
||||
#define TARGET_NETBSD_NR_pipe 42
|
||||
#define TARGET_NETBSD_NR_getegid 43
|
||||
#define TARGET_NETBSD_NR_profil 44
|
||||
#define TARGET_NETBSD_NR_ktrace 45
|
||||
#define TARGET_NETBSD_NR_compat_13_sigaction13 46
|
||||
#define TARGET_NETBSD_NR_getgid 47
|
||||
#define TARGET_NETBSD_NR_getgid 47
|
||||
#define TARGET_NETBSD_NR_compat_13_sigprocmask13 48
|
||||
#define TARGET_NETBSD_NR___getlogin 49
|
||||
#define TARGET_NETBSD_NR___setlogin 50
|
||||
#define TARGET_NETBSD_NR_acct 51
|
||||
#define TARGET_NETBSD_NR_compat_13_sigpending13 52
|
||||
#define TARGET_NETBSD_NR_compat_13_sigaltstack13 53
|
||||
#define TARGET_NETBSD_NR_ioctl 54
|
||||
#define TARGET_NETBSD_NR_compat_12_oreboot 55
|
||||
#define TARGET_NETBSD_NR_revoke 56
|
||||
#define TARGET_NETBSD_NR_symlink 57
|
||||
#define TARGET_NETBSD_NR_readlink 58
|
||||
#define TARGET_NETBSD_NR_execve 59
|
||||
#define TARGET_NETBSD_NR_umask 60
|
||||
#define TARGET_NETBSD_NR_chroot 61
|
||||
#define TARGET_NETBSD_NR_compat_43_fstat43 62
|
||||
#define TARGET_NETBSD_NR_compat_43_ogetkerninfo 63
|
||||
#define TARGET_NETBSD_NR_compat_43_ogetpagesize 64
|
||||
#define TARGET_NETBSD_NR_compat_12_msync 65
|
||||
#define TARGET_NETBSD_NR_vfork 66
|
||||
#define TARGET_NETBSD_NR_sbrk 69
|
||||
#define TARGET_NETBSD_NR_sstk 70
|
||||
#define TARGET_NETBSD_NR_compat_43_ommap 71
|
||||
#define TARGET_NETBSD_NR_vadvise 72
|
||||
#define TARGET_NETBSD_NR_munmap 73
|
||||
#define TARGET_NETBSD_NR_mprotect 74
|
||||
#define TARGET_NETBSD_NR_madvise 75
|
||||
#define TARGET_NETBSD_NR_mincore 78
|
||||
#define TARGET_NETBSD_NR_getgroups 79
|
||||
#define TARGET_NETBSD_NR_setgroups 80
|
||||
#define TARGET_NETBSD_NR_getpgrp 81
|
||||
#define TARGET_NETBSD_NR_setpgid 82
|
||||
#define TARGET_NETBSD_NR_setitimer 83
|
||||
#define TARGET_NETBSD_NR_compat_43_owait 84
|
||||
#define TARGET_NETBSD_NR_compat_12_oswapon 85
|
||||
#define TARGET_NETBSD_NR_getitimer 86
|
||||
#define TARGET_NETBSD_NR_compat_43_ogethostname 87
|
||||
#define TARGET_NETBSD_NR_compat_43_osethostname 88
|
||||
#define TARGET_NETBSD_NR_compat_43_ogetdtablesize 89
|
||||
#define TARGET_NETBSD_NR_dup2 90
|
||||
#define TARGET_NETBSD_NR_fcntl 92
|
||||
#define TARGET_NETBSD_NR_select 93
|
||||
#define TARGET_NETBSD_NR_fsync 95
|
||||
#define TARGET_NETBSD_NR_setpriority 96
|
||||
#define TARGET_NETBSD_NR_compat_30_socket 97
|
||||
#define TARGET_NETBSD_NR_connect 98
|
||||
#define TARGET_NETBSD_NR_compat_43_oaccept 99
|
||||
#define TARGET_NETBSD_NR_getpriority 100
|
||||
#define TARGET_NETBSD_NR_compat_43_osend 101
|
||||
#define TARGET_NETBSD_NR_compat_43_orecv 102
|
||||
#define TARGET_NETBSD_NR_compat_13_sigreturn13 103
|
||||
#define TARGET_NETBSD_NR_bind 104
|
||||
#define TARGET_NETBSD_NR_setsockopt 105
|
||||
#define TARGET_NETBSD_NR_listen 106
|
||||
#define TARGET_NETBSD_NR_compat_43_osigvec 108
|
||||
#define TARGET_NETBSD_NR_compat_43_osigblock 109
|
||||
#define TARGET_NETBSD_NR_compat_43_osigsetmask 110
|
||||
#define TARGET_NETBSD_NR_compat_13_sigsuspend13 111
|
||||
#define TARGET_NETBSD_NR_compat_43_osigstack 112
|
||||
#define TARGET_NETBSD_NR_compat_43_orecvmsg 113
|
||||
#define TARGET_NETBSD_NR_compat_43_osendmsg 114
|
||||
#define TARGET_NETBSD_NR_gettimeofday 116
|
||||
#define TARGET_NETBSD_NR_getrusage 117
|
||||
#define TARGET_NETBSD_NR_getsockopt 118
|
||||
#define TARGET_NETBSD_NR_readv 120
|
||||
#define TARGET_NETBSD_NR_writev 121
|
||||
#define TARGET_NETBSD_NR_settimeofday 122
|
||||
#define TARGET_NETBSD_NR_fchown 123
|
||||
#define TARGET_NETBSD_NR_fchmod 124
|
||||
#define TARGET_NETBSD_NR_compat_43_orecvfrom 125
|
||||
#define TARGET_NETBSD_NR_setreuid 126
|
||||
#define TARGET_NETBSD_NR_setregid 127
|
||||
#define TARGET_NETBSD_NR_rename 128
|
||||
#define TARGET_NETBSD_NR_compat_43_otruncate 129
|
||||
#define TARGET_NETBSD_NR_compat_43_oftruncate 130
|
||||
#define TARGET_NETBSD_NR_flock 131
|
||||
#define TARGET_NETBSD_NR_mkfifo 132
|
||||
#define TARGET_NETBSD_NR_sendto 133
|
||||
#define TARGET_NETBSD_NR_shutdown 134
|
||||
#define TARGET_NETBSD_NR_socketpair 135
|
||||
#define TARGET_NETBSD_NR_mkdir 136
|
||||
#define TARGET_NETBSD_NR_rmdir 137
|
||||
#define TARGET_NETBSD_NR_utimes 138
|
||||
#define TARGET_NETBSD_NR_adjtime 140
|
||||
#define TARGET_NETBSD_NR_compat_43_ogetpeername 141
|
||||
#define TARGET_NETBSD_NR_compat_43_ogethostid 142
|
||||
#define TARGET_NETBSD_NR_compat_43_osethostid 143
|
||||
#define TARGET_NETBSD_NR_compat_43_ogetrlimit 144
|
||||
#define TARGET_NETBSD_NR_compat_43_osetrlimit 145
|
||||
#define TARGET_NETBSD_NR_compat_43_okillpg 146
|
||||
#define TARGET_NETBSD_NR_setsid 147
|
||||
#define TARGET_NETBSD_NR_quotactl 148
|
||||
#define TARGET_NETBSD_NR_compat_43_oquota 149
|
||||
#define TARGET_NETBSD_NR_compat_43_ogetsockname 150
|
||||
#define TARGET_NETBSD_NR_nfssvc 155
|
||||
#define TARGET_NETBSD_NR_compat_43_ogetdirentries 156
|
||||
#define TARGET_NETBSD_NR_compat_20_statfs 157
|
||||
#define TARGET_NETBSD_NR_compat_20_fstatfs 158
|
||||
#define TARGET_NETBSD_NR_compat_30_getfh 161
|
||||
#define TARGET_NETBSD_NR_compat_09_ogetdomainname 162
|
||||
#define TARGET_NETBSD_NR_compat_09_osetdomainname 163
|
||||
#define TARGET_NETBSD_NR_compat_09_ouname 164
|
||||
#define TARGET_NETBSD_NR_sysarch 165
|
||||
#define TARGET_NETBSD_NR_compat_10_osemsys 169
|
||||
#define TARGET_NETBSD_NR_compat_10_omsgsys 170
|
||||
#define TARGET_NETBSD_NR_compat_10_oshmsys 171
|
||||
#define TARGET_NETBSD_NR_pread 173
|
||||
#define TARGET_NETBSD_NR_pwrite 174
|
||||
#define TARGET_NETBSD_NR_compat_30_ntp_gettime 175
|
||||
#define TARGET_NETBSD_NR_ntp_adjtime 176
|
||||
#define TARGET_NETBSD_NR_setgid 181
|
||||
#define TARGET_NETBSD_NR_setegid 182
|
||||
#define TARGET_NETBSD_NR_seteuid 183
|
||||
#define TARGET_NETBSD_NR_lfs_bmapv 184
|
||||
#define TARGET_NETBSD_NR_lfs_markv 185
|
||||
#define TARGET_NETBSD_NR_lfs_segclean 186
|
||||
#define TARGET_NETBSD_NR_lfs_segwait 187
|
||||
#define TARGET_NETBSD_NR_compat_12_stat12 188
|
||||
#define TARGET_NETBSD_NR_compat_12_fstat12 189
|
||||
#define TARGET_NETBSD_NR_compat_12_lstat12 190
|
||||
#define TARGET_NETBSD_NR_pathconf 191
|
||||
#define TARGET_NETBSD_NR_fpathconf 192
|
||||
#define TARGET_NETBSD_NR_getrlimit 194
|
||||
#define TARGET_NETBSD_NR_setrlimit 195
|
||||
#define TARGET_NETBSD_NR_compat_12_getdirentries 196
|
||||
#define TARGET_NETBSD_NR_mmap 197
|
||||
#define TARGET_NETBSD_NR___syscall 198
|
||||
#define TARGET_NETBSD_NR_lseek 199
|
||||
#define TARGET_NETBSD_NR_truncate 200
|
||||
#define TARGET_NETBSD_NR_ftruncate 201
|
||||
#define TARGET_NETBSD_NR___sysctl 202
|
||||
#define TARGET_NETBSD_NR_mlock 203
|
||||
#define TARGET_NETBSD_NR_munlock 204
|
||||
#define TARGET_NETBSD_NR_undelete 205
|
||||
#define TARGET_NETBSD_NR_futimes 206
|
||||
#define TARGET_NETBSD_NR_getpgid 207
|
||||
#define TARGET_NETBSD_NR_reboot 208
|
||||
#define TARGET_NETBSD_NR_poll 209
|
||||
#define TARGET_NETBSD_NR_compat_14___semctl 220
|
||||
#define TARGET_NETBSD_NR_semget 221
|
||||
#define TARGET_NETBSD_NR_semop 222
|
||||
#define TARGET_NETBSD_NR_semconfig 223
|
||||
#define TARGET_NETBSD_NR_compat_14_msgctl 224
|
||||
#define TARGET_NETBSD_NR_msgget 225
|
||||
#define TARGET_NETBSD_NR_msgsnd 226
|
||||
#define TARGET_NETBSD_NR_msgrcv 227
|
||||
#define TARGET_NETBSD_NR_shmat 228
|
||||
#define TARGET_NETBSD_NR_compat_14_shmctl 229
|
||||
#define TARGET_NETBSD_NR_shmdt 230
|
||||
#define TARGET_NETBSD_NR_shmget 231
|
||||
#define TARGET_NETBSD_NR_clock_gettime 232
|
||||
#define TARGET_NETBSD_NR_clock_settime 233
|
||||
#define TARGET_NETBSD_NR_clock_getres 234
|
||||
#define TARGET_NETBSD_NR_timer_create 235
|
||||
#define TARGET_NETBSD_NR_timer_delete 236
|
||||
#define TARGET_NETBSD_NR_timer_settime 237
|
||||
#define TARGET_NETBSD_NR_timer_gettime 238
|
||||
#define TARGET_NETBSD_NR_timer_getoverrun 239
|
||||
#define TARGET_NETBSD_NR_nanosleep 240
|
||||
#define TARGET_NETBSD_NR_fdatasync 241
|
||||
#define TARGET_NETBSD_NR_mlockall 242
|
||||
#define TARGET_NETBSD_NR_munlockall 243
|
||||
#define TARGET_NETBSD_NR___sigtimedwait 244
|
||||
#define TARGET_NETBSD_NR_modctl 246
|
||||
#define TARGET_NETBSD_NR__ksem_init 247
|
||||
#define TARGET_NETBSD_NR__ksem_open 248
|
||||
#define TARGET_NETBSD_NR__ksem_unlink 249
|
||||
#define TARGET_NETBSD_NR__ksem_close 250
|
||||
#define TARGET_NETBSD_NR__ksem_post 251
|
||||
#define TARGET_NETBSD_NR__ksem_wait 252
|
||||
#define TARGET_NETBSD_NR__ksem_trywait 253
|
||||
#define TARGET_NETBSD_NR__ksem_getvalue 254
|
||||
#define TARGET_NETBSD_NR__ksem_destroy 255
|
||||
#define TARGET_NETBSD_NR_mq_open 257
|
||||
#define TARGET_NETBSD_NR_mq_close 258
|
||||
#define TARGET_NETBSD_NR_mq_unlink 259
|
||||
#define TARGET_NETBSD_NR_mq_getattr 260
|
||||
#define TARGET_NETBSD_NR_mq_setattr 261
|
||||
#define TARGET_NETBSD_NR_mq_notify 262
|
||||
#define TARGET_NETBSD_NR_mq_send 263
|
||||
#define TARGET_NETBSD_NR_mq_receive 264
|
||||
#define TARGET_NETBSD_NR_mq_timedsend 265
|
||||
#define TARGET_NETBSD_NR_mq_timedreceive 266
|
||||
#define TARGET_NETBSD_NR___posix_rename 270
|
||||
#define TARGET_NETBSD_NR_swapctl 271
|
||||
#define TARGET_NETBSD_NR_compat_30_getdents 272
|
||||
#define TARGET_NETBSD_NR_minherit 273
|
||||
#define TARGET_NETBSD_NR_lchmod 274
|
||||
#define TARGET_NETBSD_NR_lchown 275
|
||||
#define TARGET_NETBSD_NR_lutimes 276
|
||||
#define TARGET_NETBSD_NR___msync13 277
|
||||
#define TARGET_NETBSD_NR_compat_30___stat13 278
|
||||
#define TARGET_NETBSD_NR_compat_30___fstat13 279
|
||||
#define TARGET_NETBSD_NR_compat_30___lstat13 280
|
||||
#define TARGET_NETBSD_NR___sigaltstack14 281
|
||||
#define TARGET_NETBSD_NR___vfork14 282
|
||||
#define TARGET_NETBSD_NR___posix_chown 283
|
||||
#define TARGET_NETBSD_NR___posix_fchown 284
|
||||
#define TARGET_NETBSD_NR___posix_lchown 285
|
||||
#define TARGET_NETBSD_NR_getsid 286
|
||||
#define TARGET_NETBSD_NR___clone 287
|
||||
#define TARGET_NETBSD_NR_fktrace 288
|
||||
#define TARGET_NETBSD_NR_preadv 289
|
||||
#define TARGET_NETBSD_NR_pwritev 290
|
||||
#define TARGET_NETBSD_NR_compat_16___sigaction14 291
|
||||
#define TARGET_NETBSD_NR___sigpending14 292
|
||||
#define TARGET_NETBSD_NR___sigprocmask14 293
|
||||
#define TARGET_NETBSD_NR___sigsuspend14 294
|
||||
#define TARGET_NETBSD_NR_compat_16___sigreturn14 295
|
||||
#define TARGET_NETBSD_NR___getcwd 296
|
||||
#define TARGET_NETBSD_NR_fchroot 297
|
||||
#define TARGET_NETBSD_NR_compat_30_fhopen 298
|
||||
#define TARGET_NETBSD_NR_compat_30_fhstat 299
|
||||
#define TARGET_NETBSD_NR_compat_20_fhstatfs 300
|
||||
#define TARGET_NETBSD_NR_____semctl13 301
|
||||
#define TARGET_NETBSD_NR___msgctl13 302
|
||||
#define TARGET_NETBSD_NR___shmctl13 303
|
||||
#define TARGET_NETBSD_NR_lchflags 304
|
||||
#define TARGET_NETBSD_NR_issetugid 305
|
||||
#define TARGET_NETBSD_NR_utrace 306
|
||||
#define TARGET_NETBSD_NR_getcontext 307
|
||||
#define TARGET_NETBSD_NR_setcontext 308
|
||||
#define TARGET_NETBSD_NR__lwp_create 309
|
||||
#define TARGET_NETBSD_NR__lwp_exit 310
|
||||
#define TARGET_NETBSD_NR__lwp_self 311
|
||||
#define TARGET_NETBSD_NR__lwp_wait 312
|
||||
#define TARGET_NETBSD_NR__lwp_suspend 313
|
||||
#define TARGET_NETBSD_NR__lwp_continue 314
|
||||
#define TARGET_NETBSD_NR__lwp_wakeup 315
|
||||
#define TARGET_NETBSD_NR__lwp_getprivate 316
|
||||
#define TARGET_NETBSD_NR__lwp_setprivate 317
|
||||
#define TARGET_NETBSD_NR__lwp_kill 318
|
||||
#define TARGET_NETBSD_NR__lwp_detach 319
|
||||
#define TARGET_NETBSD_NR__lwp_park 320
|
||||
#define TARGET_NETBSD_NR__lwp_unpark 321
|
||||
#define TARGET_NETBSD_NR__lwp_unpark_all 322
|
||||
#define TARGET_NETBSD_NR__lwp_setname 323
|
||||
#define TARGET_NETBSD_NR__lwp_getname 324
|
||||
#define TARGET_NETBSD_NR__lwp_ctl 325
|
||||
#define TARGET_NETBSD_NR_sa_register 330
|
||||
#define TARGET_NETBSD_NR_sa_stacks 331
|
||||
#define TARGET_NETBSD_NR_sa_enable 332
|
||||
#define TARGET_NETBSD_NR_sa_setconcurrency 333
|
||||
#define TARGET_NETBSD_NR_sa_yield 334
|
||||
#define TARGET_NETBSD_NR_sa_preempt 335
|
||||
#define TARGET_NETBSD_NR_sa_unblockyield 336
|
||||
#define TARGET_NETBSD_NR___sigaction_sigtramp 340
|
||||
#define TARGET_NETBSD_NR_pmc_get_info 341
|
||||
#define TARGET_NETBSD_NR_pmc_control 342
|
||||
#define TARGET_NETBSD_NR_rasctl 343
|
||||
#define TARGET_NETBSD_NR_kqueue 344
|
||||
#define TARGET_NETBSD_NR_kevent 345
|
||||
#define TARGET_NETBSD_NR__sched_setparam 346
|
||||
#define TARGET_NETBSD_NR__sched_getparam 347
|
||||
#define TARGET_NETBSD_NR__sched_setaffinity 348
|
||||
#define TARGET_NETBSD_NR__sched_getaffinity 349
|
||||
#define TARGET_NETBSD_NR_sched_yield 350
|
||||
#define TARGET_NETBSD_NR_fsync_range 354
|
||||
#define TARGET_NETBSD_NR_uuidgen 355
|
||||
#define TARGET_NETBSD_NR_getvfsstat 356
|
||||
#define TARGET_NETBSD_NR_statvfs1 357
|
||||
#define TARGET_NETBSD_NR_fstatvfs1 358
|
||||
#define TARGET_NETBSD_NR_compat_30_fhstatvfs1 359
|
||||
#define TARGET_NETBSD_NR_extattrctl 360
|
||||
#define TARGET_NETBSD_NR_extattr_set_file 361
|
||||
#define TARGET_NETBSD_NR_extattr_get_file 362
|
||||
#define TARGET_NETBSD_NR_extattr_delete_file 363
|
||||
#define TARGET_NETBSD_NR_extattr_set_fd 364
|
||||
#define TARGET_NETBSD_NR_extattr_get_fd 365
|
||||
#define TARGET_NETBSD_NR_extattr_delete_fd 366
|
||||
#define TARGET_NETBSD_NR_extattr_set_link 367
|
||||
#define TARGET_NETBSD_NR_extattr_get_link 368
|
||||
#define TARGET_NETBSD_NR_extattr_delete_link 369
|
||||
#define TARGET_NETBSD_NR_extattr_list_fd 370
|
||||
#define TARGET_NETBSD_NR_extattr_list_file 371
|
||||
#define TARGET_NETBSD_NR_extattr_list_link 372
|
||||
#define TARGET_NETBSD_NR_pselect 373
|
||||
#define TARGET_NETBSD_NR_pollts 374
|
||||
#define TARGET_NETBSD_NR_setxattr 375
|
||||
#define TARGET_NETBSD_NR_lsetxattr 376
|
||||
#define TARGET_NETBSD_NR_fsetxattr 377
|
||||
#define TARGET_NETBSD_NR_getxattr 378
|
||||
#define TARGET_NETBSD_NR_lgetxattr 379
|
||||
#define TARGET_NETBSD_NR_fgetxattr 380
|
||||
#define TARGET_NETBSD_NR_listxattr 381
|
||||
#define TARGET_NETBSD_NR_llistxattr 382
|
||||
#define TARGET_NETBSD_NR_flistxattr 383
|
||||
#define TARGET_NETBSD_NR_removexattr 384
|
||||
#define TARGET_NETBSD_NR_lremovexattr 385
|
||||
#define TARGET_NETBSD_NR_fremovexattr 386
|
||||
#define TARGET_NETBSD_NR___stat30 387
|
||||
#define TARGET_NETBSD_NR___fstat30 388
|
||||
#define TARGET_NETBSD_NR___lstat30 389
|
||||
#define TARGET_NETBSD_NR___getdents30 390
|
||||
#define TARGET_NETBSD_NR_compat_30___fhstat30 392
|
||||
#define TARGET_NETBSD_NR___ntp_gettime30 393
|
||||
#define TARGET_NETBSD_NR___socket30 394
|
||||
#define TARGET_NETBSD_NR___getfh30 395
|
||||
#define TARGET_NETBSD_NR___fhopen40 396
|
||||
#define TARGET_NETBSD_NR___fhstatvfs140 397
|
||||
#define TARGET_NETBSD_NR___fhstat40 398
|
||||
#define TARGET_NETBSD_NR_aio_cancel 399
|
||||
#define TARGET_NETBSD_NR_aio_error 400
|
||||
#define TARGET_NETBSD_NR_aio_fsync 401
|
||||
#define TARGET_NETBSD_NR_aio_read 402
|
||||
#define TARGET_NETBSD_NR_aio_return 403
|
||||
#define TARGET_NETBSD_NR_aio_suspend 404
|
||||
#define TARGET_NETBSD_NR_aio_write 405
|
||||
#define TARGET_NETBSD_NR_lio_listio 406
|
||||
#define TARGET_NETBSD_NR___mount50 410
|
||||
#define TARGET_NETBSD_NR_mremap 411
|
||||
#define TARGET_NETBSD_NR_pset_create 412
|
||||
#define TARGET_NETBSD_NR_pset_destroy 413
|
||||
#define TARGET_NETBSD_NR_pset_assign 414
|
||||
#define TARGET_NETBSD_NR__pset_bind 415
|
||||
#define TARGET_NETBSD_NR___posix_fadvise50 416
|
||||
@@ -0,0 +1,187 @@
|
||||
{ TARGET_OPENBSD_NR___getcwd, "__getcwd", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR___semctl, "__semctl", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR___syscall, "__syscall", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR___sysctl, "__sysctl", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_accept, "accept", "%s(%d,%#x,%#x)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_access, "access", "%s(\"%s\",%#o)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_acct, "acct", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_adjfreq, "adjfreq", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_adjtime, "adjtime", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_bind, "bind", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_break, "break", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_chdir, "chdir", "%s(\"%s\")", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_chflags, "chflags", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_chmod, "chmod", "%s(\"%s\",%#o)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_chown, "chown", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_chroot, "chroot", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_clock_getres, "clock_getres", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_clock_gettime, "clock_gettime", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_clock_settime, "clock_settime", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_close, "close", "%s(%d)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_closefrom, "closefrom", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_connect, "connect", "%s(%d,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_dup, "dup", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_dup2, "dup2", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_execve, "execve", NULL, print_execve, NULL },
|
||||
{ TARGET_OPENBSD_NR_exit, "exit", "%s(%d)\n", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fchdir, "fchdir", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fchflags, "fchflags", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fchmod, "fchmod", "%s(%d,%#o)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fchown, "fchown", "%s(\"%s\",%d,%d)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fcntl, "fcntl", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fhopen, "fhopen", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fhstat, "fhstat", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fhstatfs, "fhstatfs", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_flock, "flock", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fork, "fork", "%s()", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fpathconf, "fpathconf", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fstat, "fstat", "%s(%d,%p)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fstatfs, "fstatfs", "%s(%d,%p)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_fsync, "fsync", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_ftruncate, "ftruncate", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_futimes, "futimes", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getdirentries, "getdirentries", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getegid, "getegid", "%s()", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_geteuid, "geteuid", "%s()", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getfh, "getfh", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getfsstat, "getfsstat", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getgid, "getgid", "%s()", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getgroups, "getgroups", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getitimer, "getitimer", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getlogin, "getlogin", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getpeereid, "getpeereid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getpeername, "getpeername", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getpgid, "getpgid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getpgrp, "getpgrp", "%s()", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getpid, "getpid", "%s()", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getppid, "getppid", "%s()", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getpriority, "getpriority", "%s(%#x,%#x)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getresgid, "getresgid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getresuid, "getresuid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getrlimit, "getrlimit", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getrusage, "getrusage", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getsid, "getsid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getsockname, "getsockname", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getsockopt, "getsockopt", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getthrid, "getthrid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_gettimeofday, "gettimeofday", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_getuid, "getuid", "%s()", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_ioctl, "ioctl", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_issetugid, "issetugid", "%s()", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_kevent, "kevent", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_kill, "kill", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_kqueue, "kqueue", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_ktrace, "ktrace", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_lchown, "lchown", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_lfs_bmapv, "lfs_bmapv", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_lfs_markv, "lfs_markv", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_lfs_segclean, "lfs_segclean", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_lfs_segwait, "lfs_segwait", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_link, "link", "%s(\"%s\",\"%s\")", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_listen, "listen", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_lseek, "lseek", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_lstat, "lstat", "%s(\"%s\",%p)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_madvise, "madvise", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_mincore, "mincore", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_minherit, "minherit", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_mkdir, "mkdir", "%s(\"%s\",%#o)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_mkfifo, "mkfifo", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_mknod, "mknod", "%s(\"%s\",%#o,%#x)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_mlock, "mlock", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_mlockall, "mlockall", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_mmap, "mmap", NULL, NULL, print_syscall_ret_addr },
|
||||
{ TARGET_OPENBSD_NR_mount, "mount", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_mprotect, "mprotect", "%s(%#x,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_mquery, "mquery", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_msgctl, "msgctl", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_msgget, "msgget", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_msgrcv, "msgrcv", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_msgsnd, "msgsnd", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_msync, "msync", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_munlock, "munlock", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_munlockall, "munlockall", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_munmap, "munmap", "%s(%p,%d)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_nanosleep, "nanosleep", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_nfssvc, "nfssvc", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_open, "open", "%s(\"%s\",%#x,%#o)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_opipe, "opipe", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_osigaltstack, "osigaltstack", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_pathconf, "pathconf", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_pipe, "pipe", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_poll, "poll", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_pread, "pread", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_preadv, "preadv", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_profil, "profil", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_ptrace, "ptrace", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_pwrite, "pwrite", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_pwritev, "pwritev", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_quotactl, "quotactl", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_read, "read", "%s(%d,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_readlink, "readlink", "%s(\"%s\",%p,%d)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_readv, "readv", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_reboot, "reboot", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_recvfrom, "recvfrom", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_recvmsg, "recvmsg", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_rename, "rename", "%s(\"%s\",\"%s\")", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_revoke, "revoke", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_rfork, "rfork", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_rmdir, "rmdir", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sbrk, "sbrk", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sched_yield, "sched_yield", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_select, "select", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_semget, "semget", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_semop, "semop", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sendmsg, "sendmsg", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sendto, "sendto", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setegid, "setegid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_seteuid, "seteuid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setgid, "setgid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setgroups, "setgroups", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setitimer, "setitimer", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setlogin, "setlogin", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setpgid, "setpgid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setpriority, "setpriority", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setregid, "setregid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setresgid, "setresgid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setresuid, "setresuid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setreuid, "setreuid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setrlimit, "setrlimit", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setsid, "setsid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setsockopt, "setsockopt", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_settimeofday, "settimeofday", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_setuid, "setuid", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_shmat, "shmat", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_shmctl, "shmctl", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_shmdt, "shmdt", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_shmget, "shmget", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_shutdown, "shutdown", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sigaction, "sigaction", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sigaltstack, "sigaltstack", "%s(%p,%p)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sigpending, "sigpending", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sigprocmask, "sigprocmask", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sigreturn, "sigreturn", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sigsuspend, "sigsuspend", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_socket, "socket", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_socketpair, "socketpair", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sstk, "sstk", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_stat, "stat", "%s(\"%s\",%p)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_statfs, "statfs", "%s(\"%s\",%p)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_swapctl, "swapctl", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_symlink, "symlink", "%s(\"%s\",\"%s\")", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sync, "sync", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_sysarch, "sysarch", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_syscall, "syscall", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_threxit, "threxit", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_thrsigdivert, "thrsigdivert", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_thrsleep, "thrsleep", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_thrwakeup, "thrwakeup", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_truncate, "truncate", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_umask, "umask", "%s(%#o)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_unlink, "unlink", "%s(\"%s\")", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_unmount, "unmount", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_utimes, "utimes", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_vfork, "vfork", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_wait4, "wait4", NULL, NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_write, "write", "%s(%d,%#x,%d)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_writev, "writev", "%s(%d,%p,%#x)", NULL, NULL },
|
||||
{ TARGET_OPENBSD_NR_xfspioctl, "xfspioctl", NULL, NULL, NULL },
|
||||
@@ -0,0 +1,195 @@
|
||||
/* $OpenBSD: syscall.h,v 1.101 2008/03/16 19:43:41 otto Exp $ */
|
||||
|
||||
/*
|
||||
* System call numbers.
|
||||
*
|
||||
* created from; OpenBSD: syscalls.master,v 1.90 2008/03/16 19:42:57 otto Exp
|
||||
*/
|
||||
|
||||
#define TARGET_OPENBSD_NR_syscall 0
|
||||
#define TARGET_OPENBSD_NR_exit 1
|
||||
#define TARGET_OPENBSD_NR_fork 2
|
||||
#define TARGET_OPENBSD_NR_read 3
|
||||
#define TARGET_OPENBSD_NR_write 4
|
||||
#define TARGET_OPENBSD_NR_open 5
|
||||
#define TARGET_OPENBSD_NR_close 6
|
||||
#define TARGET_OPENBSD_NR_wait4 7
|
||||
#define TARGET_OPENBSD_NR_link 9
|
||||
#define TARGET_OPENBSD_NR_unlink 10
|
||||
#define TARGET_OPENBSD_NR_chdir 12
|
||||
#define TARGET_OPENBSD_NR_fchdir 13
|
||||
#define TARGET_OPENBSD_NR_mknod 14
|
||||
#define TARGET_OPENBSD_NR_chmod 15
|
||||
#define TARGET_OPENBSD_NR_chown 16
|
||||
#define TARGET_OPENBSD_NR_break 17
|
||||
#define TARGET_OPENBSD_NR_getpid 20
|
||||
#define TARGET_OPENBSD_NR_mount 21
|
||||
#define TARGET_OPENBSD_NR_unmount 22
|
||||
#define TARGET_OPENBSD_NR_setuid 23
|
||||
#define TARGET_OPENBSD_NR_getuid 24
|
||||
#define TARGET_OPENBSD_NR_geteuid 25
|
||||
#define TARGET_OPENBSD_NR_ptrace 26
|
||||
#define TARGET_OPENBSD_NR_recvmsg 27
|
||||
#define TARGET_OPENBSD_NR_sendmsg 28
|
||||
#define TARGET_OPENBSD_NR_recvfrom 29
|
||||
#define TARGET_OPENBSD_NR_accept 30
|
||||
#define TARGET_OPENBSD_NR_getpeername 31
|
||||
#define TARGET_OPENBSD_NR_getsockname 32
|
||||
#define TARGET_OPENBSD_NR_access 33
|
||||
#define TARGET_OPENBSD_NR_chflags 34
|
||||
#define TARGET_OPENBSD_NR_fchflags 35
|
||||
#define TARGET_OPENBSD_NR_sync 36
|
||||
#define TARGET_OPENBSD_NR_kill 37
|
||||
#define TARGET_OPENBSD_NR_getppid 39
|
||||
#define TARGET_OPENBSD_NR_dup 41
|
||||
#define TARGET_OPENBSD_NR_opipe 42
|
||||
#define TARGET_OPENBSD_NR_getegid 43
|
||||
#define TARGET_OPENBSD_NR_profil 44
|
||||
#define TARGET_OPENBSD_NR_ktrace 45
|
||||
#define TARGET_OPENBSD_NR_sigaction 46
|
||||
#define TARGET_OPENBSD_NR_getgid 47
|
||||
#define TARGET_OPENBSD_NR_sigprocmask 48
|
||||
#define TARGET_OPENBSD_NR_getlogin 49
|
||||
#define TARGET_OPENBSD_NR_setlogin 50
|
||||
#define TARGET_OPENBSD_NR_acct 51
|
||||
#define TARGET_OPENBSD_NR_sigpending 52
|
||||
#define TARGET_OPENBSD_NR_osigaltstack 53
|
||||
#define TARGET_OPENBSD_NR_ioctl 54
|
||||
#define TARGET_OPENBSD_NR_reboot 55
|
||||
#define TARGET_OPENBSD_NR_revoke 56
|
||||
#define TARGET_OPENBSD_NR_symlink 57
|
||||
#define TARGET_OPENBSD_NR_readlink 58
|
||||
#define TARGET_OPENBSD_NR_execve 59
|
||||
#define TARGET_OPENBSD_NR_umask 60
|
||||
#define TARGET_OPENBSD_NR_chroot 61
|
||||
#define TARGET_OPENBSD_NR_vfork 66
|
||||
#define TARGET_OPENBSD_NR_sbrk 69
|
||||
#define TARGET_OPENBSD_NR_sstk 70
|
||||
#define TARGET_OPENBSD_NR_munmap 73
|
||||
#define TARGET_OPENBSD_NR_mprotect 74
|
||||
#define TARGET_OPENBSD_NR_madvise 75
|
||||
#define TARGET_OPENBSD_NR_mincore 78
|
||||
#define TARGET_OPENBSD_NR_getgroups 79
|
||||
#define TARGET_OPENBSD_NR_setgroups 80
|
||||
#define TARGET_OPENBSD_NR_getpgrp 81
|
||||
#define TARGET_OPENBSD_NR_setpgid 82
|
||||
#define TARGET_OPENBSD_NR_setitimer 83
|
||||
#define TARGET_OPENBSD_NR_getitimer 86
|
||||
#define TARGET_OPENBSD_NR_dup2 90
|
||||
#define TARGET_OPENBSD_NR_fcntl 92
|
||||
#define TARGET_OPENBSD_NR_select 93
|
||||
#define TARGET_OPENBSD_NR_fsync 95
|
||||
#define TARGET_OPENBSD_NR_setpriority 96
|
||||
#define TARGET_OPENBSD_NR_socket 97
|
||||
#define TARGET_OPENBSD_NR_connect 98
|
||||
#define TARGET_OPENBSD_NR_getpriority 100
|
||||
#define TARGET_OPENBSD_NR_sigreturn 103
|
||||
#define TARGET_OPENBSD_NR_bind 104
|
||||
#define TARGET_OPENBSD_NR_setsockopt 105
|
||||
#define TARGET_OPENBSD_NR_listen 106
|
||||
#define TARGET_OPENBSD_NR_sigsuspend 111
|
||||
#define TARGET_OPENBSD_NR_gettimeofday 116
|
||||
#define TARGET_OPENBSD_NR_getrusage 117
|
||||
#define TARGET_OPENBSD_NR_getsockopt 118
|
||||
#define TARGET_OPENBSD_NR_readv 120
|
||||
#define TARGET_OPENBSD_NR_writev 121
|
||||
#define TARGET_OPENBSD_NR_settimeofday 122
|
||||
#define TARGET_OPENBSD_NR_fchown 123
|
||||
#define TARGET_OPENBSD_NR_fchmod 124
|
||||
#define TARGET_OPENBSD_NR_setreuid 126
|
||||
#define TARGET_OPENBSD_NR_setregid 127
|
||||
#define TARGET_OPENBSD_NR_rename 128
|
||||
#define TARGET_OPENBSD_NR_flock 131
|
||||
#define TARGET_OPENBSD_NR_mkfifo 132
|
||||
#define TARGET_OPENBSD_NR_sendto 133
|
||||
#define TARGET_OPENBSD_NR_shutdown 134
|
||||
#define TARGET_OPENBSD_NR_socketpair 135
|
||||
#define TARGET_OPENBSD_NR_mkdir 136
|
||||
#define TARGET_OPENBSD_NR_rmdir 137
|
||||
#define TARGET_OPENBSD_NR_utimes 138
|
||||
#define TARGET_OPENBSD_NR_adjtime 140
|
||||
#define TARGET_OPENBSD_NR_setsid 147
|
||||
#define TARGET_OPENBSD_NR_quotactl 148
|
||||
#define TARGET_OPENBSD_NR_nfssvc 155
|
||||
#define TARGET_OPENBSD_NR_getfh 161
|
||||
#define TARGET_OPENBSD_NR_sysarch 165
|
||||
#define TARGET_OPENBSD_NR_pread 173
|
||||
#define TARGET_OPENBSD_NR_pwrite 174
|
||||
#define TARGET_OPENBSD_NR_setgid 181
|
||||
#define TARGET_OPENBSD_NR_setegid 182
|
||||
#define TARGET_OPENBSD_NR_seteuid 183
|
||||
#define TARGET_OPENBSD_NR_lfs_bmapv 184
|
||||
#define TARGET_OPENBSD_NR_lfs_markv 185
|
||||
#define TARGET_OPENBSD_NR_lfs_segclean 186
|
||||
#define TARGET_OPENBSD_NR_lfs_segwait 187
|
||||
#define TARGET_OPENBSD_NR_pathconf 191
|
||||
#define TARGET_OPENBSD_NR_fpathconf 192
|
||||
#define TARGET_OPENBSD_NR_swapctl 193
|
||||
#define TARGET_OPENBSD_NR_getrlimit 194
|
||||
#define TARGET_OPENBSD_NR_setrlimit 195
|
||||
#define TARGET_OPENBSD_NR_getdirentries 196
|
||||
#define TARGET_OPENBSD_NR_mmap 197
|
||||
#define TARGET_OPENBSD_NR___syscall 198
|
||||
#define TARGET_OPENBSD_NR_lseek 199
|
||||
#define TARGET_OPENBSD_NR_truncate 200
|
||||
#define TARGET_OPENBSD_NR_ftruncate 201
|
||||
#define TARGET_OPENBSD_NR___sysctl 202
|
||||
#define TARGET_OPENBSD_NR_mlock 203
|
||||
#define TARGET_OPENBSD_NR_munlock 204
|
||||
#define TARGET_OPENBSD_NR_futimes 206
|
||||
#define TARGET_OPENBSD_NR_getpgid 207
|
||||
#define TARGET_OPENBSD_NR_xfspioctl 208
|
||||
#define TARGET_OPENBSD_NR_semget 221
|
||||
#define TARGET_OPENBSD_NR_msgget 225
|
||||
#define TARGET_OPENBSD_NR_msgsnd 226
|
||||
#define TARGET_OPENBSD_NR_msgrcv 227
|
||||
#define TARGET_OPENBSD_NR_shmat 228
|
||||
#define TARGET_OPENBSD_NR_shmdt 230
|
||||
#define TARGET_OPENBSD_NR_clock_gettime 232
|
||||
#define TARGET_OPENBSD_NR_clock_settime 233
|
||||
#define TARGET_OPENBSD_NR_clock_getres 234
|
||||
#define TARGET_OPENBSD_NR_nanosleep 240
|
||||
#define TARGET_OPENBSD_NR_minherit 250
|
||||
#define TARGET_OPENBSD_NR_rfork 251
|
||||
#define TARGET_OPENBSD_NR_poll 252
|
||||
#define TARGET_OPENBSD_NR_issetugid 253
|
||||
#define TARGET_OPENBSD_NR_lchown 254
|
||||
#define TARGET_OPENBSD_NR_getsid 255
|
||||
#define TARGET_OPENBSD_NR_msync 256
|
||||
#define TARGET_OPENBSD_NR_pipe 263
|
||||
#define TARGET_OPENBSD_NR_fhopen 264
|
||||
#define TARGET_OPENBSD_NR_preadv 267
|
||||
#define TARGET_OPENBSD_NR_pwritev 268
|
||||
#define TARGET_OPENBSD_NR_kqueue 269
|
||||
#define TARGET_OPENBSD_NR_kevent 270
|
||||
#define TARGET_OPENBSD_NR_mlockall 271
|
||||
#define TARGET_OPENBSD_NR_munlockall 272
|
||||
#define TARGET_OPENBSD_NR_getpeereid 273
|
||||
#define TARGET_OPENBSD_NR_getresuid 281
|
||||
#define TARGET_OPENBSD_NR_setresuid 282
|
||||
#define TARGET_OPENBSD_NR_getresgid 283
|
||||
#define TARGET_OPENBSD_NR_setresgid 284
|
||||
#define TARGET_OPENBSD_NR_mquery 286
|
||||
#define TARGET_OPENBSD_NR_closefrom 287
|
||||
#define TARGET_OPENBSD_NR_sigaltstack 288
|
||||
#define TARGET_OPENBSD_NR_shmget 289
|
||||
#define TARGET_OPENBSD_NR_semop 290
|
||||
#define TARGET_OPENBSD_NR_stat 291
|
||||
#define TARGET_OPENBSD_NR_fstat 292
|
||||
#define TARGET_OPENBSD_NR_lstat 293
|
||||
#define TARGET_OPENBSD_NR_fhstat 294
|
||||
#define TARGET_OPENBSD_NR___semctl 295
|
||||
#define TARGET_OPENBSD_NR_shmctl 296
|
||||
#define TARGET_OPENBSD_NR_msgctl 297
|
||||
#define TARGET_OPENBSD_NR_sched_yield 298
|
||||
#define TARGET_OPENBSD_NR_getthrid 299
|
||||
#define TARGET_OPENBSD_NR_thrsleep 300
|
||||
#define TARGET_OPENBSD_NR_thrwakeup 301
|
||||
#define TARGET_OPENBSD_NR_threxit 302
|
||||
#define TARGET_OPENBSD_NR_thrsigdivert 303
|
||||
#define TARGET_OPENBSD_NR___getcwd 304
|
||||
#define TARGET_OPENBSD_NR_adjfreq 305
|
||||
#define TARGET_OPENBSD_NR_getfsstat 306
|
||||
#define TARGET_OPENBSD_NR_statfs 307
|
||||
#define TARGET_OPENBSD_NR_fstatfs 308
|
||||
#define TARGET_OPENBSD_NR_fhstatfs 309
|
||||
+163
@@ -0,0 +1,163 @@
|
||||
/* Code to mangle pathnames into those matching a given prefix.
|
||||
eg. open("/lib/foo.so") => open("/usr/gnemul/i386-linux/lib/foo.so");
|
||||
|
||||
The assumption is that this area does not change.
|
||||
*/
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <dirent.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include "qemu.h"
|
||||
#include "qemu-common.h"
|
||||
|
||||
struct pathelem
|
||||
{
|
||||
/* Name of this, eg. lib */
|
||||
char *name;
|
||||
/* Full path name, eg. /usr/gnemul/x86-linux/lib. */
|
||||
char *pathname;
|
||||
struct pathelem *parent;
|
||||
/* Children */
|
||||
unsigned int num_entries;
|
||||
struct pathelem *entries[0];
|
||||
};
|
||||
|
||||
static struct pathelem *base;
|
||||
|
||||
/* First N chars of S1 match S2, and S2 is N chars long. */
|
||||
static int strneq(const char *s1, unsigned int n, const char *s2)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
if (s1[i] != s2[i])
|
||||
return 0;
|
||||
return s2[i] == 0;
|
||||
}
|
||||
|
||||
static struct pathelem *add_entry(struct pathelem *root, const char *name);
|
||||
|
||||
static struct pathelem *new_entry(const char *root,
|
||||
struct pathelem *parent,
|
||||
const char *name)
|
||||
{
|
||||
struct pathelem *new = malloc(sizeof(*new));
|
||||
new->name = strdup(name);
|
||||
asprintf(&new->pathname, "%s/%s", root, name);
|
||||
new->num_entries = 0;
|
||||
return new;
|
||||
}
|
||||
|
||||
#define streq(a,b) (strcmp((a), (b)) == 0)
|
||||
|
||||
static struct pathelem *add_dir_maybe(struct pathelem *path)
|
||||
{
|
||||
DIR *dir;
|
||||
|
||||
if ((dir = opendir(path->pathname)) != NULL) {
|
||||
struct dirent *dirent;
|
||||
|
||||
while ((dirent = readdir(dir)) != NULL) {
|
||||
if (!streq(dirent->d_name,".") && !streq(dirent->d_name,"..")){
|
||||
path = add_entry(path, dirent->d_name);
|
||||
}
|
||||
}
|
||||
closedir(dir);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
static struct pathelem *add_entry(struct pathelem *root, const char *name)
|
||||
{
|
||||
root->num_entries++;
|
||||
|
||||
root = realloc(root, sizeof(*root)
|
||||
+ sizeof(root->entries[0])*root->num_entries);
|
||||
|
||||
root->entries[root->num_entries-1] = new_entry(root->pathname, root, name);
|
||||
root->entries[root->num_entries-1]
|
||||
= add_dir_maybe(root->entries[root->num_entries-1]);
|
||||
return root;
|
||||
}
|
||||
|
||||
/* This needs to be done after tree is stabilized (ie. no more reallocs!). */
|
||||
static void set_parents(struct pathelem *child, struct pathelem *parent)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
child->parent = parent;
|
||||
for (i = 0; i < child->num_entries; i++)
|
||||
set_parents(child->entries[i], child);
|
||||
}
|
||||
|
||||
/* FIXME: Doesn't handle DIR/.. where DIR is not in emulated dir. */
|
||||
static const char *
|
||||
follow_path(const struct pathelem *cursor, const char *name)
|
||||
{
|
||||
unsigned int i, namelen;
|
||||
|
||||
name += strspn(name, "/");
|
||||
namelen = strcspn(name, "/");
|
||||
|
||||
if (namelen == 0)
|
||||
return cursor->pathname;
|
||||
|
||||
if (strneq(name, namelen, ".."))
|
||||
return follow_path(cursor->parent, name + namelen);
|
||||
|
||||
if (strneq(name, namelen, "."))
|
||||
return follow_path(cursor, name + namelen);
|
||||
|
||||
for (i = 0; i < cursor->num_entries; i++)
|
||||
if (strneq(name, namelen, cursor->entries[i]->name))
|
||||
return follow_path(cursor->entries[i], name + namelen);
|
||||
|
||||
/* Not found */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void init_paths(const char *prefix)
|
||||
{
|
||||
char pref_buf[PATH_MAX];
|
||||
|
||||
if (prefix[0] == '\0' ||
|
||||
!strcmp(prefix, "/"))
|
||||
return;
|
||||
|
||||
if (prefix[0] != '/') {
|
||||
char *cwd = getcwd(NULL, 0);
|
||||
size_t pref_buf_len = sizeof(pref_buf);
|
||||
|
||||
if (!cwd)
|
||||
abort();
|
||||
pstrcpy(pref_buf, sizeof(pref_buf), cwd);
|
||||
pstrcat(pref_buf, pref_buf_len, "/");
|
||||
pstrcat(pref_buf, pref_buf_len, prefix);
|
||||
free(cwd);
|
||||
} else
|
||||
pstrcpy(pref_buf, sizeof(pref_buf), prefix + 1);
|
||||
|
||||
base = new_entry("", NULL, pref_buf);
|
||||
base = add_dir_maybe(base);
|
||||
if (base->num_entries == 0) {
|
||||
free (base);
|
||||
base = NULL;
|
||||
} else {
|
||||
set_parents(base, base);
|
||||
}
|
||||
}
|
||||
|
||||
/* Look for path in emulation dir, otherwise return name. */
|
||||
const char *path(const char *name)
|
||||
{
|
||||
/* Only do absolute paths: quick and dirty, but should mostly be OK.
|
||||
Could do relative by tracking cwd. */
|
||||
if (!base || name[0] != '/')
|
||||
return name;
|
||||
|
||||
return follow_path(base, name) ?: name;
|
||||
}
|
||||
+405
@@ -0,0 +1,405 @@
|
||||
#ifndef QEMU_H
|
||||
#define QEMU_H
|
||||
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
#undef DEBUG_REMAP
|
||||
#ifdef DEBUG_REMAP
|
||||
#include <stdlib.h>
|
||||
#endif /* DEBUG_REMAP */
|
||||
|
||||
#ifdef TARGET_ABI32
|
||||
typedef uint32_t abi_ulong;
|
||||
typedef int32_t abi_long;
|
||||
#define TARGET_ABI_FMT_lx "%08x"
|
||||
#define TARGET_ABI_FMT_ld "%d"
|
||||
#define TARGET_ABI_FMT_lu "%u"
|
||||
#define TARGET_ABI_BITS 32
|
||||
#else
|
||||
typedef target_ulong abi_ulong;
|
||||
typedef target_long abi_long;
|
||||
#define TARGET_ABI_FMT_lx TARGET_FMT_lx
|
||||
#define TARGET_ABI_FMT_ld TARGET_FMT_ld
|
||||
#define TARGET_ABI_FMT_lu TARGET_FMT_lu
|
||||
#define TARGET_ABI_BITS TARGET_LONG_BITS
|
||||
/* for consistency, define ABI32 too */
|
||||
#if TARGET_ABI_BITS == 32
|
||||
#define TARGET_ABI32 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
enum BSDType {
|
||||
target_freebsd,
|
||||
target_netbsd,
|
||||
target_openbsd,
|
||||
};
|
||||
|
||||
#include "syscall_defs.h"
|
||||
#include "syscall.h"
|
||||
#include "target_signal.h"
|
||||
#include "gdbstub.h"
|
||||
|
||||
#if defined(USE_NPTL)
|
||||
#define THREAD __thread
|
||||
#else
|
||||
#define THREAD
|
||||
#endif
|
||||
|
||||
/* This struct is used to hold certain information about the image.
|
||||
* Basically, it replicates in user space what would be certain
|
||||
* task_struct fields in the kernel
|
||||
*/
|
||||
struct image_info {
|
||||
abi_ulong load_addr;
|
||||
abi_ulong start_code;
|
||||
abi_ulong end_code;
|
||||
abi_ulong start_data;
|
||||
abi_ulong end_data;
|
||||
abi_ulong start_brk;
|
||||
abi_ulong brk;
|
||||
abi_ulong start_mmap;
|
||||
abi_ulong mmap;
|
||||
abi_ulong rss;
|
||||
abi_ulong start_stack;
|
||||
abi_ulong entry;
|
||||
abi_ulong code_offset;
|
||||
abi_ulong data_offset;
|
||||
char **host_argv;
|
||||
int personality;
|
||||
};
|
||||
|
||||
#define MAX_SIGQUEUE_SIZE 1024
|
||||
|
||||
struct sigqueue {
|
||||
struct sigqueue *next;
|
||||
//target_siginfo_t info;
|
||||
};
|
||||
|
||||
struct emulated_sigtable {
|
||||
int pending; /* true if signal is pending */
|
||||
struct sigqueue *first;
|
||||
struct sigqueue info; /* in order to always have memory for the
|
||||
first signal, we put it here */
|
||||
};
|
||||
|
||||
/* NOTE: we force a big alignment so that the stack stored after is
|
||||
aligned too */
|
||||
typedef struct TaskState {
|
||||
struct TaskState *next;
|
||||
int used; /* non zero if used */
|
||||
struct image_info *info;
|
||||
|
||||
struct emulated_sigtable sigtab[TARGET_NSIG];
|
||||
struct sigqueue sigqueue_table[MAX_SIGQUEUE_SIZE]; /* siginfo queue */
|
||||
struct sigqueue *first_free; /* first free siginfo queue entry */
|
||||
int signal_pending; /* non zero if a signal may be pending */
|
||||
|
||||
uint8_t stack[0];
|
||||
} __attribute__((aligned(16))) TaskState;
|
||||
|
||||
void init_task_state(TaskState *ts);
|
||||
extern const char *qemu_uname_release;
|
||||
|
||||
/* ??? See if we can avoid exposing so much of the loader internals. */
|
||||
/*
|
||||
* MAX_ARG_PAGES defines the number of pages allocated for arguments
|
||||
* and envelope for the new program. 32 should suffice, this gives
|
||||
* a maximum env+arg of 128kB w/4KB pages!
|
||||
*/
|
||||
#define MAX_ARG_PAGES 32
|
||||
|
||||
/*
|
||||
* This structure is used to hold the arguments that are
|
||||
* used when loading binaries.
|
||||
*/
|
||||
struct linux_binprm {
|
||||
char buf[128];
|
||||
void *page[MAX_ARG_PAGES];
|
||||
abi_ulong p;
|
||||
int fd;
|
||||
int e_uid, e_gid;
|
||||
int argc, envc;
|
||||
char **argv;
|
||||
char **envp;
|
||||
char * filename; /* Name of binary */
|
||||
};
|
||||
|
||||
void do_init_thread(struct target_pt_regs *regs, struct image_info *infop);
|
||||
abi_ulong loader_build_argptr(int envc, int argc, abi_ulong sp,
|
||||
abi_ulong stringp, int push_ptr);
|
||||
int loader_exec(const char * filename, char ** argv, char ** envp,
|
||||
struct target_pt_regs * regs, struct image_info *infop);
|
||||
|
||||
int load_elf_binary(struct linux_binprm * bprm, struct target_pt_regs * regs,
|
||||
struct image_info * info);
|
||||
int load_flt_binary(struct linux_binprm * bprm, struct target_pt_regs * regs,
|
||||
struct image_info * info);
|
||||
|
||||
abi_long memcpy_to_target(abi_ulong dest, const void *src,
|
||||
unsigned long len);
|
||||
void target_set_brk(abi_ulong new_brk);
|
||||
abi_long do_brk(abi_ulong new_brk);
|
||||
void syscall_init(void);
|
||||
abi_long do_freebsd_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5, abi_long arg6);
|
||||
abi_long do_netbsd_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5, abi_long arg6);
|
||||
abi_long do_openbsd_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5, abi_long arg6);
|
||||
void gemu_log(const char *fmt, ...) __attribute__((format(printf,1,2)));
|
||||
extern THREAD CPUState *thread_env;
|
||||
void cpu_loop(CPUState *env, enum BSDType bsd_type);
|
||||
void init_paths(const char *prefix);
|
||||
const char *path(const char *pathname);
|
||||
char *target_strerror(int err);
|
||||
int get_osversion(void);
|
||||
void fork_start(void);
|
||||
void fork_end(int child);
|
||||
|
||||
#include "qemu-log.h"
|
||||
|
||||
/* strace.c */
|
||||
void
|
||||
print_freebsd_syscall(int num,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6);
|
||||
void print_freebsd_syscall_ret(int num, abi_long ret);
|
||||
void
|
||||
print_netbsd_syscall(int num,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6);
|
||||
void print_netbsd_syscall_ret(int num, abi_long ret);
|
||||
void
|
||||
print_openbsd_syscall(int num,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6);
|
||||
void print_openbsd_syscall_ret(int num, abi_long ret);
|
||||
extern int do_strace;
|
||||
|
||||
/* signal.c */
|
||||
void process_pending_signals(CPUState *cpu_env);
|
||||
void signal_init(void);
|
||||
//int queue_signal(CPUState *env, int sig, target_siginfo_t *info);
|
||||
//void host_to_target_siginfo(target_siginfo_t *tinfo, const siginfo_t *info);
|
||||
//void target_to_host_siginfo(siginfo_t *info, const target_siginfo_t *tinfo);
|
||||
long do_sigreturn(CPUState *env);
|
||||
long do_rt_sigreturn(CPUState *env);
|
||||
abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, abi_ulong sp);
|
||||
|
||||
/* mmap.c */
|
||||
int target_mprotect(abi_ulong start, abi_ulong len, int prot);
|
||||
abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
|
||||
int flags, int fd, abi_ulong offset);
|
||||
int target_munmap(abi_ulong start, abi_ulong len);
|
||||
abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
|
||||
abi_ulong new_size, unsigned long flags,
|
||||
abi_ulong new_addr);
|
||||
int target_msync(abi_ulong start, abi_ulong len, int flags);
|
||||
extern unsigned long last_brk;
|
||||
void mmap_lock(void);
|
||||
void mmap_unlock(void);
|
||||
#if defined(USE_NPTL)
|
||||
void mmap_fork_start(void);
|
||||
void mmap_fork_end(int child);
|
||||
#endif
|
||||
|
||||
/* user access */
|
||||
|
||||
#define VERIFY_READ 0
|
||||
#define VERIFY_WRITE 1 /* implies read access */
|
||||
|
||||
static inline int access_ok(int type, abi_ulong addr, abi_ulong size)
|
||||
{
|
||||
return page_check_range((target_ulong)addr, size,
|
||||
(type == VERIFY_READ) ? PAGE_READ : (PAGE_READ | PAGE_WRITE)) == 0;
|
||||
}
|
||||
|
||||
/* NOTE __get_user and __put_user use host pointers and don't check access. */
|
||||
/* These are usually used to access struct data members once the
|
||||
* struct has been locked - usually with lock_user_struct().
|
||||
*/
|
||||
#define __put_user(x, hptr)\
|
||||
({\
|
||||
int size = sizeof(*hptr);\
|
||||
switch(size) {\
|
||||
case 1:\
|
||||
*(uint8_t *)(hptr) = (uint8_t)(typeof(*hptr))(x);\
|
||||
break;\
|
||||
case 2:\
|
||||
*(uint16_t *)(hptr) = tswap16((typeof(*hptr))(x));\
|
||||
break;\
|
||||
case 4:\
|
||||
*(uint32_t *)(hptr) = tswap32((typeof(*hptr))(x));\
|
||||
break;\
|
||||
case 8:\
|
||||
*(uint64_t *)(hptr) = tswap64((typeof(*hptr))(x));\
|
||||
break;\
|
||||
default:\
|
||||
abort();\
|
||||
}\
|
||||
0;\
|
||||
})
|
||||
|
||||
#define __get_user(x, hptr) \
|
||||
({\
|
||||
int size = sizeof(*hptr);\
|
||||
switch(size) {\
|
||||
case 1:\
|
||||
x = (typeof(*hptr))*(uint8_t *)(hptr);\
|
||||
break;\
|
||||
case 2:\
|
||||
x = (typeof(*hptr))tswap16(*(uint16_t *)(hptr));\
|
||||
break;\
|
||||
case 4:\
|
||||
x = (typeof(*hptr))tswap32(*(uint32_t *)(hptr));\
|
||||
break;\
|
||||
case 8:\
|
||||
x = (typeof(*hptr))tswap64(*(uint64_t *)(hptr));\
|
||||
break;\
|
||||
default:\
|
||||
/* avoid warning */\
|
||||
x = 0;\
|
||||
abort();\
|
||||
}\
|
||||
0;\
|
||||
})
|
||||
|
||||
/* put_user()/get_user() take a guest address and check access */
|
||||
/* These are usually used to access an atomic data type, such as an int,
|
||||
* that has been passed by address. These internally perform locking
|
||||
* and unlocking on the data type.
|
||||
*/
|
||||
#define put_user(x, gaddr, target_type) \
|
||||
({ \
|
||||
abi_ulong __gaddr = (gaddr); \
|
||||
target_type *__hptr; \
|
||||
abi_long __ret; \
|
||||
if ((__hptr = lock_user(VERIFY_WRITE, __gaddr, sizeof(target_type), 0))) { \
|
||||
__ret = __put_user((x), __hptr); \
|
||||
unlock_user(__hptr, __gaddr, sizeof(target_type)); \
|
||||
} else \
|
||||
__ret = -TARGET_EFAULT; \
|
||||
__ret; \
|
||||
})
|
||||
|
||||
#define get_user(x, gaddr, target_type) \
|
||||
({ \
|
||||
abi_ulong __gaddr = (gaddr); \
|
||||
target_type *__hptr; \
|
||||
abi_long __ret; \
|
||||
if ((__hptr = lock_user(VERIFY_READ, __gaddr, sizeof(target_type), 1))) { \
|
||||
__ret = __get_user((x), __hptr); \
|
||||
unlock_user(__hptr, __gaddr, 0); \
|
||||
} else { \
|
||||
/* avoid warning */ \
|
||||
(x) = 0; \
|
||||
__ret = -TARGET_EFAULT; \
|
||||
} \
|
||||
__ret; \
|
||||
})
|
||||
|
||||
#define put_user_ual(x, gaddr) put_user((x), (gaddr), abi_ulong)
|
||||
#define put_user_sal(x, gaddr) put_user((x), (gaddr), abi_long)
|
||||
#define put_user_u64(x, gaddr) put_user((x), (gaddr), uint64_t)
|
||||
#define put_user_s64(x, gaddr) put_user((x), (gaddr), int64_t)
|
||||
#define put_user_u32(x, gaddr) put_user((x), (gaddr), uint32_t)
|
||||
#define put_user_s32(x, gaddr) put_user((x), (gaddr), int32_t)
|
||||
#define put_user_u16(x, gaddr) put_user((x), (gaddr), uint16_t)
|
||||
#define put_user_s16(x, gaddr) put_user((x), (gaddr), int16_t)
|
||||
#define put_user_u8(x, gaddr) put_user((x), (gaddr), uint8_t)
|
||||
#define put_user_s8(x, gaddr) put_user((x), (gaddr), int8_t)
|
||||
|
||||
#define get_user_ual(x, gaddr) get_user((x), (gaddr), abi_ulong)
|
||||
#define get_user_sal(x, gaddr) get_user((x), (gaddr), abi_long)
|
||||
#define get_user_u64(x, gaddr) get_user((x), (gaddr), uint64_t)
|
||||
#define get_user_s64(x, gaddr) get_user((x), (gaddr), int64_t)
|
||||
#define get_user_u32(x, gaddr) get_user((x), (gaddr), uint32_t)
|
||||
#define get_user_s32(x, gaddr) get_user((x), (gaddr), int32_t)
|
||||
#define get_user_u16(x, gaddr) get_user((x), (gaddr), uint16_t)
|
||||
#define get_user_s16(x, gaddr) get_user((x), (gaddr), int16_t)
|
||||
#define get_user_u8(x, gaddr) get_user((x), (gaddr), uint8_t)
|
||||
#define get_user_s8(x, gaddr) get_user((x), (gaddr), int8_t)
|
||||
|
||||
/* copy_from_user() and copy_to_user() are usually used to copy data
|
||||
* buffers between the target and host. These internally perform
|
||||
* locking/unlocking of the memory.
|
||||
*/
|
||||
abi_long copy_from_user(void *hptr, abi_ulong gaddr, size_t len);
|
||||
abi_long copy_to_user(abi_ulong gaddr, void *hptr, size_t len);
|
||||
|
||||
/* Functions for accessing guest memory. The tget and tput functions
|
||||
read/write single values, byteswapping as neccessary. The lock_user
|
||||
gets a pointer to a contiguous area of guest memory, but does not perform
|
||||
and byteswapping. lock_user may return either a pointer to the guest
|
||||
memory, or a temporary buffer. */
|
||||
|
||||
/* Lock an area of guest memory into the host. If copy is true then the
|
||||
host area will have the same contents as the guest. */
|
||||
static inline void *lock_user(int type, abi_ulong guest_addr, long len, int copy)
|
||||
{
|
||||
if (!access_ok(type, guest_addr, len))
|
||||
return NULL;
|
||||
#ifdef DEBUG_REMAP
|
||||
{
|
||||
void *addr;
|
||||
addr = malloc(len);
|
||||
if (copy)
|
||||
memcpy(addr, g2h(guest_addr), len);
|
||||
else
|
||||
memset(addr, 0, len);
|
||||
return addr;
|
||||
}
|
||||
#else
|
||||
return g2h(guest_addr);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Unlock an area of guest memory. The first LEN bytes must be
|
||||
flushed back to guest memory. host_ptr = NULL is explicitly
|
||||
allowed and does nothing. */
|
||||
static inline void unlock_user(void *host_ptr, abi_ulong guest_addr,
|
||||
long len)
|
||||
{
|
||||
|
||||
#ifdef DEBUG_REMAP
|
||||
if (!host_ptr)
|
||||
return;
|
||||
if (host_ptr == g2h(guest_addr))
|
||||
return;
|
||||
if (len > 0)
|
||||
memcpy(g2h(guest_addr), host_ptr, len);
|
||||
free(host_ptr);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Return the length of a string in target memory or -TARGET_EFAULT if
|
||||
access error. */
|
||||
abi_long target_strlen(abi_ulong gaddr);
|
||||
|
||||
/* Like lock_user but for null terminated strings. */
|
||||
static inline void *lock_user_string(abi_ulong guest_addr)
|
||||
{
|
||||
abi_long len;
|
||||
len = target_strlen(guest_addr);
|
||||
if (len < 0)
|
||||
return NULL;
|
||||
return lock_user(VERIFY_READ, guest_addr, (long)(len + 1), 1);
|
||||
}
|
||||
|
||||
/* Helper macros for locking/ulocking a target struct. */
|
||||
#define lock_user_struct(type, host_ptr, guest_addr, copy) \
|
||||
(host_ptr = lock_user(type, guest_addr, sizeof(*host_ptr), copy))
|
||||
#define unlock_user_struct(host_ptr, guest_addr, copy) \
|
||||
unlock_user(host_ptr, guest_addr, (copy) ? sizeof(*host_ptr) : 0)
|
||||
|
||||
#if defined(USE_NPTL)
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
|
||||
#endif /* QEMU_H */
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Emulation of BSD signals
|
||||
*
|
||||
* Copyright (c) 2003 - 2008 Fabrice Bellard
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
|
||||
//#define DEBUG_SIGNAL
|
||||
|
||||
void signal_init(void)
|
||||
{
|
||||
}
|
||||
|
||||
void process_pending_signals(CPUState *cpu_env)
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
struct target_pt_regs {
|
||||
abi_ulong u_regs[16];
|
||||
abi_ulong tstate;
|
||||
abi_ulong pc;
|
||||
abi_ulong npc;
|
||||
abi_ulong y;
|
||||
abi_ulong fprs;
|
||||
};
|
||||
|
||||
#define UNAME_MACHINE "sun4u"
|
||||
@@ -0,0 +1,27 @@
|
||||
#ifndef TARGET_SIGNAL_H
|
||||
#define TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
abi_ulong ss_sp;
|
||||
abi_long ss_flags;
|
||||
abi_ulong ss_size;
|
||||
} target_stack_t;
|
||||
|
||||
|
||||
#ifndef UREG_I6
|
||||
#define UREG_I6 6
|
||||
#endif
|
||||
#ifndef UREG_FP
|
||||
#define UREG_FP UREG_I6
|
||||
#endif
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUSPARCState *state)
|
||||
{
|
||||
return state->regwptr[UREG_FP];
|
||||
}
|
||||
|
||||
#endif /* TARGET_SIGNAL_H */
|
||||
@@ -0,0 +1,191 @@
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/syscall.h>
|
||||
#include "qemu.h"
|
||||
|
||||
int do_strace=0;
|
||||
|
||||
struct syscallname {
|
||||
int nr;
|
||||
const char *name;
|
||||
const char *format;
|
||||
void (*call)(const struct syscallname *,
|
||||
abi_long, abi_long, abi_long,
|
||||
abi_long, abi_long, abi_long);
|
||||
void (*result)(const struct syscallname *, abi_long);
|
||||
};
|
||||
|
||||
/*
|
||||
* Utility functions
|
||||
*/
|
||||
|
||||
static void
|
||||
print_execve(const struct syscallname *name,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
abi_ulong arg_ptr_addr;
|
||||
char *s;
|
||||
|
||||
if (!(s = lock_user_string(arg1)))
|
||||
return;
|
||||
gemu_log("%s(\"%s\",{", name->name, s);
|
||||
unlock_user(s, arg1, 0);
|
||||
|
||||
for (arg_ptr_addr = arg2; ; arg_ptr_addr += sizeof(abi_ulong)) {
|
||||
abi_ulong *arg_ptr, arg_addr, s_addr;
|
||||
|
||||
arg_ptr = lock_user(VERIFY_READ, arg_ptr_addr, sizeof(abi_ulong), 1);
|
||||
if (!arg_ptr)
|
||||
return;
|
||||
arg_addr = tswapl(*arg_ptr);
|
||||
unlock_user(arg_ptr, arg_ptr_addr, 0);
|
||||
if (!arg_addr)
|
||||
break;
|
||||
if ((s = lock_user_string(arg_addr))) {
|
||||
gemu_log("\"%s\",", s);
|
||||
unlock_user(s, s_addr, 0);
|
||||
}
|
||||
}
|
||||
|
||||
gemu_log("NULL})");
|
||||
}
|
||||
|
||||
/*
|
||||
* Variants for the return value output function
|
||||
*/
|
||||
|
||||
static void
|
||||
print_syscall_ret_addr(const struct syscallname *name, abi_long ret)
|
||||
{
|
||||
if( ret == -1 ) {
|
||||
gemu_log(" = -1 errno=%d (%s)\n", errno, strerror(errno));
|
||||
} else {
|
||||
gemu_log(" = 0x" TARGET_ABI_FMT_lx "\n", ret);
|
||||
}
|
||||
}
|
||||
|
||||
#if 0 /* currently unused */
|
||||
static void
|
||||
print_syscall_ret_raw(struct syscallname *name, abi_long ret)
|
||||
{
|
||||
gemu_log(" = 0x" TARGET_ABI_FMT_lx "\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* An array of all of the syscalls we know about
|
||||
*/
|
||||
|
||||
static const struct syscallname freebsd_scnames[] = {
|
||||
#include "freebsd/strace.list"
|
||||
};
|
||||
static const struct syscallname netbsd_scnames[] = {
|
||||
#include "netbsd/strace.list"
|
||||
};
|
||||
static const struct syscallname openbsd_scnames[] = {
|
||||
#include "openbsd/strace.list"
|
||||
};
|
||||
|
||||
static void
|
||||
print_syscall(int num, const struct syscallname *scnames, unsigned int nscnames,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
unsigned int i;
|
||||
const char *format="%s(" TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld ","
|
||||
TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld ","
|
||||
TARGET_ABI_FMT_ld ")";
|
||||
|
||||
gemu_log("%d ", getpid() );
|
||||
|
||||
for (i = 0; i < nscnames; i++)
|
||||
if (scnames[i].nr == num) {
|
||||
if (scnames[i].call != NULL) {
|
||||
scnames[i].call(&scnames[i], arg1, arg2, arg3, arg4, arg5,
|
||||
arg6);
|
||||
} else {
|
||||
/* XXX: this format system is broken because it uses
|
||||
host types and host pointers for strings */
|
||||
if (scnames[i].format != NULL)
|
||||
format = scnames[i].format;
|
||||
gemu_log(format, scnames[i].name, arg1, arg2, arg3, arg4,
|
||||
arg5, arg6);
|
||||
}
|
||||
return;
|
||||
}
|
||||
gemu_log("Unknown syscall %d\n", num);
|
||||
}
|
||||
|
||||
static void
|
||||
print_syscall_ret(int num, abi_long ret, const struct syscallname *scnames,
|
||||
unsigned int nscnames)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < nscnames; i++)
|
||||
if (scnames[i].nr == num) {
|
||||
if (scnames[i].result != NULL) {
|
||||
scnames[i].result(&scnames[i], ret);
|
||||
} else {
|
||||
if( ret < 0 ) {
|
||||
gemu_log(" = -1 errno=" TARGET_ABI_FMT_ld " (%s)\n", -ret,
|
||||
strerror(-ret));
|
||||
} else {
|
||||
gemu_log(" = " TARGET_ABI_FMT_ld "\n", ret);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* The public interface to this module.
|
||||
*/
|
||||
void
|
||||
print_freebsd_syscall(int num,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
print_syscall(num, freebsd_scnames, ARRAY_SIZE(freebsd_scnames),
|
||||
arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
}
|
||||
|
||||
void
|
||||
print_freebsd_syscall_ret(int num, abi_long ret)
|
||||
{
|
||||
print_syscall_ret(num, ret, freebsd_scnames, ARRAY_SIZE(freebsd_scnames));
|
||||
}
|
||||
|
||||
void
|
||||
print_netbsd_syscall(int num,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
print_syscall(num, netbsd_scnames, ARRAY_SIZE(netbsd_scnames),
|
||||
arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
}
|
||||
|
||||
void
|
||||
print_netbsd_syscall_ret(int num, abi_long ret)
|
||||
{
|
||||
print_syscall_ret(num, ret, netbsd_scnames, ARRAY_SIZE(netbsd_scnames));
|
||||
}
|
||||
|
||||
void
|
||||
print_openbsd_syscall(int num,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
print_syscall(num, openbsd_scnames, ARRAY_SIZE(openbsd_scnames),
|
||||
arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
}
|
||||
|
||||
void
|
||||
print_openbsd_syscall_ret(int num, abi_long ret)
|
||||
{
|
||||
print_syscall_ret(num, ret, openbsd_scnames, ARRAY_SIZE(openbsd_scnames));
|
||||
}
|
||||
@@ -0,0 +1,273 @@
|
||||
/*
|
||||
* BSD syscalls
|
||||
*
|
||||
* Copyright (c) 2003 - 2008 Fabrice Bellard
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
#include <limits.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <signal.h>
|
||||
#include <utime.h>
|
||||
|
||||
#include "qemu.h"
|
||||
#include "qemu-common.h"
|
||||
|
||||
//#define DEBUG
|
||||
|
||||
static abi_ulong target_brk;
|
||||
static abi_ulong target_original_brk;
|
||||
|
||||
#define get_errno(x) (x)
|
||||
#define target_to_host_bitmask(x, tbl) (x)
|
||||
|
||||
void target_set_brk(abi_ulong new_brk)
|
||||
{
|
||||
target_original_brk = target_brk = HOST_PAGE_ALIGN(new_brk);
|
||||
}
|
||||
|
||||
/* do_syscall() should always have a single exit point at the end so
|
||||
that actions, such as logging of syscall results, can be performed.
|
||||
All errnos that do_syscall() returns must be -TARGET_<errcode>. */
|
||||
abi_long do_freebsd_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5, abi_long arg6)
|
||||
{
|
||||
abi_long ret;
|
||||
void *p;
|
||||
|
||||
#ifdef DEBUG
|
||||
gemu_log("freebsd syscall %d\n", num);
|
||||
#endif
|
||||
if(do_strace)
|
||||
print_freebsd_syscall(num, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
|
||||
switch(num) {
|
||||
case TARGET_FREEBSD_NR_exit:
|
||||
#ifdef HAVE_GPROF
|
||||
_mcleanup();
|
||||
#endif
|
||||
gdb_exit(cpu_env, arg1);
|
||||
/* XXX: should free thread stack and CPU env */
|
||||
_exit(arg1);
|
||||
ret = 0; /* avoid warning */
|
||||
break;
|
||||
case TARGET_FREEBSD_NR_read:
|
||||
if (!(p = lock_user(VERIFY_WRITE, arg2, arg3, 0)))
|
||||
goto efault;
|
||||
ret = get_errno(read(arg1, p, arg3));
|
||||
unlock_user(p, arg2, ret);
|
||||
break;
|
||||
case TARGET_FREEBSD_NR_write:
|
||||
if (!(p = lock_user(VERIFY_READ, arg2, arg3, 1)))
|
||||
goto efault;
|
||||
ret = get_errno(write(arg1, p, arg3));
|
||||
unlock_user(p, arg2, 0);
|
||||
break;
|
||||
case TARGET_FREEBSD_NR_open:
|
||||
if (!(p = lock_user_string(arg1)))
|
||||
goto efault;
|
||||
ret = get_errno(open(path(p),
|
||||
target_to_host_bitmask(arg2, fcntl_flags_tbl),
|
||||
arg3));
|
||||
unlock_user(p, arg1, 0);
|
||||
break;
|
||||
case TARGET_FREEBSD_NR_mmap:
|
||||
ret = get_errno(target_mmap(arg1, arg2, arg3,
|
||||
target_to_host_bitmask(arg4, mmap_flags_tbl),
|
||||
arg5,
|
||||
arg6));
|
||||
break;
|
||||
case TARGET_FREEBSD_NR_mprotect:
|
||||
ret = get_errno(target_mprotect(arg1, arg2, arg3));
|
||||
break;
|
||||
case TARGET_FREEBSD_NR_syscall:
|
||||
case TARGET_FREEBSD_NR___syscall:
|
||||
ret = do_freebsd_syscall(cpu_env,arg1 & 0xffff,arg2,arg3,arg4,arg5,arg6,0);
|
||||
break;
|
||||
default:
|
||||
ret = syscall(num, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
break;
|
||||
}
|
||||
fail:
|
||||
#ifdef DEBUG
|
||||
gemu_log(" = %ld\n", ret);
|
||||
#endif
|
||||
if (do_strace)
|
||||
print_freebsd_syscall_ret(num, ret);
|
||||
return ret;
|
||||
efault:
|
||||
ret = -TARGET_EFAULT;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
abi_long do_netbsd_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5, abi_long arg6)
|
||||
{
|
||||
abi_long ret;
|
||||
void *p;
|
||||
|
||||
#ifdef DEBUG
|
||||
gemu_log("netbsd syscall %d\n", num);
|
||||
#endif
|
||||
if(do_strace)
|
||||
print_netbsd_syscall(num, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
|
||||
switch(num) {
|
||||
case TARGET_NETBSD_NR_exit:
|
||||
#ifdef HAVE_GPROF
|
||||
_mcleanup();
|
||||
#endif
|
||||
gdb_exit(cpu_env, arg1);
|
||||
/* XXX: should free thread stack and CPU env */
|
||||
_exit(arg1);
|
||||
ret = 0; /* avoid warning */
|
||||
break;
|
||||
case TARGET_NETBSD_NR_read:
|
||||
if (!(p = lock_user(VERIFY_WRITE, arg2, arg3, 0)))
|
||||
goto efault;
|
||||
ret = get_errno(read(arg1, p, arg3));
|
||||
unlock_user(p, arg2, ret);
|
||||
break;
|
||||
case TARGET_NETBSD_NR_write:
|
||||
if (!(p = lock_user(VERIFY_READ, arg2, arg3, 1)))
|
||||
goto efault;
|
||||
ret = get_errno(write(arg1, p, arg3));
|
||||
unlock_user(p, arg2, 0);
|
||||
break;
|
||||
case TARGET_NETBSD_NR_open:
|
||||
if (!(p = lock_user_string(arg1)))
|
||||
goto efault;
|
||||
ret = get_errno(open(path(p),
|
||||
target_to_host_bitmask(arg2, fcntl_flags_tbl),
|
||||
arg3));
|
||||
unlock_user(p, arg1, 0);
|
||||
break;
|
||||
case TARGET_NETBSD_NR_mmap:
|
||||
ret = get_errno(target_mmap(arg1, arg2, arg3,
|
||||
target_to_host_bitmask(arg4, mmap_flags_tbl),
|
||||
arg5,
|
||||
arg6));
|
||||
break;
|
||||
case TARGET_NETBSD_NR_mprotect:
|
||||
ret = get_errno(target_mprotect(arg1, arg2, arg3));
|
||||
break;
|
||||
case TARGET_NETBSD_NR_syscall:
|
||||
case TARGET_NETBSD_NR___syscall:
|
||||
ret = do_netbsd_syscall(cpu_env,arg1 & 0xffff,arg2,arg3,arg4,arg5,arg6,0);
|
||||
break;
|
||||
default:
|
||||
ret = syscall(num, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
break;
|
||||
}
|
||||
fail:
|
||||
#ifdef DEBUG
|
||||
gemu_log(" = %ld\n", ret);
|
||||
#endif
|
||||
if (do_strace)
|
||||
print_netbsd_syscall_ret(num, ret);
|
||||
return ret;
|
||||
efault:
|
||||
ret = -TARGET_EFAULT;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
abi_long do_openbsd_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5, abi_long arg6)
|
||||
{
|
||||
abi_long ret;
|
||||
void *p;
|
||||
|
||||
#ifdef DEBUG
|
||||
gemu_log("openbsd syscall %d\n", num);
|
||||
#endif
|
||||
if(do_strace)
|
||||
print_openbsd_syscall(num, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
|
||||
switch(num) {
|
||||
case TARGET_OPENBSD_NR_exit:
|
||||
#ifdef HAVE_GPROF
|
||||
_mcleanup();
|
||||
#endif
|
||||
gdb_exit(cpu_env, arg1);
|
||||
/* XXX: should free thread stack and CPU env */
|
||||
_exit(arg1);
|
||||
ret = 0; /* avoid warning */
|
||||
break;
|
||||
case TARGET_OPENBSD_NR_read:
|
||||
if (!(p = lock_user(VERIFY_WRITE, arg2, arg3, 0)))
|
||||
goto efault;
|
||||
ret = get_errno(read(arg1, p, arg3));
|
||||
unlock_user(p, arg2, ret);
|
||||
break;
|
||||
case TARGET_OPENBSD_NR_write:
|
||||
if (!(p = lock_user(VERIFY_READ, arg2, arg3, 1)))
|
||||
goto efault;
|
||||
ret = get_errno(write(arg1, p, arg3));
|
||||
unlock_user(p, arg2, 0);
|
||||
break;
|
||||
case TARGET_OPENBSD_NR_open:
|
||||
if (!(p = lock_user_string(arg1)))
|
||||
goto efault;
|
||||
ret = get_errno(open(path(p),
|
||||
target_to_host_bitmask(arg2, fcntl_flags_tbl),
|
||||
arg3));
|
||||
unlock_user(p, arg1, 0);
|
||||
break;
|
||||
case TARGET_OPENBSD_NR_mmap:
|
||||
ret = get_errno(target_mmap(arg1, arg2, arg3,
|
||||
target_to_host_bitmask(arg4, mmap_flags_tbl),
|
||||
arg5,
|
||||
arg6));
|
||||
break;
|
||||
case TARGET_OPENBSD_NR_mprotect:
|
||||
ret = get_errno(target_mprotect(arg1, arg2, arg3));
|
||||
break;
|
||||
case TARGET_OPENBSD_NR_syscall:
|
||||
case TARGET_OPENBSD_NR___syscall:
|
||||
ret = do_openbsd_syscall(cpu_env,arg1 & 0xffff,arg2,arg3,arg4,arg5,arg6,0);
|
||||
break;
|
||||
default:
|
||||
ret = syscall(num, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
break;
|
||||
}
|
||||
fail:
|
||||
#ifdef DEBUG
|
||||
gemu_log(" = %ld\n", ret);
|
||||
#endif
|
||||
if (do_strace)
|
||||
print_openbsd_syscall_ret(num, ret);
|
||||
return ret;
|
||||
efault:
|
||||
ret = -TARGET_EFAULT;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
void syscall_init(void)
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
/* $OpenBSD: signal.h,v 1.19 2006/01/08 14:20:16 millert Exp $ */
|
||||
/* $NetBSD: signal.h,v 1.21 1996/02/09 18:25:32 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1986, 1989, 1991, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* (c) UNIX System Laboratories, Inc.
|
||||
* All or some portions of this file are derived from material licensed
|
||||
* to the University of California by American Telephone and Telegraph
|
||||
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||
* the permission of UNIX System Laboratories, Inc.
|
||||
*
|
||||
* 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.
|
||||
* 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. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
|
||||
*
|
||||
* @(#)signal.h 8.2 (Berkeley) 1/21/94
|
||||
*/
|
||||
|
||||
#define TARGET_NSIG 32 /* counting 0; could be 33 (mask is 1-32) */
|
||||
|
||||
#define TARGET_SIGHUP 1 /* hangup */
|
||||
#define TARGET_SIGINT 2 /* interrupt */
|
||||
#define TARGET_SIGQUIT 3 /* quit */
|
||||
#define TARGET_SIGILL 4 /* illegal instruction (not reset when caught) */
|
||||
#define TARGET_SIGTRAP 5 /* trace trap (not reset when caught) */
|
||||
#define TARGET_SIGABRT 6 /* abort() */
|
||||
#define TARGET_SIGIOT SIGABRT /* compatibility */
|
||||
#define TARGET_SIGEMT 7 /* EMT instruction */
|
||||
#define TARGET_SIGFPE 8 /* floating point exception */
|
||||
#define TARGET_SIGKILL 9 /* kill (cannot be caught or ignored) */
|
||||
#define TARGET_SIGBUS 10 /* bus error */
|
||||
#define TARGET_SIGSEGV 11 /* segmentation violation */
|
||||
#define TARGET_SIGSYS 12 /* bad argument to system call */
|
||||
#define TARGET_SIGPIPE 13 /* write on a pipe with no one to read it */
|
||||
#define TARGET_SIGALRM 14 /* alarm clock */
|
||||
#define TARGET_SIGTERM 15 /* software termination signal from kill */
|
||||
#define TARGET_SIGURG 16 /* urgent condition on IO channel */
|
||||
#define TARGET_SIGSTOP 17 /* sendable stop signal not from tty */
|
||||
#define TARGET_SIGTSTP 18 /* stop signal from tty */
|
||||
#define TARGET_SIGCONT 19 /* continue a stopped process */
|
||||
#define TARGET_SIGCHLD 20 /* to parent on child stop or exit */
|
||||
#define TARGET_SIGTTIN 21 /* to readers pgrp upon background tty read */
|
||||
#define TARGET_SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */
|
||||
#define TARGET_SIGIO 23 /* input/output possible signal */
|
||||
#define TARGET_SIGXCPU 24 /* exceeded CPU time limit */
|
||||
#define TARGET_SIGXFSZ 25 /* exceeded file size limit */
|
||||
#define TARGET_SIGVTALRM 26 /* virtual time alarm */
|
||||
#define TARGET_SIGPROF 27 /* profiling time alarm */
|
||||
#define TARGET_SIGWINCH 28 /* window size changes */
|
||||
#define TARGET_SIGINFO 29 /* information request */
|
||||
#define TARGET_SIGUSR1 30 /* user defined signal 1 */
|
||||
#define TARGET_SIGUSR2 31 /* user defined signal 2 */
|
||||
|
||||
/*
|
||||
* Language spec says we must list exactly one parameter, even though we
|
||||
* actually supply three. Ugh!
|
||||
*/
|
||||
#define TARGET_SIG_DFL (void (*)(int))0
|
||||
#define TARGET_SIG_IGN (void (*)(int))1
|
||||
#define TARGET_SIG_ERR (void (*)(int))-1
|
||||
|
||||
#define TARGET_SA_ONSTACK 0x0001 /* take signal on signal stack */
|
||||
#define TARGET_SA_RESTART 0x0002 /* restart system on signal return */
|
||||
#define TARGET_SA_RESETHAND 0x0004 /* reset to SIG_DFL when taking signal */
|
||||
#define TARGET_SA_NODEFER 0x0010 /* don't mask the signal we're delivering */
|
||||
#define TARGET_SA_NOCLDWAIT 0x0020 /* don't create zombies (assign to pid 1) */
|
||||
#define TARGET_SA_USERTRAMP 0x0100 /* do not bounce off kernel's sigtramp */
|
||||
#define TARGET_SA_NOCLDSTOP 0x0008 /* do not generate SIGCHLD on child stop */
|
||||
#define TARGET_SA_SIGINFO 0x0040 /* generate siginfo_t */
|
||||
|
||||
/*
|
||||
* Flags for sigprocmask:
|
||||
*/
|
||||
#define TARGET_SIG_BLOCK 1 /* block specified signal set */
|
||||
#define TARGET_SIG_UNBLOCK 2 /* unblock specified signal set */
|
||||
#define TARGET_SIG_SETMASK 3 /* set specified signal set */
|
||||
|
||||
#define TARGET_BADSIG SIG_ERR
|
||||
|
||||
#define TARGET_SS_ONSTACK 0x0001 /* take signals on alternate stack */
|
||||
#define TARGET_SS_DISABLE 0x0004 /* disable taking signals on alternate stack */
|
||||
|
||||
#include "errno_defs.h"
|
||||
|
||||
#include "freebsd/syscall_nr.h"
|
||||
#include "netbsd/syscall_nr.h"
|
||||
#include "openbsd/syscall_nr.h"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user