* Fuzzer improvements
* Add OpenSUSE leap to the gitlab-CI * Some fixes to get our CI "green" again * Some initial patches to update bsd-user -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAl/8WecRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbXOBRAApCeRyDp+dc0+ONJrS/6e4dbD1zC+0VD9 HGQe6DhXQ+z1F5qCDOAUb1HvjH3ixrCR3cnTZN8GlOxJckf/3pvP4Skjvp+hhGRe abWhJsWujI1cgybHSdgH9Qkuc6ixajhS7h386SdJKt13lP9tfrvrllfDO/Z0RdTb SbHxI3r+ZbWyOR72jwlmXmoPu1vw9hqK9J5GZL3mMXkqftG81eg6H03/N0YNDEjA cvC6EqyRiYbknwx6Ipo4oQ2ObcAiGLWhf9LYa6pIh29LcgPdpmNB+yF9u9DVGdVI l2X6i2PIg0COzckFhrEPN3E2Xxi2kKWrbSLMWTZ5C5E1SOV7SvM0pXfwnY5PNuQy wEduCU2/MlYQQI+wceiVaDtZP6erNd3/BfbX5LPXuw44PYOlWkKl4gGRr5ndbXHA Q92xi+CWEwCmC4sIiSldiiaVCk0iclHQbDB6lwECWlM5y1D/n7rxy0lAnCNMpr8s DYRa5UjW5LoiDiZGsGn/eeOZupvUvTfuL7UH5bkrwrI8k0Jsq5ixDO2w3TzY09oa y/0HZ6+7aSJEs21F8OQHDpWmqwJR/uahRDPJNBxsOoPJ6GD2Km8pT3EDzQfWqHHQ 6d95bXBxK3pk3JEDYDxqc8lWatTZHKpg9JWJ27NwwxekeZCNKLLkNIsXLN8cIDoZ ITAgAqTpw4g= =pry4 -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2021-01-11v2' into staging * Fuzzer improvements * Add OpenSUSE leap to the gitlab-CI * Some fixes to get our CI "green" again * Some initial patches to update bsd-user # gpg: Signature made Mon 11 Jan 2021 14:00:07 GMT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * remotes/huth-gitlab/tags/pull-request-2021-01-11v2: fuzz: map all BARs and enable PCI devices tests/acceptance: Fix race conditions in s390x tests & skip fedora on gitlab-CI bsd-user: Update strace.list for FreeBSD's latest syscalls bsd-user: move strace OS/arch dependent code to host/arch dirs bsd-user: regenerate FreeBSD's system call numbers fuzz: heuristic split write based on past IOs fuzz: add minimization options fuzz: set bits in operand of write/out to zero fuzz: remove IO commands iteratively fuzz: split write operand using binary approach fuzz: double the IOs to remove for every loop fuzz: accelerate non-crash detection util/oslib-win32: Fix _aligned_malloc() arguments order qtest/libqtest: fix heap-buffer-overflow in qtest_cb_for_every_machine() gitlab-ci.yml: Add openSUSE Leap 15.2 for gitlab CI/CD Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
b3f846c59d
@ -246,3 +246,8 @@ amd64-ubuntu-container:
|
|||||||
<<: *container_job_definition
|
<<: *container_job_definition
|
||||||
variables:
|
variables:
|
||||||
NAME: ubuntu
|
NAME: ubuntu
|
||||||
|
|
||||||
|
amd64-opensuse-leap-container:
|
||||||
|
<<: *container_job_definition
|
||||||
|
variables:
|
||||||
|
NAME: opensuse-leap
|
||||||
|
@ -200,6 +200,37 @@ acceptance-system-centos:
|
|||||||
MAKE_CHECK_ARGS: check-acceptance
|
MAKE_CHECK_ARGS: check-acceptance
|
||||||
<<: *acceptance_definition
|
<<: *acceptance_definition
|
||||||
|
|
||||||
|
build-system-opensuse:
|
||||||
|
<<: *native_build_job_definition
|
||||||
|
variables:
|
||||||
|
IMAGE: opensuse-leap
|
||||||
|
TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
|
||||||
|
MAKE_CHECK_ARGS: check-build
|
||||||
|
artifacts:
|
||||||
|
expire_in: 2 days
|
||||||
|
paths:
|
||||||
|
- build
|
||||||
|
|
||||||
|
check-system-opensuse:
|
||||||
|
<<: *native_test_job_definition
|
||||||
|
needs:
|
||||||
|
- job: build-system-opensuse
|
||||||
|
artifacts: true
|
||||||
|
variables:
|
||||||
|
IMAGE: opensuse-leap
|
||||||
|
MAKE_CHECK_ARGS: check
|
||||||
|
|
||||||
|
acceptance-system-opensuse:
|
||||||
|
<<: *native_test_job_definition
|
||||||
|
needs:
|
||||||
|
- job: build-system-opensuse
|
||||||
|
artifacts: true
|
||||||
|
variables:
|
||||||
|
IMAGE: opensuse-leap
|
||||||
|
MAKE_CHECK_ARGS: check-acceptance
|
||||||
|
<<: *acceptance_definition
|
||||||
|
|
||||||
|
|
||||||
build-disabled:
|
build-disabled:
|
||||||
<<: *native_build_job_definition
|
<<: *native_build_job_definition
|
||||||
variables:
|
variables:
|
||||||
|
78
bsd-user/arm/target_arch_sysarch.h
Normal file
78
bsd-user/arm/target_arch_sysarch.h
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
/*
|
||||||
|
* arm sysarch() system call emulation
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Stacey D. Son
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
#define BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
|
||||||
|
#include "target_syscall.h"
|
||||||
|
#include "target_arch.h"
|
||||||
|
|
||||||
|
static inline abi_long do_freebsd_arch_sysarch(CPUARMState *env, int op,
|
||||||
|
abi_ulong parms)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
switch (op) {
|
||||||
|
case TARGET_FREEBSD_ARM_SYNC_ICACHE:
|
||||||
|
case TARGET_FREEBSD_ARM_DRAIN_WRITEBUF:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_FREEBSD_ARM_SET_TP:
|
||||||
|
target_cpu_set_tls(env, parms);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_FREEBSD_ARM_GET_TP:
|
||||||
|
ret = target_cpu_get_tls(env);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
ret = -TARGET_EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void do_freebsd_arch_print_sysarch(
|
||||||
|
const struct syscallname *name, abi_long arg1, abi_long arg2,
|
||||||
|
abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6)
|
||||||
|
{
|
||||||
|
|
||||||
|
switch (arg1) {
|
||||||
|
case TARGET_FREEBSD_ARM_SYNC_ICACHE:
|
||||||
|
gemu_log("%s(ARM_SYNC_ICACHE, ...)", name->name);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_FREEBSD_ARM_DRAIN_WRITEBUF:
|
||||||
|
gemu_log("%s(ARM_DRAIN_WRITEBUF, ...)", name->name);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_FREEBSD_ARM_SET_TP:
|
||||||
|
gemu_log("%s(ARM_SET_TP, 0x" TARGET_ABI_FMT_lx ")", name->name, arg2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_FREEBSD_ARM_GET_TP:
|
||||||
|
gemu_log("%s(ARM_GET_TP, 0x" TARGET_ABI_FMT_lx ")", name->name, arg2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
gemu_log("UNKNOWN OP: %d, " TARGET_ABI_FMT_lx ")", (int)arg1, arg2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*!BSD_USER_ARCH_SYSARCH_H_ */
|
36
bsd-user/arm/target_syscall.h
Normal file
36
bsd-user/arm/target_syscall.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#ifndef BSD_USER_ARCH_SYSCALL_H_
|
||||||
|
#define BSD_USER_ARCH_SYSCALL_H_
|
||||||
|
|
||||||
|
struct target_pt_regs {
|
||||||
|
abi_long uregs[17];
|
||||||
|
};
|
||||||
|
|
||||||
|
#define ARM_cpsr uregs[16]
|
||||||
|
#define ARM_pc uregs[15]
|
||||||
|
#define ARM_lr uregs[14]
|
||||||
|
#define ARM_sp uregs[13]
|
||||||
|
#define ARM_ip uregs[12]
|
||||||
|
#define ARM_fp uregs[11]
|
||||||
|
#define ARM_r10 uregs[10]
|
||||||
|
#define ARM_r9 uregs[9]
|
||||||
|
#define ARM_r8 uregs[8]
|
||||||
|
#define ARM_r7 uregs[7]
|
||||||
|
#define ARM_r6 uregs[6]
|
||||||
|
#define ARM_r5 uregs[5]
|
||||||
|
#define ARM_r4 uregs[4]
|
||||||
|
#define ARM_r3 uregs[3]
|
||||||
|
#define ARM_r2 uregs[2]
|
||||||
|
#define ARM_r1 uregs[1]
|
||||||
|
#define ARM_r0 uregs[0]
|
||||||
|
|
||||||
|
#define ARM_SYSCALL_BASE 0 /* XXX: FreeBSD only */
|
||||||
|
|
||||||
|
#define TARGET_FREEBSD_ARM_SYNC_ICACHE 0
|
||||||
|
#define TARGET_FREEBSD_ARM_DRAIN_WRITEBUF 1
|
||||||
|
#define TARGET_FREEBSD_ARM_SET_TP 2
|
||||||
|
#define TARGET_FREEBSD_ARM_GET_TP 3
|
||||||
|
|
||||||
|
#define TARGET_HW_MACHINE "arm"
|
||||||
|
#define TARGET_HW_MACHINE_ARCH "armv6"
|
||||||
|
|
||||||
|
#endif /* !BSD_USER_ARCH_SYSCALL_H_ */
|
29
bsd-user/freebsd/os-strace.h
Normal file
29
bsd-user/freebsd/os-strace.h
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* FreeBSD dependent strace print functions
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Stacey D. Son
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "target_arch_sysarch.h" /* architecture dependent functions */
|
||||||
|
|
||||||
|
|
||||||
|
static inline void do_os_print_sysarch(const struct syscallname *name,
|
||||||
|
abi_long arg1, abi_long arg2, abi_long arg3, abi_long arg4,
|
||||||
|
abi_long arg5, abi_long arg6)
|
||||||
|
{
|
||||||
|
/* This is arch dependent */
|
||||||
|
do_freebsd_arch_print_sysarch(name, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||||
|
}
|
@ -28,18 +28,37 @@
|
|||||||
{ TARGET_FREEBSD_NR___acl_set_fd, "__acl_set_fd", "%s(%d, %d, %#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR___acl_set_fd, "__acl_set_fd", "%s(%d, %d, %#x)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR___acl_set_file, "__acl_set_file", "%s(\"%s\", %d, %#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR___acl_set_file, "__acl_set_file", "%s(\"%s\", %d, %#x)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR___acl_set_link, "__acl_set_link", "%s(\"%s\", %d, %#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR___acl_set_link, "__acl_set_link", "%s(\"%s\", %d, %#x)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR___getcwd, "__getcwd", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR___semctl, "__semctl", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR___semctl, "__semctl", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR___syscall, "__syscall", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR___syscall, "__syscall", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR___sysctl, "__sysctl", NULL, print_sysctl, NULL },
|
{ TARGET_FREEBSD_NR___sysctl, "__sysctl", NULL, print_sysctl, NULL },
|
||||||
{ TARGET_FREEBSD_NR__umtx_op, "_umtx_op", "%s(%#x, %d, %d, %#x, %#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR__umtx_op, "_umtx_op", "%s(%#x, %d, %d, %#x, %#x)", NULL, NULL },
|
||||||
|
#if defined(__FreeBSD_version) && __FreeBSD_version < 1000000
|
||||||
|
{ TARGET_FREEBSD_NR__umtx_lock, "__umtx_lock", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR__umtx_unlock, "__umtx_unlock", NULL, NULL, NULL },
|
||||||
|
#endif
|
||||||
{ TARGET_FREEBSD_NR_accept, "accept", "%s(%d,%#x,%#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_accept, "accept", "%s(%d,%#x,%#x)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_accept4, "accept4", "%s(%d,%d,%#x,%#x)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_access, "access", "%s(\"%s\",%#o)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_access, "access", "%s(\"%s\",%#o)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_acct, "acct", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_acct, "acct", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_adjtime, "adjtime", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_adjtime, "adjtime", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_bind, "bind", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_bind, "bind", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_bindat, "bindat", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_break, "break", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_break, "break", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_cap_enter, "cap_enter", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_cap_fcntls_get, "cap_fcntls_get", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_cap_fcntls_limit, "cap_fcntls_limit", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_cap_getmode, "cap_getmode", NULL, NULL, NULL },
|
||||||
|
#if defined(__FreeBSD_version) && __FreeBSD_version < 1000000
|
||||||
|
{ TARGET_FREEBSD_NR_cap_getrights, "cap_getrights", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_cap_new, "cap_new", NULL, NULL, NULL },
|
||||||
|
#endif
|
||||||
|
{ TARGET_FREEBSD_NR_cap_ioctls_get, "cap_ioctls_get", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_cap_ioctls_limit, "cap_ioctls_limit", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_cap_rights_limit, "cap_rights_limit", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_chdir, "chdir", "%s(\"%s\")", NULL, NULL },
|
{ TARGET_FREEBSD_NR_chdir, "chdir", "%s(\"%s\")", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_chflags, "chflags", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_chflags, "chflags", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_chflagsat, "chflagsat", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_chmod, "chmod", "%s(\"%s\",%#o)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_chmod, "chmod", "%s(\"%s\",%#o)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_chown, "chown", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_chown, "chown", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_chroot, "chroot", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_chroot, "chroot", NULL, NULL, NULL },
|
||||||
@ -48,6 +67,9 @@
|
|||||||
{ TARGET_FREEBSD_NR_clock_settime, "clock_settime", 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_close, "close", "%s(%d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_connect, "connect", "%s(%d,%#x,%d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_connect, "connect", "%s(%d,%#x,%d)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_connectat, "connectat", "%s(%d,%d,%#x,%d)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_cpuset_getdomain, "cpuset_getdomain", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_cpuset_setdomain, "cpuset_setdomain", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_dup, "dup", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_dup, "dup", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_dup2, "dup2", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_dup2, "dup2", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_eaccess, "eaccess", "%s(\"%s\",%#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_eaccess, "eaccess", "%s(\"%s\",%#x)", NULL, NULL },
|
||||||
@ -61,7 +83,7 @@
|
|||||||
{ TARGET_FREEBSD_NR_extattr_get_file, "extattr_get_file", "%s(\"%s\", %d, \"%s\", %#x, %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_extattr_get_file, "extattr_get_file", "%s(\"%s\", %d, \"%s\", %#x, %d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_extattr_get_file, "extattr_get_link", "%s(\"%s\", %d, \"%s\", %#x, %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_extattr_get_file, "extattr_get_link", "%s(\"%s\", %d, \"%s\", %#x, %d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_extattr_list_fd, "extattr_list_fd", "%s(%d, %d, %#x, %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_extattr_list_fd, "extattr_list_fd", "%s(%d, %d, %#x, %d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_extattr_list_file, "extattr_list_file", "%s(\"%s\", %d, %#x, %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_extattr_list_file, "extattr_list_file", "%s(\"%s\", %#x, %d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_extattr_list_link, "extattr_list_link", "%s(\"%s\", %d, %#x, %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_extattr_list_link, "extattr_list_link", "%s(\"%s\", %d, %#x, %d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_extattr_set_fd, "extattr_set_fd", "%s(%d, %d, \"%s\", %#x, %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_extattr_set_fd, "extattr_set_fd", "%s(%d, %d, \"%s\", %#x, %d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_extattr_set_file, "extattr_set_file", "%s(\"%s\", %d, \"%s\", %#x, %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_extattr_set_file, "extattr_set_file", "%s(\"%s\", %d, \"%s\", %#x, %d)", NULL, NULL },
|
||||||
@ -71,26 +93,34 @@
|
|||||||
{ TARGET_FREEBSD_NR_fchmod, "fchmod", "%s(%d,%#o)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_fchmod, "fchmod", "%s(%d,%#o)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fchown, "fchown", "%s(%d,%d,%d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_fchown, "fchown", "%s(%d,%d,%d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fcntl, "fcntl", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_fcntl, "fcntl", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_fdatasync, "fdatasync", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fexecve, "fexecve", NULL, print_execve, NULL },
|
{ TARGET_FREEBSD_NR_fexecve, "fexecve", NULL, print_execve, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fhopen, "fhopen", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_fhopen, "fhopen", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fhstat, "fhstat", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_fhstat, "fhstat", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fhstatfs, "fhstatfs", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_fhstatfs, "fhstatfs", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_freebsd11_fhstat, "freebsd11_fhstat", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_freebsd11_fhstatfs, "freebsd11_fhstatfs", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_flock, "flock", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_flock, "flock", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fork, "fork", "%s()", NULL, NULL },
|
{ TARGET_FREEBSD_NR_fork, "fork", "%s()", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fpathconf, "fpathconf", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_fpathconf, "fpathconf", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fstat, "fstat", "%s(%d,%#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_fstat, "fstat", "%s(%d,%#x)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fstatat, "fstatat", "%s(%d,\"%s\", %#x, %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_fstatat, "fstatat", "%s(%d,\"%s\", %#x, %d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fstatfs, "fstatfs", "%s(%d,%#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_fstatfs, "fstatfs", "%s(%d,%#x)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_freebsd11_fstat, "freebsd11_fstat", "%s(%d,%#x)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_freebsd11_fstatat, "freebsd11_fstatat", "%s(%d,\"%s\", %#x, %d)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_freebsd11_fstatfs, "freebsd11_fstatfs", "%s(%d,%#x)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_fsync, "fsync", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_fsync, "fsync", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_ftruncate, "ftruncate", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_ftruncate, "ftruncate", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_futimens, "futimens", "%s(%d,%p)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_futimes, "futimes", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_futimes, "futimes", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getcontext, "getcontext", "%s(%#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_getcontext, "getcontext", "%s(%#x)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getdirentries, "getdirentries", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_getdirentries, "getdirentries", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_freebsd6_mmap, "freebsd6_mmap", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_freebsd11_getdirentries, "freebsd11_getdirentries", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getegid, "getegid", "%s()", NULL, NULL },
|
{ TARGET_FREEBSD_NR_getegid, "getegid", "%s()", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_geteuid, "geteuid", "%s()", NULL, NULL },
|
{ TARGET_FREEBSD_NR_geteuid, "geteuid", "%s()", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getfh, "getfh", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_getfh, "getfh", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getfsstat, "getfsstat", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_getfsstat, "getfsstat", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_freebsd11_getfsstat, "freebsd11_getfsstat", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getgid, "getgid", "%s()", NULL, NULL },
|
{ TARGET_FREEBSD_NR_getgid, "getgid", "%s()", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getgroups, "getgroups", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_getgroups, "getgroups", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getitimer, "getitimer", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_getitimer, "getitimer", NULL, NULL, NULL },
|
||||||
@ -101,6 +131,7 @@
|
|||||||
{ TARGET_FREEBSD_NR_getpid, "getpid", "%s()", NULL, NULL },
|
{ TARGET_FREEBSD_NR_getpid, "getpid", "%s()", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getppid, "getppid", "%s()", NULL, NULL },
|
{ TARGET_FREEBSD_NR_getppid, "getppid", "%s()", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getpriority, "getpriority", "%s(%#x,%#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_getpriority, "getpriority", "%s(%#x,%#x)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_getrandom, "getrandom", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getresgid, "getresgid", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_getresgid, "getresgid", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getresuid, "getresuid", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_getresuid, "getresuid", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_getrlimit, "getrlimit", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_getrlimit, "getrlimit", NULL, NULL, NULL },
|
||||||
@ -112,8 +143,12 @@
|
|||||||
{ TARGET_FREEBSD_NR_getuid, "getuid", "%s()", NULL, NULL },
|
{ TARGET_FREEBSD_NR_getuid, "getuid", "%s()", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_ioctl, "ioctl", NULL, print_ioctl, NULL },
|
{ TARGET_FREEBSD_NR_ioctl, "ioctl", NULL, print_ioctl, NULL },
|
||||||
{ TARGET_FREEBSD_NR_issetugid, "issetugid", "%s()", NULL, NULL },
|
{ TARGET_FREEBSD_NR_issetugid, "issetugid", "%s()", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_freebsd11_kevent, "freebsd11_kevent", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_kevent, "kevent", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_kevent, "kevent", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_kill, "kill", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_kill, "kill", NULL, NULL, NULL },
|
||||||
|
#if defined(__FreeBSD_version) && __FreeBSD_version < 1000000
|
||||||
|
{ TARGET_FREEBSD_NR_killpg, "killpg", NULL, NULL, NULL },
|
||||||
|
#endif
|
||||||
{ TARGET_FREEBSD_NR_kqueue, "kqueue", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_kqueue, "kqueue", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_ktrace, "ktrace", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_ktrace, "ktrace", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_lchown, "lchown", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_lchown, "lchown", NULL, NULL, NULL },
|
||||||
@ -121,13 +156,15 @@
|
|||||||
{ TARGET_FREEBSD_NR_listen, "listen", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_listen, "listen", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_lpathconf, "lpathconf", "%s(\"%s\", %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_lpathconf, "lpathconf", "%s(\"%s\", %d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_lseek, "lseek", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_lseek, "lseek", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_lstat, "lstat", "%s(\"%s\",%p)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_freebsd11_lstat, "freebsd11_lstat", "%s(\"%s\",%p)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_madvise, "madvise", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_madvise, "madvise", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_mincore, "mincore", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_mincore, "mincore", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_minherit, "minherit", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_minherit, "minherit", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_mkdir, "mkdir", "%s(\"%s\",%#o)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_mkdir, "mkdir", "%s(\"%s\",%#o)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_mkfifo, "mkfifo", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_mkfifo, "mkfifo", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_mknod, "mknod", "%s(\"%s\",%#o,%#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_mknodat, "mknodat", "%s(%d, \"%s\",%#o,%#x)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_freebsd11_mknod, "freebsd11_mknod", "%s(\"%s\",%#o,%#x)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_freebsd11_mknodat, "freebsd11_mknodat", "%s(%d, \"%s\",%#o,%#x)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_mlock, "mlock", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_mlock, "mlock", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_mlockall, "mlockall", 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_mmap, "mmap", NULL, NULL, print_syscall_ret_addr },
|
||||||
@ -146,8 +183,10 @@
|
|||||||
{ TARGET_FREEBSD_NR_open, "open", "%s(\"%s\",%#x,%#o)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_open, "open", "%s(\"%s\",%#x,%#o)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_openat, "openat", "%s(%d, \"%s\",%#x,%#o)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_openat, "openat", "%s(%d, \"%s\",%#x,%#o)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_pathconf, "pathconf", "%s(\"%s\", %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_pathconf, "pathconf", "%s(\"%s\", %d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_pipe, "pipe", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_freebsd10_pipe, "freebsd10_pipe", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_pipe2, "pipe2", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_poll, "poll", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_poll, "poll", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_posix_fallocate, "posix_fallocate", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_pread, "pread", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_pread, "pread", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_preadv, "preadv", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_preadv, "preadv", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_profil, "profil", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_profil, "profil", NULL, NULL, NULL },
|
||||||
@ -167,6 +206,8 @@
|
|||||||
{ TARGET_FREEBSD_NR_rmdir, "rmdir", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_rmdir, "rmdir", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_rtprio_thread, "rtprio_thread", "%s(%d, %d, %p)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_rtprio_thread, "rtprio_thread", "%s(%d, %d, %p)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_sbrk, "sbrk", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_sbrk, "sbrk", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_sched_get_priority_max, "sched_get_priority_max", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_sched_get_priority_min, "sched_get_priority_min", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_sched_yield, "sched_yield", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_sched_yield, "sched_yield", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_select, "select", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_select, "select", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_semget, "semget", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_semget, "semget", NULL, NULL, NULL },
|
||||||
@ -205,12 +246,17 @@
|
|||||||
{ TARGET_FREEBSD_NR_socket, "socket", "%s(%d,%d,%d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_socket, "socket", "%s(%d,%d,%d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_socketpair, "socketpair", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_socketpair, "socketpair", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_sstk, "sstk", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_sstk, "sstk", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_stat, "stat", "%s(\"%s\",%p)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_freebsd11_stat, "freebsd11_stat", "%s(\"%s\",%p)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_statfs, "statfs", "%s(\"%s\",%p)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_freebsd11_statfs, "freebsd11_statfs", "%s(\"%s\",%p)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_symlink, "symlink", "%s(\"%s\",\"%s\")", NULL, NULL },
|
{ TARGET_FREEBSD_NR_symlink, "symlink", "%s(\"%s\",\"%s\")", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_sync, "sync", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_sync, "sync", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_sysarch, "sysarch", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_sysarch, "sysarch", NULL, print_sysarch, NULL },
|
||||||
{ TARGET_FREEBSD_NR_syscall, "syscall", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_syscall, "syscall", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_ktimer_create, "timer_create" , NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_ktimer_delete, "timer_delete" , NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_ktimer_settime, "timer_settime" , NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_ktimer_gettime, "timer_gettime" , NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_ktimer_getoverrun, "timer_getoverrun" , NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_thr_create, "thr_create", "%s(%#x, %#x, %d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_thr_create, "thr_create", "%s(%#x, %#x, %d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_thr_exit, "thr_exit", "%s(%#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_thr_exit, "thr_exit", "%s(%#x)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_thr_kill, "thr_kill", "%s(%d, %#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_thr_kill, "thr_kill", "%s(%d, %#x)", NULL, NULL },
|
||||||
@ -225,7 +271,10 @@
|
|||||||
{ TARGET_FREEBSD_NR_unlink, "unlink", "%s(\"%s\")", NULL, NULL },
|
{ TARGET_FREEBSD_NR_unlink, "unlink", "%s(\"%s\")", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_unmount, "unmount", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_unmount, "unmount", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_utimes, "utimes", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_utimes, "utimes", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_utimensat, "utimensat", "%s(%d,%s,%p,%#x)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_vfork, "vfork", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_vfork, "vfork", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_wait4, "wait4", NULL, NULL, NULL },
|
{ TARGET_FREEBSD_NR_wait4, "wait4", NULL, NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_wait6, "wait6", NULL, NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_write, "write", "%s(%d,%#x,%d)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_write, "write", "%s(%d,%#x,%d)", NULL, NULL },
|
||||||
{ TARGET_FREEBSD_NR_writev, "writev", "%s(%d,%p,%#x)", NULL, NULL },
|
{ TARGET_FREEBSD_NR_writev, "writev", "%s(%d,%p,%#x)", NULL, NULL },
|
||||||
|
{ TARGET_FREEBSD_NR_posix_openpt, "posix_openpt", "%s(%d)", NULL, NULL },
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* System call numbers.
|
* System call numbers.
|
||||||
*
|
*
|
||||||
* created from FreeBSD: releng/9.1/sys/kern/syscalls.master 229723
|
* DO NOT EDIT-- this file is automatically @generated.
|
||||||
* 2012-01-06 19:29:16Z jhb
|
* $FreeBSD$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define TARGET_FREEBSD_NR_syscall 0
|
#define TARGET_FREEBSD_NR_syscall 0
|
||||||
#define TARGET_FREEBSD_NR_exit 1
|
#define TARGET_FREEBSD_NR_exit 1
|
||||||
#define TARGET_FREEBSD_NR_fork 2
|
#define TARGET_FREEBSD_NR_fork 2
|
||||||
#define TARGET_FREEBSD_NR_read 3
|
#define TARGET_FREEBSD_NR_read 3
|
||||||
@ -13,438 +13,503 @@
|
|||||||
#define TARGET_FREEBSD_NR_open 5
|
#define TARGET_FREEBSD_NR_open 5
|
||||||
#define TARGET_FREEBSD_NR_close 6
|
#define TARGET_FREEBSD_NR_close 6
|
||||||
#define TARGET_FREEBSD_NR_wait4 7
|
#define TARGET_FREEBSD_NR_wait4 7
|
||||||
/* 8 is old creat */
|
/* 8 is old creat */
|
||||||
#define TARGET_FREEBSD_NR_link 9
|
#define TARGET_FREEBSD_NR_link 9
|
||||||
#define TARGET_FREEBSD_NR_unlink 10
|
#define TARGET_FREEBSD_NR_unlink 10
|
||||||
/* 11 is obsolete execv */
|
/* 11 is obsolete execv */
|
||||||
#define TARGET_FREEBSD_NR_chdir 12
|
#define TARGET_FREEBSD_NR_chdir 12
|
||||||
#define TARGET_FREEBSD_NR_fchdir 13
|
#define TARGET_FREEBSD_NR_fchdir 13
|
||||||
#define TARGET_FREEBSD_NR_mknod 14
|
#define TARGET_FREEBSD_NR_freebsd11_mknod 14
|
||||||
#define TARGET_FREEBSD_NR_chmod 15
|
#define TARGET_FREEBSD_NR_chmod 15
|
||||||
#define TARGET_FREEBSD_NR_chown 16
|
#define TARGET_FREEBSD_NR_chown 16
|
||||||
#define TARGET_FREEBSD_NR_break 17
|
#define TARGET_FREEBSD_NR_break 17
|
||||||
#define TARGET_FREEBSD_NR_freebsd4_getfsstat 18
|
/* 18 is freebsd4 getfsstat */
|
||||||
/* 19 is old lseek */
|
/* 19 is old lseek */
|
||||||
#define TARGET_FREEBSD_NR_getpid 20
|
#define TARGET_FREEBSD_NR_getpid 20
|
||||||
#define TARGET_FREEBSD_NR_mount 21
|
#define TARGET_FREEBSD_NR_mount 21
|
||||||
#define TARGET_FREEBSD_NR_unmount 22
|
#define TARGET_FREEBSD_NR_unmount 22
|
||||||
#define TARGET_FREEBSD_NR_setuid 23
|
#define TARGET_FREEBSD_NR_setuid 23
|
||||||
#define TARGET_FREEBSD_NR_getuid 24
|
#define TARGET_FREEBSD_NR_getuid 24
|
||||||
#define TARGET_FREEBSD_NR_geteuid 25
|
#define TARGET_FREEBSD_NR_geteuid 25
|
||||||
#define TARGET_FREEBSD_NR_ptrace 26
|
#define TARGET_FREEBSD_NR_ptrace 26
|
||||||
#define TARGET_FREEBSD_NR_recvmsg 27
|
#define TARGET_FREEBSD_NR_recvmsg 27
|
||||||
#define TARGET_FREEBSD_NR_sendmsg 28
|
#define TARGET_FREEBSD_NR_sendmsg 28
|
||||||
#define TARGET_FREEBSD_NR_recvfrom 29
|
#define TARGET_FREEBSD_NR_recvfrom 29
|
||||||
#define TARGET_FREEBSD_NR_accept 30
|
#define TARGET_FREEBSD_NR_accept 30
|
||||||
#define TARGET_FREEBSD_NR_getpeername 31
|
#define TARGET_FREEBSD_NR_getpeername 31
|
||||||
#define TARGET_FREEBSD_NR_getsockname 32
|
#define TARGET_FREEBSD_NR_getsockname 32
|
||||||
#define TARGET_FREEBSD_NR_access 33
|
#define TARGET_FREEBSD_NR_access 33
|
||||||
#define TARGET_FREEBSD_NR_chflags 34
|
#define TARGET_FREEBSD_NR_chflags 34
|
||||||
#define TARGET_FREEBSD_NR_fchflags 35
|
#define TARGET_FREEBSD_NR_fchflags 35
|
||||||
#define TARGET_FREEBSD_NR_sync 36
|
#define TARGET_FREEBSD_NR_sync 36
|
||||||
#define TARGET_FREEBSD_NR_kill 37
|
#define TARGET_FREEBSD_NR_kill 37
|
||||||
/* 38 is old stat */
|
/* 38 is old stat */
|
||||||
#define TARGET_FREEBSD_NR_getppid 39
|
#define TARGET_FREEBSD_NR_getppid 39
|
||||||
/* 40 is old lstat */
|
/* 40 is old lstat */
|
||||||
#define TARGET_FREEBSD_NR_dup 41
|
#define TARGET_FREEBSD_NR_dup 41
|
||||||
#define TARGET_FREEBSD_NR_pipe 42
|
#define TARGET_FREEBSD_NR_freebsd10_pipe 42
|
||||||
#define TARGET_FREEBSD_NR_getegid 43
|
#define TARGET_FREEBSD_NR_getegid 43
|
||||||
#define TARGET_FREEBSD_NR_profil 44
|
#define TARGET_FREEBSD_NR_profil 44
|
||||||
#define TARGET_FREEBSD_NR_ktrace 45
|
#define TARGET_FREEBSD_NR_ktrace 45
|
||||||
/* 46 is old sigaction */
|
/* 46 is old sigaction */
|
||||||
#define TARGET_FREEBSD_NR_getgid 47
|
#define TARGET_FREEBSD_NR_getgid 47
|
||||||
/* 48 is old sigprocmask */
|
/* 48 is old sigprocmask */
|
||||||
#define TARGET_FREEBSD_NR_getlogin 49
|
#define TARGET_FREEBSD_NR_getlogin 49
|
||||||
#define TARGET_FREEBSD_NR_setlogin 50
|
#define TARGET_FREEBSD_NR_setlogin 50
|
||||||
#define TARGET_FREEBSD_NR_acct 51
|
#define TARGET_FREEBSD_NR_acct 51
|
||||||
/* 52 is old sigpending */
|
/* 52 is old sigpending */
|
||||||
#define TARGET_FREEBSD_NR_sigaltstack 53
|
#define TARGET_FREEBSD_NR_sigaltstack 53
|
||||||
#define TARGET_FREEBSD_NR_ioctl 54
|
#define TARGET_FREEBSD_NR_ioctl 54
|
||||||
#define TARGET_FREEBSD_NR_reboot 55
|
#define TARGET_FREEBSD_NR_reboot 55
|
||||||
#define TARGET_FREEBSD_NR_revoke 56
|
#define TARGET_FREEBSD_NR_revoke 56
|
||||||
#define TARGET_FREEBSD_NR_symlink 57
|
#define TARGET_FREEBSD_NR_symlink 57
|
||||||
#define TARGET_FREEBSD_NR_readlink 58
|
#define TARGET_FREEBSD_NR_readlink 58
|
||||||
#define TARGET_FREEBSD_NR_execve 59
|
#define TARGET_FREEBSD_NR_execve 59
|
||||||
#define TARGET_FREEBSD_NR_umask 60
|
#define TARGET_FREEBSD_NR_umask 60
|
||||||
#define TARGET_FREEBSD_NR_chroot 61
|
#define TARGET_FREEBSD_NR_chroot 61
|
||||||
/* 62 is old fstat */
|
/* 62 is old fstat */
|
||||||
/* 63 is old getkerninfo */
|
/* 63 is old getkerninfo */
|
||||||
/* 64 is old getpagesize */
|
/* 64 is old getpagesize */
|
||||||
#define TARGET_FREEBSD_NR_msync 65
|
#define TARGET_FREEBSD_NR_msync 65
|
||||||
#define TARGET_FREEBSD_NR_vfork 66
|
#define TARGET_FREEBSD_NR_vfork 66
|
||||||
/* 67 is obsolete vread */
|
/* 67 is obsolete vread */
|
||||||
/* 68 is obsolete vwrite */
|
/* 68 is obsolete vwrite */
|
||||||
#define TARGET_FREEBSD_NR_sbrk 69
|
#define TARGET_FREEBSD_NR_sbrk 69
|
||||||
#define TARGET_FREEBSD_NR_sstk 70
|
#define TARGET_FREEBSD_NR_sstk 70
|
||||||
/* 71 is old mmap */
|
/* 71 is old mmap */
|
||||||
#define TARGET_FREEBSD_NR_vadvise 72
|
#define TARGET_FREEBSD_NR_freebsd11_vadvise 72
|
||||||
#define TARGET_FREEBSD_NR_munmap 73
|
#define TARGET_FREEBSD_NR_munmap 73
|
||||||
#define TARGET_FREEBSD_NR_mprotect 74
|
#define TARGET_FREEBSD_NR_mprotect 74
|
||||||
#define TARGET_FREEBSD_NR_madvise 75
|
#define TARGET_FREEBSD_NR_madvise 75
|
||||||
/* 76 is obsolete vhangup */
|
/* 76 is obsolete vhangup */
|
||||||
/* 77 is obsolete vlimit */
|
/* 77 is obsolete vlimit */
|
||||||
#define TARGET_FREEBSD_NR_mincore 78
|
#define TARGET_FREEBSD_NR_mincore 78
|
||||||
#define TARGET_FREEBSD_NR_getgroups 79
|
#define TARGET_FREEBSD_NR_getgroups 79
|
||||||
#define TARGET_FREEBSD_NR_setgroups 80
|
#define TARGET_FREEBSD_NR_setgroups 80
|
||||||
#define TARGET_FREEBSD_NR_getpgrp 81
|
#define TARGET_FREEBSD_NR_getpgrp 81
|
||||||
#define TARGET_FREEBSD_NR_setpgid 82
|
#define TARGET_FREEBSD_NR_setpgid 82
|
||||||
#define TARGET_FREEBSD_NR_setitimer 83
|
#define TARGET_FREEBSD_NR_setitimer 83
|
||||||
/* 84 is old wait */
|
/* 84 is old wait */
|
||||||
#define TARGET_FREEBSD_NR_swapon 85
|
#define TARGET_FREEBSD_NR_swapon 85
|
||||||
#define TARGET_FREEBSD_NR_getitimer 86
|
#define TARGET_FREEBSD_NR_getitimer 86
|
||||||
/* 87 is old gethostname */
|
/* 87 is old gethostname */
|
||||||
/* 88 is old sethostname */
|
/* 88 is old sethostname */
|
||||||
#define TARGET_FREEBSD_NR_getdtablesize 89
|
#define TARGET_FREEBSD_NR_getdtablesize 89
|
||||||
#define TARGET_FREEBSD_NR_dup2 90
|
#define TARGET_FREEBSD_NR_dup2 90
|
||||||
#define TARGET_FREEBSD_NR_fcntl 92
|
#define TARGET_FREEBSD_NR_fcntl 92
|
||||||
#define TARGET_FREEBSD_NR_select 93
|
#define TARGET_FREEBSD_NR_select 93
|
||||||
#define TARGET_FREEBSD_NR_fsync 95
|
#define TARGET_FREEBSD_NR_fsync 95
|
||||||
#define TARGET_FREEBSD_NR_setpriority 96
|
#define TARGET_FREEBSD_NR_setpriority 96
|
||||||
#define TARGET_FREEBSD_NR_socket 97
|
#define TARGET_FREEBSD_NR_socket 97
|
||||||
#define TARGET_FREEBSD_NR_connect 98
|
#define TARGET_FREEBSD_NR_connect 98
|
||||||
/* 99 is old accept */
|
/* 99 is old accept */
|
||||||
#define TARGET_FREEBSD_NR_getpriority 100
|
#define TARGET_FREEBSD_NR_getpriority 100
|
||||||
/* 101 is old send */
|
/* 101 is old send */
|
||||||
/* 102 is old recv */
|
/* 102 is old recv */
|
||||||
/* 103 is old sigreturn */
|
/* 103 is old sigreturn */
|
||||||
#define TARGET_FREEBSD_NR_bind 104
|
#define TARGET_FREEBSD_NR_bind 104
|
||||||
#define TARGET_FREEBSD_NR_setsockopt 105
|
#define TARGET_FREEBSD_NR_setsockopt 105
|
||||||
#define TARGET_FREEBSD_NR_listen 106
|
#define TARGET_FREEBSD_NR_listen 106
|
||||||
/* 107 is obsolete vtimes */
|
/* 107 is obsolete vtimes */
|
||||||
/* 108 is old sigvec */
|
/* 108 is old sigvec */
|
||||||
/* 109 is old sigblock */
|
/* 109 is old sigblock */
|
||||||
/* 110 is old sigsetmask */
|
/* 110 is old sigsetmask */
|
||||||
/* 111 is old sigsuspend */
|
/* 111 is old sigsuspend */
|
||||||
/* 112 is old sigstack */
|
/* 112 is old sigstack */
|
||||||
/* 113 is old recvmsg */
|
/* 113 is old recvmsg */
|
||||||
/* 114 is old sendmsg */
|
/* 114 is old sendmsg */
|
||||||
/* 115 is obsolete vtrace */
|
/* 115 is obsolete vtrace */
|
||||||
#define TARGET_FREEBSD_NR_gettimeofday 116
|
#define TARGET_FREEBSD_NR_gettimeofday 116
|
||||||
#define TARGET_FREEBSD_NR_getrusage 117
|
#define TARGET_FREEBSD_NR_getrusage 117
|
||||||
#define TARGET_FREEBSD_NR_getsockopt 118
|
#define TARGET_FREEBSD_NR_getsockopt 118
|
||||||
#define TARGET_FREEBSD_NR_readv 120
|
#define TARGET_FREEBSD_NR_readv 120
|
||||||
#define TARGET_FREEBSD_NR_writev 121
|
#define TARGET_FREEBSD_NR_writev 121
|
||||||
#define TARGET_FREEBSD_NR_settimeofday 122
|
#define TARGET_FREEBSD_NR_settimeofday 122
|
||||||
#define TARGET_FREEBSD_NR_fchown 123
|
#define TARGET_FREEBSD_NR_fchown 123
|
||||||
#define TARGET_FREEBSD_NR_fchmod 124
|
#define TARGET_FREEBSD_NR_fchmod 124
|
||||||
/* 125 is old recvfrom */
|
/* 125 is old recvfrom */
|
||||||
#define TARGET_FREEBSD_NR_setreuid 126
|
#define TARGET_FREEBSD_NR_setreuid 126
|
||||||
#define TARGET_FREEBSD_NR_setregid 127
|
#define TARGET_FREEBSD_NR_setregid 127
|
||||||
#define TARGET_FREEBSD_NR_rename 128
|
#define TARGET_FREEBSD_NR_rename 128
|
||||||
/* 129 is old truncate */
|
/* 129 is old truncate */
|
||||||
/* 130 is old ftruncate */
|
/* 130 is old ftruncate */
|
||||||
#define TARGET_FREEBSD_NR_flock 131
|
#define TARGET_FREEBSD_NR_flock 131
|
||||||
#define TARGET_FREEBSD_NR_mkfifo 132
|
#define TARGET_FREEBSD_NR_mkfifo 132
|
||||||
#define TARGET_FREEBSD_NR_sendto 133
|
#define TARGET_FREEBSD_NR_sendto 133
|
||||||
#define TARGET_FREEBSD_NR_shutdown 134
|
#define TARGET_FREEBSD_NR_shutdown 134
|
||||||
#define TARGET_FREEBSD_NR_socketpair 135
|
#define TARGET_FREEBSD_NR_socketpair 135
|
||||||
#define TARGET_FREEBSD_NR_mkdir 136
|
#define TARGET_FREEBSD_NR_mkdir 136
|
||||||
#define TARGET_FREEBSD_NR_rmdir 137
|
#define TARGET_FREEBSD_NR_rmdir 137
|
||||||
#define TARGET_FREEBSD_NR_utimes 138
|
#define TARGET_FREEBSD_NR_utimes 138
|
||||||
/* 139 is obsolete 4.2 sigreturn */
|
/* 139 is obsolete 4.2 sigreturn */
|
||||||
#define TARGET_FREEBSD_NR_adjtime 140
|
#define TARGET_FREEBSD_NR_adjtime 140
|
||||||
/* 141 is old getpeername */
|
/* 141 is old getpeername */
|
||||||
/* 142 is old gethostid */
|
/* 142 is old gethostid */
|
||||||
/* 143 is old sethostid */
|
/* 143 is old sethostid */
|
||||||
/* 144 is old getrlimit */
|
/* 144 is old getrlimit */
|
||||||
/* 145 is old setrlimit */
|
/* 145 is old setrlimit */
|
||||||
/* 146 is old killpg */
|
/* 146 is old killpg */
|
||||||
#define TARGET_FREEBSD_NR_killpg 146 /* COMPAT */
|
#define TARGET_FREEBSD_NR_setsid 147
|
||||||
#define TARGET_FREEBSD_NR_setsid 147
|
#define TARGET_FREEBSD_NR_quotactl 148
|
||||||
#define TARGET_FREEBSD_NR_quotactl 148
|
/* 149 is old quota */
|
||||||
/* 149 is old quota */
|
/* 150 is old getsockname */
|
||||||
/* 150 is old getsockname */
|
|
||||||
#define TARGET_FREEBSD_NR_nlm_syscall 154
|
#define TARGET_FREEBSD_NR_nlm_syscall 154
|
||||||
#define TARGET_FREEBSD_NR_nfssvc 155
|
#define TARGET_FREEBSD_NR_nfssvc 155
|
||||||
/* 156 is old getdirentries */
|
/* 156 is old getdirentries */
|
||||||
#define TARGET_FREEBSD_NR_freebsd4_statfs 157
|
/* 157 is freebsd4 statfs */
|
||||||
#define TARGET_FREEBSD_NR_freebsd4_fstatfs 158
|
/* 158 is freebsd4 fstatfs */
|
||||||
#define TARGET_FREEBSD_NR_lgetfh 160
|
#define TARGET_FREEBSD_NR_lgetfh 160
|
||||||
#define TARGET_FREEBSD_NR_getfh 161
|
#define TARGET_FREEBSD_NR_getfh 161
|
||||||
#define TARGET_FREEBSD_NR_freebsd4_getdomainname 162
|
/* 162 is freebsd4 getdomainname */
|
||||||
#define TARGET_FREEBSD_NR_freebsd4_setdomainname 163
|
/* 163 is freebsd4 setdomainname */
|
||||||
#define TARGET_FREEBSD_NR_freebsd4_uname 164
|
/* 164 is freebsd4 uname */
|
||||||
#define TARGET_FREEBSD_NR_sysarch 165
|
#define TARGET_FREEBSD_NR_sysarch 165
|
||||||
#define TARGET_FREEBSD_NR_rtprio 166
|
#define TARGET_FREEBSD_NR_rtprio 166
|
||||||
#define TARGET_FREEBSD_NR_semsys 169
|
#define TARGET_FREEBSD_NR_semsys 169
|
||||||
#define TARGET_FREEBSD_NR_msgsys 170
|
#define TARGET_FREEBSD_NR_msgsys 170
|
||||||
#define TARGET_FREEBSD_NR_shmsys 171
|
#define TARGET_FREEBSD_NR_shmsys 171
|
||||||
#define TARGET_FREEBSD_NR_freebsd6_pread 173
|
/* 173 is freebsd6 pread */
|
||||||
#define TARGET_FREEBSD_NR_freebsd6_pwrite 174
|
/* 174 is freebsd6 pwrite */
|
||||||
#define TARGET_FREEBSD_NR_setfib 175
|
#define TARGET_FREEBSD_NR_setfib 175
|
||||||
#define TARGET_FREEBSD_NR_ntp_adjtime 176
|
#define TARGET_FREEBSD_NR_ntp_adjtime 176
|
||||||
#define TARGET_FREEBSD_NR_setgid 181
|
#define TARGET_FREEBSD_NR_setgid 181
|
||||||
#define TARGET_FREEBSD_NR_setegid 182
|
#define TARGET_FREEBSD_NR_setegid 182
|
||||||
#define TARGET_FREEBSD_NR_seteuid 183
|
#define TARGET_FREEBSD_NR_seteuid 183
|
||||||
#define TARGET_FREEBSD_NR_stat 188
|
/* 184 is obsolete lfs_bmapv */
|
||||||
#define TARGET_FREEBSD_NR_fstat 189
|
/* 185 is obsolete lfs_markv */
|
||||||
#define TARGET_FREEBSD_NR_lstat 190
|
/* 186 is obsolete lfs_segclean */
|
||||||
#define TARGET_FREEBSD_NR_pathconf 191
|
/* 187 is obsolete lfs_segwait */
|
||||||
#define TARGET_FREEBSD_NR_fpathconf 192
|
#define TARGET_FREEBSD_NR_freebsd11_stat 188
|
||||||
#define TARGET_FREEBSD_NR_getrlimit 194
|
#define TARGET_FREEBSD_NR_freebsd11_fstat 189
|
||||||
#define TARGET_FREEBSD_NR_setrlimit 195
|
#define TARGET_FREEBSD_NR_freebsd11_lstat 190
|
||||||
#define TARGET_FREEBSD_NR_getdirentries 196
|
#define TARGET_FREEBSD_NR_pathconf 191
|
||||||
#define TARGET_FREEBSD_NR_freebsd6_mmap 197
|
#define TARGET_FREEBSD_NR_fpathconf 192
|
||||||
#define TARGET_FREEBSD_NR___syscall 198
|
#define TARGET_FREEBSD_NR_getrlimit 194
|
||||||
#define TARGET_FREEBSD_NR_freebsd6_lseek 199
|
#define TARGET_FREEBSD_NR_setrlimit 195
|
||||||
#define TARGET_FREEBSD_NR_freebsd6_truncate 200
|
#define TARGET_FREEBSD_NR_freebsd11_getdirentries 196
|
||||||
#define TARGET_FREEBSD_NR_freebsd6_ftruncate 201
|
/* 197 is freebsd6 mmap */
|
||||||
#define TARGET_FREEBSD_NR___sysctl 202
|
#define TARGET_FREEBSD_NR___syscall 198
|
||||||
|
/* 199 is freebsd6 lseek */
|
||||||
|
/* 200 is freebsd6 truncate */
|
||||||
|
/* 201 is freebsd6 ftruncate */
|
||||||
|
#define TARGET_FREEBSD_NR___sysctl 202
|
||||||
#define TARGET_FREEBSD_NR_mlock 203
|
#define TARGET_FREEBSD_NR_mlock 203
|
||||||
#define TARGET_FREEBSD_NR_munlock 204
|
#define TARGET_FREEBSD_NR_munlock 204
|
||||||
#define TARGET_FREEBSD_NR_undelete 205
|
#define TARGET_FREEBSD_NR_undelete 205
|
||||||
#define TARGET_FREEBSD_NR_futimes 206
|
#define TARGET_FREEBSD_NR_futimes 206
|
||||||
#define TARGET_FREEBSD_NR_getpgid 207
|
#define TARGET_FREEBSD_NR_getpgid 207
|
||||||
#define TARGET_FREEBSD_NR_poll 209
|
#define TARGET_FREEBSD_NR_poll 209
|
||||||
#define TARGET_FREEBSD_NR_freebsd7___semctl 220
|
#define TARGET_FREEBSD_NR_freebsd7___semctl 220
|
||||||
#define TARGET_FREEBSD_NR_semget 221
|
#define TARGET_FREEBSD_NR_semget 221
|
||||||
#define TARGET_FREEBSD_NR_semop 222
|
#define TARGET_FREEBSD_NR_semop 222
|
||||||
#define TARGET_FREEBSD_NR_freebsd7_msgctl 224
|
/* 223 is obsolete semconfig */
|
||||||
#define TARGET_FREEBSD_NR_msgget 225
|
#define TARGET_FREEBSD_NR_freebsd7_msgctl 224
|
||||||
#define TARGET_FREEBSD_NR_msgsnd 226
|
#define TARGET_FREEBSD_NR_msgget 225
|
||||||
#define TARGET_FREEBSD_NR_msgrcv 227
|
#define TARGET_FREEBSD_NR_msgsnd 226
|
||||||
|
#define TARGET_FREEBSD_NR_msgrcv 227
|
||||||
#define TARGET_FREEBSD_NR_shmat 228
|
#define TARGET_FREEBSD_NR_shmat 228
|
||||||
#define TARGET_FREEBSD_NR_freebsd7_shmctl 229
|
#define TARGET_FREEBSD_NR_freebsd7_shmctl 229
|
||||||
#define TARGET_FREEBSD_NR_shmdt 230
|
#define TARGET_FREEBSD_NR_shmdt 230
|
||||||
#define TARGET_FREEBSD_NR_shmget 231
|
#define TARGET_FREEBSD_NR_shmget 231
|
||||||
#define TARGET_FREEBSD_NR_clock_gettime 232
|
#define TARGET_FREEBSD_NR_clock_gettime 232
|
||||||
#define TARGET_FREEBSD_NR_clock_settime 233
|
#define TARGET_FREEBSD_NR_clock_settime 233
|
||||||
#define TARGET_FREEBSD_NR_clock_getres 234
|
#define TARGET_FREEBSD_NR_clock_getres 234
|
||||||
#define TARGET_FREEBSD_NR_ktimer_create 235
|
#define TARGET_FREEBSD_NR_ktimer_create 235
|
||||||
#define TARGET_FREEBSD_NR_ktimer_delete 236
|
#define TARGET_FREEBSD_NR_ktimer_delete 236
|
||||||
#define TARGET_FREEBSD_NR_ktimer_settime 237
|
#define TARGET_FREEBSD_NR_ktimer_settime 237
|
||||||
#define TARGET_FREEBSD_NR_ktimer_gettime 238
|
#define TARGET_FREEBSD_NR_ktimer_gettime 238
|
||||||
#define TARGET_FREEBSD_NR_ktimer_getoverrun 239
|
#define TARGET_FREEBSD_NR_ktimer_getoverrun 239
|
||||||
#define TARGET_FREEBSD_NR_nanosleep 240
|
#define TARGET_FREEBSD_NR_nanosleep 240
|
||||||
|
#define TARGET_FREEBSD_NR_ffclock_getcounter 241
|
||||||
|
#define TARGET_FREEBSD_NR_ffclock_setestimate 242
|
||||||
|
#define TARGET_FREEBSD_NR_ffclock_getestimate 243
|
||||||
|
#define TARGET_FREEBSD_NR_clock_nanosleep 244
|
||||||
|
#define TARGET_FREEBSD_NR_clock_getcpuclockid2 247
|
||||||
#define TARGET_FREEBSD_NR_ntp_gettime 248
|
#define TARGET_FREEBSD_NR_ntp_gettime 248
|
||||||
#define TARGET_FREEBSD_NR_minherit 250
|
#define TARGET_FREEBSD_NR_minherit 250
|
||||||
#define TARGET_FREEBSD_NR_rfork 251
|
#define TARGET_FREEBSD_NR_rfork 251
|
||||||
#define TARGET_FREEBSD_NR_openbsd_poll 252
|
/* 252 is obsolete openbsd_poll */
|
||||||
#define TARGET_FREEBSD_NR_issetugid 253
|
#define TARGET_FREEBSD_NR_issetugid 253
|
||||||
#define TARGET_FREEBSD_NR_lchown 254
|
#define TARGET_FREEBSD_NR_lchown 254
|
||||||
#define TARGET_FREEBSD_NR_aio_read 255
|
#define TARGET_FREEBSD_NR_aio_read 255
|
||||||
#define TARGET_FREEBSD_NR_aio_write 256
|
#define TARGET_FREEBSD_NR_aio_write 256
|
||||||
#define TARGET_FREEBSD_NR_lio_listio 257
|
#define TARGET_FREEBSD_NR_lio_listio 257
|
||||||
#define TARGET_FREEBSD_NR_getdents 272
|
#define TARGET_FREEBSD_NR_freebsd11_getdents 272
|
||||||
#define TARGET_FREEBSD_NR_lchmod 274
|
#define TARGET_FREEBSD_NR_lchmod 274
|
||||||
#define TARGET_FREEBSD_NR_netbsd_lchown 275
|
/* 275 is obsolete netbsd_lchown */
|
||||||
#define TARGET_FREEBSD_NR_lutimes 276
|
#define TARGET_FREEBSD_NR_lutimes 276
|
||||||
#define TARGET_FREEBSD_NR_netbsd_msync 277
|
/* 277 is obsolete netbsd_msync */
|
||||||
#define TARGET_FREEBSD_NR_nstat 278
|
#define TARGET_FREEBSD_NR_freebsd11_nstat 278
|
||||||
#define TARGET_FREEBSD_NR_nfstat 279
|
#define TARGET_FREEBSD_NR_freebsd11_nfstat 279
|
||||||
#define TARGET_FREEBSD_NR_nlstat 280
|
#define TARGET_FREEBSD_NR_freebsd11_nlstat 280
|
||||||
#define TARGET_FREEBSD_NR_preadv 289
|
#define TARGET_FREEBSD_NR_preadv 289
|
||||||
#define TARGET_FREEBSD_NR_pwritev 290
|
#define TARGET_FREEBSD_NR_pwritev 290
|
||||||
#define TARGET_FREEBSD_NR_freebsd4_fhstatfs 297
|
/* 297 is freebsd4 fhstatfs */
|
||||||
#define TARGET_FREEBSD_NR_fhopen 298
|
#define TARGET_FREEBSD_NR_fhopen 298
|
||||||
#define TARGET_FREEBSD_NR_fhstat 299
|
#define TARGET_FREEBSD_NR_freebsd11_fhstat 299
|
||||||
#define TARGET_FREEBSD_NR_modnext 300
|
#define TARGET_FREEBSD_NR_modnext 300
|
||||||
#define TARGET_FREEBSD_NR_modstat 301
|
#define TARGET_FREEBSD_NR_modstat 301
|
||||||
#define TARGET_FREEBSD_NR_modfnext 302
|
#define TARGET_FREEBSD_NR_modfnext 302
|
||||||
#define TARGET_FREEBSD_NR_modfind 303
|
#define TARGET_FREEBSD_NR_modfind 303
|
||||||
#define TARGET_FREEBSD_NR_kldload 304
|
#define TARGET_FREEBSD_NR_kldload 304
|
||||||
#define TARGET_FREEBSD_NR_kldunload 305
|
#define TARGET_FREEBSD_NR_kldunload 305
|
||||||
#define TARGET_FREEBSD_NR_kldfind 306
|
#define TARGET_FREEBSD_NR_kldfind 306
|
||||||
#define TARGET_FREEBSD_NR_kldnext 307
|
#define TARGET_FREEBSD_NR_kldnext 307
|
||||||
#define TARGET_FREEBSD_NR_kldstat 308
|
#define TARGET_FREEBSD_NR_kldstat 308
|
||||||
#define TARGET_FREEBSD_NR_kldfirstmod 309
|
#define TARGET_FREEBSD_NR_kldfirstmod 309
|
||||||
#define TARGET_FREEBSD_NR_getsid 310
|
#define TARGET_FREEBSD_NR_getsid 310
|
||||||
#define TARGET_FREEBSD_NR_setresuid 311
|
#define TARGET_FREEBSD_NR_setresuid 311
|
||||||
#define TARGET_FREEBSD_NR_setresgid 312
|
#define TARGET_FREEBSD_NR_setresgid 312
|
||||||
/* 313 is obsolete signanosleep */
|
/* 313 is obsolete signanosleep */
|
||||||
#define TARGET_FREEBSD_NR_aio_return 314
|
#define TARGET_FREEBSD_NR_aio_return 314
|
||||||
#define TARGET_FREEBSD_NR_aio_suspend 315
|
#define TARGET_FREEBSD_NR_aio_suspend 315
|
||||||
#define TARGET_FREEBSD_NR_aio_cancel 316
|
#define TARGET_FREEBSD_NR_aio_cancel 316
|
||||||
#define TARGET_FREEBSD_NR_aio_error 317
|
#define TARGET_FREEBSD_NR_aio_error 317
|
||||||
#define TARGET_FREEBSD_NR_oaio_read 318
|
/* 318 is freebsd6 aio_read */
|
||||||
#define TARGET_FREEBSD_NR_oaio_write 319
|
/* 319 is freebsd6 aio_write */
|
||||||
#define TARGET_FREEBSD_NR_olio_listio 320
|
/* 320 is freebsd6 lio_listio */
|
||||||
#define TARGET_FREEBSD_NR_yield 321
|
#define TARGET_FREEBSD_NR_yield 321
|
||||||
/* 322 is obsolete thr_sleep */
|
/* 322 is obsolete thr_sleep */
|
||||||
/* 323 is obsolete thr_wakeup */
|
/* 323 is obsolete thr_wakeup */
|
||||||
#define TARGET_FREEBSD_NR_mlockall 324
|
#define TARGET_FREEBSD_NR_mlockall 324
|
||||||
#define TARGET_FREEBSD_NR_munlockall 325
|
#define TARGET_FREEBSD_NR_munlockall 325
|
||||||
#define TARGET_FREEBSD_NR___getcwd 326
|
#define TARGET_FREEBSD_NR___getcwd 326
|
||||||
#define TARGET_FREEBSD_NR_sched_setparam 327
|
#define TARGET_FREEBSD_NR_sched_setparam 327
|
||||||
#define TARGET_FREEBSD_NR_sched_getparam 328
|
#define TARGET_FREEBSD_NR_sched_getparam 328
|
||||||
#define TARGET_FREEBSD_NR_sched_setscheduler 329
|
#define TARGET_FREEBSD_NR_sched_setscheduler 329
|
||||||
#define TARGET_FREEBSD_NR_sched_getscheduler 330
|
#define TARGET_FREEBSD_NR_sched_getscheduler 330
|
||||||
#define TARGET_FREEBSD_NR_sched_yield 331
|
#define TARGET_FREEBSD_NR_sched_yield 331
|
||||||
#define TARGET_FREEBSD_NR_sched_get_priority_max 332
|
#define TARGET_FREEBSD_NR_sched_get_priority_max 332
|
||||||
#define TARGET_FREEBSD_NR_sched_get_priority_min 333
|
#define TARGET_FREEBSD_NR_sched_get_priority_min 333
|
||||||
#define TARGET_FREEBSD_NR_sched_rr_get_interval 334
|
#define TARGET_FREEBSD_NR_sched_rr_get_interval 334
|
||||||
#define TARGET_FREEBSD_NR_utrace 335
|
#define TARGET_FREEBSD_NR_utrace 335
|
||||||
#define TARGET_FREEBSD_NR_freebsd4_sendfile 336
|
/* 336 is freebsd4 sendfile */
|
||||||
#define TARGET_FREEBSD_NR_kldsym 337
|
#define TARGET_FREEBSD_NR_kldsym 337
|
||||||
#define TARGET_FREEBSD_NR_jail 338
|
#define TARGET_FREEBSD_NR_jail 338
|
||||||
#define TARGET_FREEBSD_NR_nnpfs_syscall 339
|
#define TARGET_FREEBSD_NR_nnpfs_syscall 339
|
||||||
#define TARGET_FREEBSD_NR_sigprocmask 340
|
#define TARGET_FREEBSD_NR_sigprocmask 340
|
||||||
#define TARGET_FREEBSD_NR_sigsuspend 341
|
#define TARGET_FREEBSD_NR_sigsuspend 341
|
||||||
#define TARGET_FREEBSD_NR_freebsd4_sigaction 342
|
/* 342 is freebsd4 sigaction */
|
||||||
#define TARGET_FREEBSD_NR_sigpending 343
|
#define TARGET_FREEBSD_NR_sigpending 343
|
||||||
#define TARGET_FREEBSD_NR_freebsd4_sigreturn 344
|
/* 344 is freebsd4 sigreturn */
|
||||||
#define TARGET_FREEBSD_NR_sigtimedwait 345
|
#define TARGET_FREEBSD_NR_sigtimedwait 345
|
||||||
#define TARGET_FREEBSD_NR_sigwaitinfo 346
|
#define TARGET_FREEBSD_NR_sigwaitinfo 346
|
||||||
#define TARGET_FREEBSD_NR___acl_get_file 347
|
#define TARGET_FREEBSD_NR___acl_get_file 347
|
||||||
#define TARGET_FREEBSD_NR___acl_set_file 348
|
#define TARGET_FREEBSD_NR___acl_set_file 348
|
||||||
#define TARGET_FREEBSD_NR___acl_get_fd 349
|
#define TARGET_FREEBSD_NR___acl_get_fd 349
|
||||||
#define TARGET_FREEBSD_NR___acl_set_fd 350
|
#define TARGET_FREEBSD_NR___acl_set_fd 350
|
||||||
#define TARGET_FREEBSD_NR___acl_delete_file 351
|
#define TARGET_FREEBSD_NR___acl_delete_file 351
|
||||||
#define TARGET_FREEBSD_NR___acl_delete_fd 352
|
#define TARGET_FREEBSD_NR___acl_delete_fd 352
|
||||||
#define TARGET_FREEBSD_NR___acl_aclcheck_file 353
|
#define TARGET_FREEBSD_NR___acl_aclcheck_file 353
|
||||||
#define TARGET_FREEBSD_NR___acl_aclcheck_fd 354
|
#define TARGET_FREEBSD_NR___acl_aclcheck_fd 354
|
||||||
#define TARGET_FREEBSD_NR_extattrctl 355
|
#define TARGET_FREEBSD_NR_extattrctl 355
|
||||||
#define TARGET_FREEBSD_NR_extattr_set_file 356
|
#define TARGET_FREEBSD_NR_extattr_set_file 356
|
||||||
#define TARGET_FREEBSD_NR_extattr_get_file 357
|
#define TARGET_FREEBSD_NR_extattr_get_file 357
|
||||||
#define TARGET_FREEBSD_NR_extattr_delete_file 358
|
#define TARGET_FREEBSD_NR_extattr_delete_file 358
|
||||||
#define TARGET_FREEBSD_NR_aio_waitcomplete 359
|
#define TARGET_FREEBSD_NR_aio_waitcomplete 359
|
||||||
#define TARGET_FREEBSD_NR_getresuid 360
|
#define TARGET_FREEBSD_NR_getresuid 360
|
||||||
#define TARGET_FREEBSD_NR_getresgid 361
|
#define TARGET_FREEBSD_NR_getresgid 361
|
||||||
#define TARGET_FREEBSD_NR_kqueue 362
|
#define TARGET_FREEBSD_NR_kqueue 362
|
||||||
#define TARGET_FREEBSD_NR_kevent 363
|
#define TARGET_FREEBSD_NR_freebsd11_kevent 363
|
||||||
#define TARGET_FREEBSD_NR_extattr_set_fd 371
|
/* 364 is obsolete __cap_get_proc */
|
||||||
#define TARGET_FREEBSD_NR_extattr_get_fd 372
|
/* 365 is obsolete __cap_set_proc */
|
||||||
#define TARGET_FREEBSD_NR_extattr_delete_fd 373
|
/* 366 is obsolete __cap_get_fd */
|
||||||
#define TARGET_FREEBSD_NR___setugid 374
|
/* 367 is obsolete __cap_get_file */
|
||||||
#define TARGET_FREEBSD_NR_eaccess 376
|
/* 368 is obsolete __cap_set_fd */
|
||||||
|
/* 369 is obsolete __cap_set_file */
|
||||||
|
#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
|
||||||
|
/* 375 is obsolete nfsclnt */
|
||||||
|
#define TARGET_FREEBSD_NR_eaccess 376
|
||||||
#define TARGET_FREEBSD_NR_afs3_syscall 377
|
#define TARGET_FREEBSD_NR_afs3_syscall 377
|
||||||
#define TARGET_FREEBSD_NR_nmount 378
|
#define TARGET_FREEBSD_NR_nmount 378
|
||||||
#define TARGET_FREEBSD_NR___mac_get_proc 384
|
/* 379 is obsolete kse_exit */
|
||||||
#define TARGET_FREEBSD_NR___mac_set_proc 385
|
/* 380 is obsolete kse_wakeup */
|
||||||
|
/* 381 is obsolete kse_create */
|
||||||
|
/* 382 is obsolete kse_thr_interrupt */
|
||||||
|
/* 383 is obsolete kse_release */
|
||||||
|
#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_fd 386
|
||||||
#define TARGET_FREEBSD_NR___mac_get_file 387
|
#define TARGET_FREEBSD_NR___mac_get_file 387
|
||||||
#define TARGET_FREEBSD_NR___mac_set_fd 388
|
#define TARGET_FREEBSD_NR___mac_set_fd 388
|
||||||
#define TARGET_FREEBSD_NR___mac_set_file 389
|
#define TARGET_FREEBSD_NR___mac_set_file 389
|
||||||
#define TARGET_FREEBSD_NR_kenv 390
|
#define TARGET_FREEBSD_NR_kenv 390
|
||||||
#define TARGET_FREEBSD_NR_lchflags 391
|
#define TARGET_FREEBSD_NR_lchflags 391
|
||||||
#define TARGET_FREEBSD_NR_uuidgen 392
|
#define TARGET_FREEBSD_NR_uuidgen 392
|
||||||
#define TARGET_FREEBSD_NR_sendfile 393
|
#define TARGET_FREEBSD_NR_sendfile 393
|
||||||
#define TARGET_FREEBSD_NR_mac_syscall 394
|
#define TARGET_FREEBSD_NR_mac_syscall 394
|
||||||
#define TARGET_FREEBSD_NR_getfsstat 395
|
#define TARGET_FREEBSD_NR_freebsd11_getfsstat 395
|
||||||
#define TARGET_FREEBSD_NR_statfs 396
|
#define TARGET_FREEBSD_NR_freebsd11_statfs 396
|
||||||
#define TARGET_FREEBSD_NR_fstatfs 397
|
#define TARGET_FREEBSD_NR_freebsd11_fstatfs 397
|
||||||
#define TARGET_FREEBSD_NR_fhstatfs 398
|
#define TARGET_FREEBSD_NR_freebsd11_fhstatfs 398
|
||||||
#define TARGET_FREEBSD_NR_ksem_close 400
|
#define TARGET_FREEBSD_NR_ksem_close 400
|
||||||
#define TARGET_FREEBSD_NR_ksem_post 401
|
#define TARGET_FREEBSD_NR_ksem_post 401
|
||||||
#define TARGET_FREEBSD_NR_ksem_wait 402
|
#define TARGET_FREEBSD_NR_ksem_wait 402
|
||||||
#define TARGET_FREEBSD_NR_ksem_trywait 403
|
#define TARGET_FREEBSD_NR_ksem_trywait 403
|
||||||
#define TARGET_FREEBSD_NR_ksem_init 404
|
#define TARGET_FREEBSD_NR_ksem_init 404
|
||||||
#define TARGET_FREEBSD_NR_ksem_open 405
|
#define TARGET_FREEBSD_NR_ksem_open 405
|
||||||
#define TARGET_FREEBSD_NR_ksem_unlink 406
|
#define TARGET_FREEBSD_NR_ksem_unlink 406
|
||||||
#define TARGET_FREEBSD_NR_ksem_getvalue 407
|
#define TARGET_FREEBSD_NR_ksem_getvalue 407
|
||||||
#define TARGET_FREEBSD_NR_ksem_destroy 408
|
#define TARGET_FREEBSD_NR_ksem_destroy 408
|
||||||
#define TARGET_FREEBSD_NR___mac_get_pid 409
|
#define TARGET_FREEBSD_NR___mac_get_pid 409
|
||||||
#define TARGET_FREEBSD_NR___mac_get_link 410
|
#define TARGET_FREEBSD_NR___mac_get_link 410
|
||||||
#define TARGET_FREEBSD_NR___mac_set_link 411
|
#define TARGET_FREEBSD_NR___mac_set_link 411
|
||||||
#define TARGET_FREEBSD_NR_extattr_set_link 412
|
#define TARGET_FREEBSD_NR_extattr_set_link 412
|
||||||
#define TARGET_FREEBSD_NR_extattr_get_link 413
|
#define TARGET_FREEBSD_NR_extattr_get_link 413
|
||||||
#define TARGET_FREEBSD_NR_extattr_delete_link 414
|
#define TARGET_FREEBSD_NR_extattr_delete_link 414
|
||||||
#define TARGET_FREEBSD_NR___mac_execve 415
|
#define TARGET_FREEBSD_NR___mac_execve 415
|
||||||
#define TARGET_FREEBSD_NR_sigaction 416
|
#define TARGET_FREEBSD_NR_sigaction 416
|
||||||
#define TARGET_FREEBSD_NR_sigreturn 417
|
#define TARGET_FREEBSD_NR_sigreturn 417
|
||||||
#define TARGET_FREEBSD_NR_getcontext 421
|
#define TARGET_FREEBSD_NR_getcontext 421
|
||||||
#define TARGET_FREEBSD_NR_setcontext 422
|
#define TARGET_FREEBSD_NR_setcontext 422
|
||||||
#define TARGET_FREEBSD_NR_swapcontext 423
|
#define TARGET_FREEBSD_NR_swapcontext 423
|
||||||
#define TARGET_FREEBSD_NR_swapoff 424
|
#define TARGET_FREEBSD_NR_swapoff 424
|
||||||
#define TARGET_FREEBSD_NR___acl_get_link 425
|
#define TARGET_FREEBSD_NR___acl_get_link 425
|
||||||
#define TARGET_FREEBSD_NR___acl_set_link 426
|
#define TARGET_FREEBSD_NR___acl_set_link 426
|
||||||
#define TARGET_FREEBSD_NR___acl_delete_link 427
|
#define TARGET_FREEBSD_NR___acl_delete_link 427
|
||||||
#define TARGET_FREEBSD_NR___acl_aclcheck_link 428
|
#define TARGET_FREEBSD_NR___acl_aclcheck_link 428
|
||||||
#define TARGET_FREEBSD_NR_sigwait 429
|
#define TARGET_FREEBSD_NR_sigwait 429
|
||||||
#define TARGET_FREEBSD_NR_thr_create 430
|
#define TARGET_FREEBSD_NR_thr_create 430
|
||||||
#define TARGET_FREEBSD_NR_thr_exit 431
|
#define TARGET_FREEBSD_NR_thr_exit 431
|
||||||
#define TARGET_FREEBSD_NR_thr_self 432
|
#define TARGET_FREEBSD_NR_thr_self 432
|
||||||
#define TARGET_FREEBSD_NR_thr_kill 433
|
#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_jail_attach 436
|
||||||
#define TARGET_FREEBSD_NR_extattr_list_fd 437
|
#define TARGET_FREEBSD_NR_extattr_list_fd 437
|
||||||
#define TARGET_FREEBSD_NR_extattr_list_file 438
|
#define TARGET_FREEBSD_NR_extattr_list_file 438
|
||||||
#define TARGET_FREEBSD_NR_extattr_list_link 439
|
#define TARGET_FREEBSD_NR_extattr_list_link 439
|
||||||
#define TARGET_FREEBSD_NR_ksem_timedwait 441
|
/* 440 is obsolete kse_switchin */
|
||||||
|
#define TARGET_FREEBSD_NR_ksem_timedwait 441
|
||||||
#define TARGET_FREEBSD_NR_thr_suspend 442
|
#define TARGET_FREEBSD_NR_thr_suspend 442
|
||||||
#define TARGET_FREEBSD_NR_thr_wake 443
|
#define TARGET_FREEBSD_NR_thr_wake 443
|
||||||
#define TARGET_FREEBSD_NR_kldunloadf 444
|
#define TARGET_FREEBSD_NR_kldunloadf 444
|
||||||
#define TARGET_FREEBSD_NR_audit 445
|
#define TARGET_FREEBSD_NR_audit 445
|
||||||
#define TARGET_FREEBSD_NR_auditon 446
|
#define TARGET_FREEBSD_NR_auditon 446
|
||||||
#define TARGET_FREEBSD_NR_getauid 447
|
#define TARGET_FREEBSD_NR_getauid 447
|
||||||
#define TARGET_FREEBSD_NR_setauid 448
|
#define TARGET_FREEBSD_NR_setauid 448
|
||||||
#define TARGET_FREEBSD_NR_getaudit 449
|
#define TARGET_FREEBSD_NR_getaudit 449
|
||||||
#define TARGET_FREEBSD_NR_setaudit 450
|
#define TARGET_FREEBSD_NR_setaudit 450
|
||||||
#define TARGET_FREEBSD_NR_getaudit_addr 451
|
#define TARGET_FREEBSD_NR_getaudit_addr 451
|
||||||
#define TARGET_FREEBSD_NR_setaudit_addr 452
|
#define TARGET_FREEBSD_NR_setaudit_addr 452
|
||||||
#define TARGET_FREEBSD_NR_auditctl 453
|
#define TARGET_FREEBSD_NR_auditctl 453
|
||||||
#define TARGET_FREEBSD_NR__umtx_op 454
|
#define TARGET_FREEBSD_NR__umtx_op 454
|
||||||
#define TARGET_FREEBSD_NR_thr_new 455
|
#define TARGET_FREEBSD_NR_thr_new 455
|
||||||
#define TARGET_FREEBSD_NR_sigqueue 456
|
#define TARGET_FREEBSD_NR_sigqueue 456
|
||||||
#define TARGET_FREEBSD_NR_kmq_open 457
|
#define TARGET_FREEBSD_NR_kmq_open 457
|
||||||
#define TARGET_FREEBSD_NR_kmq_setattr 458
|
#define TARGET_FREEBSD_NR_kmq_setattr 458
|
||||||
#define TARGET_FREEBSD_NR_kmq_timedreceive 459
|
#define TARGET_FREEBSD_NR_kmq_timedreceive 459
|
||||||
#define TARGET_FREEBSD_NR_kmq_timedsend 460
|
#define TARGET_FREEBSD_NR_kmq_timedsend 460
|
||||||
#define TARGET_FREEBSD_NR_kmq_notify 461
|
#define TARGET_FREEBSD_NR_kmq_notify 461
|
||||||
#define TARGET_FREEBSD_NR_kmq_unlink 462
|
#define TARGET_FREEBSD_NR_kmq_unlink 462
|
||||||
#define TARGET_FREEBSD_NR_abort2 463
|
#define TARGET_FREEBSD_NR_abort2 463
|
||||||
#define TARGET_FREEBSD_NR_thr_set_name 464
|
#define TARGET_FREEBSD_NR_thr_set_name 464
|
||||||
#define TARGET_FREEBSD_NR_aio_fsync 465
|
#define TARGET_FREEBSD_NR_aio_fsync 465
|
||||||
#define TARGET_FREEBSD_NR_rtprio_thread 466
|
#define TARGET_FREEBSD_NR_rtprio_thread 466
|
||||||
#define TARGET_FREEBSD_NR_sctp_peeloff 471
|
#define TARGET_FREEBSD_NR_sctp_peeloff 471
|
||||||
#define TARGET_FREEBSD_NR_sctp_generic_sendmsg 472
|
#define TARGET_FREEBSD_NR_sctp_generic_sendmsg 472
|
||||||
#define TARGET_FREEBSD_NR_sctp_generic_sendmsg_iov 473
|
#define TARGET_FREEBSD_NR_sctp_generic_sendmsg_iov 473
|
||||||
#define TARGET_FREEBSD_NR_sctp_generic_recvmsg 474
|
#define TARGET_FREEBSD_NR_sctp_generic_recvmsg 474
|
||||||
#define TARGET_FREEBSD_NR_pread 475
|
#define TARGET_FREEBSD_NR_pread 475
|
||||||
#define TARGET_FREEBSD_NR_pwrite 476
|
#define TARGET_FREEBSD_NR_pwrite 476
|
||||||
#define TARGET_FREEBSD_NR_mmap 477
|
#define TARGET_FREEBSD_NR_mmap 477
|
||||||
#define TARGET_FREEBSD_NR_lseek 478
|
#define TARGET_FREEBSD_NR_lseek 478
|
||||||
#define TARGET_FREEBSD_NR_truncate 479
|
#define TARGET_FREEBSD_NR_truncate 479
|
||||||
#define TARGET_FREEBSD_NR_ftruncate 480
|
#define TARGET_FREEBSD_NR_ftruncate 480
|
||||||
#define TARGET_FREEBSD_NR_thr_kill2 481
|
#define TARGET_FREEBSD_NR_thr_kill2 481
|
||||||
#define TARGET_FREEBSD_NR_shm_open 482
|
#define TARGET_FREEBSD_NR_freebsd12_shm_open 482
|
||||||
#define TARGET_FREEBSD_NR_shm_unlink 483
|
#define TARGET_FREEBSD_NR_shm_unlink 483
|
||||||
#define TARGET_FREEBSD_NR_cpuset 484
|
#define TARGET_FREEBSD_NR_cpuset 484
|
||||||
#define TARGET_FREEBSD_NR_cpuset_setid 485
|
#define TARGET_FREEBSD_NR_cpuset_setid 485
|
||||||
#define TARGET_FREEBSD_NR_cpuset_getid 486
|
#define TARGET_FREEBSD_NR_cpuset_getid 486
|
||||||
#define TARGET_FREEBSD_NR_cpuset_getaffinity 487
|
#define TARGET_FREEBSD_NR_cpuset_getaffinity 487
|
||||||
#define TARGET_FREEBSD_NR_cpuset_setaffinity 488
|
#define TARGET_FREEBSD_NR_cpuset_setaffinity 488
|
||||||
#define TARGET_FREEBSD_NR_faccessat 489
|
#define TARGET_FREEBSD_NR_faccessat 489
|
||||||
#define TARGET_FREEBSD_NR_fchmodat 490
|
#define TARGET_FREEBSD_NR_fchmodat 490
|
||||||
#define TARGET_FREEBSD_NR_fchownat 491
|
#define TARGET_FREEBSD_NR_fchownat 491
|
||||||
#define TARGET_FREEBSD_NR_fexecve 492
|
#define TARGET_FREEBSD_NR_fexecve 492
|
||||||
#define TARGET_FREEBSD_NR_fstatat 493
|
#define TARGET_FREEBSD_NR_freebsd11_fstatat 493
|
||||||
#define TARGET_FREEBSD_NR_futimesat 494
|
#define TARGET_FREEBSD_NR_futimesat 494
|
||||||
#define TARGET_FREEBSD_NR_linkat 495
|
#define TARGET_FREEBSD_NR_linkat 495
|
||||||
#define TARGET_FREEBSD_NR_mkdirat 496
|
#define TARGET_FREEBSD_NR_mkdirat 496
|
||||||
#define TARGET_FREEBSD_NR_mkfifoat 497
|
#define TARGET_FREEBSD_NR_mkfifoat 497
|
||||||
#define TARGET_FREEBSD_NR_mknodat 498
|
#define TARGET_FREEBSD_NR_freebsd11_mknodat 498
|
||||||
#define TARGET_FREEBSD_NR_openat 499
|
#define TARGET_FREEBSD_NR_openat 499
|
||||||
#define TARGET_FREEBSD_NR_readlinkat 500
|
#define TARGET_FREEBSD_NR_readlinkat 500
|
||||||
#define TARGET_FREEBSD_NR_renameat 501
|
#define TARGET_FREEBSD_NR_renameat 501
|
||||||
#define TARGET_FREEBSD_NR_symlinkat 502
|
#define TARGET_FREEBSD_NR_symlinkat 502
|
||||||
#define TARGET_FREEBSD_NR_unlinkat 503
|
#define TARGET_FREEBSD_NR_unlinkat 503
|
||||||
#define TARGET_FREEBSD_NR_posix_openpt 504
|
#define TARGET_FREEBSD_NR_posix_openpt 504
|
||||||
#define TARGET_FREEBSD_NR_gssd_syscall 505
|
#define TARGET_FREEBSD_NR_gssd_syscall 505
|
||||||
#define TARGET_FREEBSD_NR_jail_get 506
|
#define TARGET_FREEBSD_NR_jail_get 506
|
||||||
#define TARGET_FREEBSD_NR_jail_set 507
|
#define TARGET_FREEBSD_NR_jail_set 507
|
||||||
#define TARGET_FREEBSD_NR_jail_remove 508
|
#define TARGET_FREEBSD_NR_jail_remove 508
|
||||||
#define TARGET_FREEBSD_NR_closefrom 509
|
#define TARGET_FREEBSD_NR_freebsd12_closefrom 509
|
||||||
#define TARGET_FREEBSD_NR___semctl 510
|
#define TARGET_FREEBSD_NR___semctl 510
|
||||||
#define TARGET_FREEBSD_NR_msgctl 511
|
#define TARGET_FREEBSD_NR_msgctl 511
|
||||||
#define TARGET_FREEBSD_NR_shmctl 512
|
#define TARGET_FREEBSD_NR_shmctl 512
|
||||||
#define TARGET_FREEBSD_NR_lpathconf 513
|
#define TARGET_FREEBSD_NR_lpathconf 513
|
||||||
#define TARGET_FREEBSD_NR_cap_new 514
|
/* 514 is obsolete cap_new */
|
||||||
#define TARGET_FREEBSD_NR_cap_getrights 515
|
#define TARGET_FREEBSD_NR___cap_rights_get 515
|
||||||
#define TARGET_FREEBSD_NR_cap_enter 516
|
#define TARGET_FREEBSD_NR_cap_enter 516
|
||||||
#define TARGET_FREEBSD_NR_cap_getmode 517
|
#define TARGET_FREEBSD_NR_cap_getmode 517
|
||||||
#define TARGET_FREEBSD_NR_pdfork 518
|
#define TARGET_FREEBSD_NR_pdfork 518
|
||||||
#define TARGET_FREEBSD_NR_pdkill 519
|
#define TARGET_FREEBSD_NR_pdkill 519
|
||||||
#define TARGET_FREEBSD_NR_pdgetpid 520
|
#define TARGET_FREEBSD_NR_pdgetpid 520
|
||||||
#define TARGET_FREEBSD_NR_pselect 522
|
#define TARGET_FREEBSD_NR_pselect 522
|
||||||
#define TARGET_FREEBSD_NR_getloginclass 523
|
#define TARGET_FREEBSD_NR_getloginclass 523
|
||||||
#define TARGET_FREEBSD_NR_setloginclass 524
|
#define TARGET_FREEBSD_NR_setloginclass 524
|
||||||
#define TARGET_FREEBSD_NR_rctl_get_racct 525
|
#define TARGET_FREEBSD_NR_rctl_get_racct 525
|
||||||
#define TARGET_FREEBSD_NR_rctl_get_rules 526
|
#define TARGET_FREEBSD_NR_rctl_get_rules 526
|
||||||
#define TARGET_FREEBSD_NR_rctl_get_limits 527
|
#define TARGET_FREEBSD_NR_rctl_get_limits 527
|
||||||
#define TARGET_FREEBSD_NR_rctl_add_rule 528
|
#define TARGET_FREEBSD_NR_rctl_add_rule 528
|
||||||
#define TARGET_FREEBSD_NR_rctl_remove_rule 529
|
#define TARGET_FREEBSD_NR_rctl_remove_rule 529
|
||||||
#define TARGET_FREEBSD_NR_posix_fallocate 530
|
#define TARGET_FREEBSD_NR_posix_fallocate 530
|
||||||
#define TARGET_FREEBSD_NR_posix_fadvise 531
|
#define TARGET_FREEBSD_NR_posix_fadvise 531
|
||||||
#define TARGET_FREEBSD_NR_MAXSYSCALL 532
|
#define TARGET_FREEBSD_NR_wait6 532
|
||||||
|
#define TARGET_FREEBSD_NR_cap_rights_limit 533
|
||||||
|
#define TARGET_FREEBSD_NR_cap_ioctls_limit 534
|
||||||
|
#define TARGET_FREEBSD_NR_cap_ioctls_get 535
|
||||||
|
#define TARGET_FREEBSD_NR_cap_fcntls_limit 536
|
||||||
|
#define TARGET_FREEBSD_NR_cap_fcntls_get 537
|
||||||
|
#define TARGET_FREEBSD_NR_bindat 538
|
||||||
|
#define TARGET_FREEBSD_NR_connectat 539
|
||||||
|
#define TARGET_FREEBSD_NR_chflagsat 540
|
||||||
|
#define TARGET_FREEBSD_NR_accept4 541
|
||||||
|
#define TARGET_FREEBSD_NR_pipe2 542
|
||||||
|
#define TARGET_FREEBSD_NR_aio_mlock 543
|
||||||
|
#define TARGET_FREEBSD_NR_procctl 544
|
||||||
|
#define TARGET_FREEBSD_NR_ppoll 545
|
||||||
|
#define TARGET_FREEBSD_NR_futimens 546
|
||||||
|
#define TARGET_FREEBSD_NR_utimensat 547
|
||||||
|
/* 548 is obsolete numa_getaffinity */
|
||||||
|
/* 549 is obsolete numa_setaffinity */
|
||||||
|
#define TARGET_FREEBSD_NR_fdatasync 550
|
||||||
|
#define TARGET_FREEBSD_NR_fstat 551
|
||||||
|
#define TARGET_FREEBSD_NR_fstatat 552
|
||||||
|
#define TARGET_FREEBSD_NR_fhstat 553
|
||||||
|
#define TARGET_FREEBSD_NR_getdirentries 554
|
||||||
|
#define TARGET_FREEBSD_NR_statfs 555
|
||||||
|
#define TARGET_FREEBSD_NR_fstatfs 556
|
||||||
|
#define TARGET_FREEBSD_NR_getfsstat 557
|
||||||
|
#define TARGET_FREEBSD_NR_fhstatfs 558
|
||||||
|
#define TARGET_FREEBSD_NR_mknodat 559
|
||||||
|
#define TARGET_FREEBSD_NR_kevent 560
|
||||||
|
#define TARGET_FREEBSD_NR_cpuset_getdomain 561
|
||||||
|
#define TARGET_FREEBSD_NR_cpuset_setdomain 562
|
||||||
|
#define TARGET_FREEBSD_NR_getrandom 563
|
||||||
|
#define TARGET_FREEBSD_NR_getfhat 564
|
||||||
|
#define TARGET_FREEBSD_NR_fhlink 565
|
||||||
|
#define TARGET_FREEBSD_NR_fhlinkat 566
|
||||||
|
#define TARGET_FREEBSD_NR_fhreadlink 567
|
||||||
|
#define TARGET_FREEBSD_NR_funlinkat 568
|
||||||
|
#define TARGET_FREEBSD_NR_copy_file_range 569
|
||||||
|
#define TARGET_FREEBSD_NR___sysctlbyname 570
|
||||||
|
#define TARGET_FREEBSD_NR_shm_open2 571
|
||||||
|
#define TARGET_FREEBSD_NR_shm_rename 572
|
||||||
|
#define TARGET_FREEBSD_NR_sigfastblock 573
|
||||||
|
#define TARGET_FREEBSD_NR___realpathat 574
|
||||||
|
#define TARGET_FREEBSD_NR_close_range 575
|
||||||
|
#define TARGET_FREEBSD_NR_rpctls_syscall 576
|
||||||
|
#define TARGET_FREEBSD_NR_MAXSYSCALL 577
|
||||||
|
77
bsd-user/i386/target_arch_sysarch.h
Normal file
77
bsd-user/i386/target_arch_sysarch.h
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
/*
|
||||||
|
* i386 sysarch system call emulation
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Stacey D. Son
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
#define BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
|
||||||
|
#include "target_syscall.h"
|
||||||
|
|
||||||
|
static inline abi_long do_freebsd_arch_sysarch(CPUX86State *env, int op,
|
||||||
|
abi_ulong parms)
|
||||||
|
{
|
||||||
|
abi_long ret = 0;
|
||||||
|
abi_ulong val;
|
||||||
|
int idx;
|
||||||
|
|
||||||
|
switch (op) {
|
||||||
|
case TARGET_FREEBSD_I386_SET_GSBASE:
|
||||||
|
case TARGET_FREEBSD_I386_SET_FSBASE:
|
||||||
|
if (op == TARGET_FREEBSD_I386_SET_GSBASE) {
|
||||||
|
idx = R_GS;
|
||||||
|
} else {
|
||||||
|
idx = R_FS;
|
||||||
|
}
|
||||||
|
if (get_user(val, parms, abi_ulong)) {
|
||||||
|
return -TARGET_EFAULT;
|
||||||
|
}
|
||||||
|
cpu_x86_load_seg(env, idx, 0);
|
||||||
|
env->segs[idx].base = val;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_FREEBSD_I386_GET_GSBASE:
|
||||||
|
case TARGET_FREEBSD_I386_GET_FSBASE:
|
||||||
|
if (op == TARGET_FREEBSD_I386_GET_GSBASE) {
|
||||||
|
idx = R_GS;
|
||||||
|
} else {
|
||||||
|
idx = R_FS;
|
||||||
|
}
|
||||||
|
val = env->segs[idx].base;
|
||||||
|
if (put_user(val, parms, abi_ulong)) {
|
||||||
|
return -TARGET_EFAULT;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* XXX handle the others... */
|
||||||
|
default:
|
||||||
|
ret = -TARGET_EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void do_freebsd_arch_print_sysarch(
|
||||||
|
const struct syscallname *name, abi_long arg1, abi_long arg2,
|
||||||
|
abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6)
|
||||||
|
{
|
||||||
|
|
||||||
|
gemu_log("%s(%d, " TARGET_ABI_FMT_lx ", " TARGET_ABI_FMT_lx ", "
|
||||||
|
TARGET_ABI_FMT_lx ")", name->name, (int)arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* !BSD_USER_ARCH_SYSARCH_H_ */
|
@ -1,3 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* i386 system call definitions
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
#ifndef TARGET_SYSCALL_H
|
#ifndef TARGET_SYSCALL_H
|
||||||
#define TARGET_SYSCALL_H
|
#define TARGET_SYSCALL_H
|
||||||
|
|
||||||
@ -161,5 +178,7 @@ struct target_vm86plus_struct {
|
|||||||
|
|
||||||
|
|
||||||
#define UNAME_MACHINE "i386"
|
#define UNAME_MACHINE "i386"
|
||||||
|
#define TARGET_HW_MACHINE UNAME_MACHINE
|
||||||
|
#define TARGET_HW_MACHINE_ARCH UNAME_MACHINE
|
||||||
|
|
||||||
#endif /* TARGET_SYSCALL_H */
|
#endif /* TARGET_SYSCALL_H */
|
||||||
|
69
bsd-user/mips/target_arch_sysarch.h
Normal file
69
bsd-user/mips/target_arch_sysarch.h
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* mips sysarch() system call emulation
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Stacey D. Son
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
#define BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
|
||||||
|
#include "target_syscall.h"
|
||||||
|
#include "target_arch.h"
|
||||||
|
|
||||||
|
static inline abi_long do_freebsd_arch_sysarch(CPUMIPSState *env, int op,
|
||||||
|
abi_ulong parms)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
switch (op) {
|
||||||
|
case TARGET_MIPS_SET_TLS:
|
||||||
|
target_cpu_set_tls(env, parms);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_MIPS_GET_TLS:
|
||||||
|
if (put_user(target_cpu_get_tls(env), parms, abi_ulong)) {
|
||||||
|
ret = -TARGET_EFAULT;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
ret = -TARGET_EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void do_freebsd_arch_print_sysarch(
|
||||||
|
const struct syscallname *name, abi_long arg1, abi_long arg2,
|
||||||
|
abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6)
|
||||||
|
{
|
||||||
|
|
||||||
|
switch (arg1) {
|
||||||
|
case TARGET_MIPS_SET_TLS:
|
||||||
|
gemu_log("%s(SET_TLS, 0x" TARGET_ABI_FMT_lx ")", name->name, arg2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_MIPS_GET_TLS:
|
||||||
|
gemu_log("%s(GET_TLS, 0x" TARGET_ABI_FMT_lx ")", name->name, arg2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
gemu_log("UNKNOWN OP: %d, " TARGET_ABI_FMT_lx ")", (int)arg1, arg2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*!BSD_USER_ARCH_SYSARCH_H_ */
|
52
bsd-user/mips/target_syscall.h
Normal file
52
bsd-user/mips/target_syscall.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* mips system call definitions
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef _MIPS_SYSCALL_H_
|
||||||
|
#define _MIPS_SYSCALL_H_
|
||||||
|
|
||||||
|
/*
|
||||||
|
* struct target_pt_regs defines the way the registers are stored on the stack
|
||||||
|
* during a system call.
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct target_pt_regs {
|
||||||
|
/* Saved main processor registers. */
|
||||||
|
abi_ulong regs[32];
|
||||||
|
|
||||||
|
/* Saved special registers. */
|
||||||
|
abi_ulong cp0_status;
|
||||||
|
abi_ulong lo;
|
||||||
|
abi_ulong hi;
|
||||||
|
abi_ulong cp0_badvaddr;
|
||||||
|
abi_ulong cp0_cause;
|
||||||
|
abi_ulong cp0_epc;
|
||||||
|
};
|
||||||
|
|
||||||
|
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||||
|
#define UNAME_MACHINE "mips"
|
||||||
|
#else
|
||||||
|
#define UNAME_MACHINE "mipsel"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define TARGET_HW_MACHINE "mips"
|
||||||
|
#define TARGET_HW_MACHINE_ARCH UNAME_MACHINE
|
||||||
|
|
||||||
|
/* sysarch() commands */
|
||||||
|
#define TARGET_MIPS_SET_TLS 1
|
||||||
|
#define TARGET_MIPS_GET_TLS 2
|
||||||
|
|
||||||
|
#endif /* !_MIPS_SYSCALL_H_ */
|
69
bsd-user/mips64/target_arch_sysarch.h
Normal file
69
bsd-user/mips64/target_arch_sysarch.h
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* mips64 sysarch() system call emulation
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Stacey D. Son
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
#define BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
|
||||||
|
#include "target_syscall.h"
|
||||||
|
#include "target_arch.h"
|
||||||
|
|
||||||
|
static inline abi_long do_freebsd_arch_sysarch(CPUMIPSState *env, int op,
|
||||||
|
abi_ulong parms)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
switch (op) {
|
||||||
|
case TARGET_MIPS_SET_TLS:
|
||||||
|
target_cpu_set_tls(env, parms);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_MIPS_GET_TLS:
|
||||||
|
if (put_user(target_cpu_get_tls(env), parms, abi_ulong)) {
|
||||||
|
ret = -TARGET_EFAULT;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
ret = -TARGET_EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void do_freebsd_arch_print_sysarch(
|
||||||
|
const struct syscallname *name, abi_long arg1, abi_long arg2,
|
||||||
|
abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6)
|
||||||
|
{
|
||||||
|
|
||||||
|
switch (arg1) {
|
||||||
|
case TARGET_MIPS_SET_TLS:
|
||||||
|
gemu_log("%s(SET_TLS, 0x" TARGET_ABI_FMT_lx ")", name->name, arg2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_MIPS_GET_TLS:
|
||||||
|
gemu_log("%s(GET_TLS, 0x" TARGET_ABI_FMT_lx ")", name->name, arg2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
gemu_log("UNKNOWN OP: %d, " TARGET_ABI_FMT_lx ")", (int)arg1, arg2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*!BSD_USER_ARCH_SYSARCH_H_ */
|
53
bsd-user/mips64/target_syscall.h
Normal file
53
bsd-user/mips64/target_syscall.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* mips64 system call definitions
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef _MIPS64_SYSCALL_H_
|
||||||
|
#define _MIPS64_SYSCALL_H_
|
||||||
|
|
||||||
|
/*
|
||||||
|
* struct target_pt_regs defines the way the registers are stored on the stack
|
||||||
|
* during a system call.
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct target_pt_regs {
|
||||||
|
/* Saved main processor registers. */
|
||||||
|
abi_ulong regs[32];
|
||||||
|
|
||||||
|
/* Saved special registers. */
|
||||||
|
abi_ulong cp0_status;
|
||||||
|
abi_ulong lo;
|
||||||
|
abi_ulong hi;
|
||||||
|
abi_ulong cp0_badvaddr;
|
||||||
|
abi_ulong cp0_cause;
|
||||||
|
abi_ulong cp0_epc;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||||
|
#define UNAME_MACHINE "mips64"
|
||||||
|
#else
|
||||||
|
#define UNAME_MACHINE "mips64el"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define TARGET_HW_MACHINE "mips"
|
||||||
|
#define TARGET_HW_MACHINE_ARCH UNAME_MACHINE
|
||||||
|
|
||||||
|
/* sysarch() commands */
|
||||||
|
#define TARGET_MIPS_SET_TLS 1
|
||||||
|
#define TARGET_MIPS_GET_TLS 2
|
||||||
|
|
||||||
|
#endif /* !_MIPS64_SYSCALL_H_ */
|
1
bsd-user/netbsd/os-strace.h
Normal file
1
bsd-user/netbsd/os-strace.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
/* XXX NetBSD dependent strace print functions */
|
1
bsd-user/openbsd/os-strace.h
Normal file
1
bsd-user/openbsd/os-strace.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
/* XXX OpenBSD dependent strace print functions */
|
52
bsd-user/sparc/target_arch_sysarch.h
Normal file
52
bsd-user/sparc/target_arch_sysarch.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* SPARC sysarch() system call emulation
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Stacey D. Son
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
#define BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
|
||||||
|
#include "target_syscall.h"
|
||||||
|
|
||||||
|
static inline abi_long do_freebsd_arch_sysarch(void *env, int op,
|
||||||
|
abi_ulong parms)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
switch (op) {
|
||||||
|
case TARGET_SPARC_SIGTRAMP_INSTALL:
|
||||||
|
/* XXX not currently handled */
|
||||||
|
case TARGET_SPARC_UTRAP_INSTALL:
|
||||||
|
/* XXX not currently handled */
|
||||||
|
default:
|
||||||
|
ret = -TARGET_EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void do_freebsd_arch_print_sysarch(
|
||||||
|
const struct syscallname *name, abi_long arg1, abi_long arg2,
|
||||||
|
abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6)
|
||||||
|
{
|
||||||
|
|
||||||
|
gemu_log("%s(%d, " TARGET_ABI_FMT_lx ", " TARGET_ABI_FMT_lx ", "
|
||||||
|
TARGET_ABI_FMT_lx ")", name->name, (int)arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*!BSD_USER_ARCH_SYSARCH_H_ */
|
@ -1,3 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* sparc dependent system call definitions
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
#ifndef TARGET_SYSCALL_H
|
#ifndef TARGET_SYSCALL_H
|
||||||
#define TARGET_SYSCALL_H
|
#define TARGET_SYSCALL_H
|
||||||
|
|
||||||
@ -9,6 +26,11 @@ struct target_pt_regs {
|
|||||||
abi_ulong u_regs[16];
|
abi_ulong u_regs[16];
|
||||||
};
|
};
|
||||||
|
|
||||||
#define UNAME_MACHINE "sun4"
|
#define UNAME_MACHINE "sun4"
|
||||||
|
#define TARGET_HW_MACHINE "sparc"
|
||||||
|
#define TARGET_HW_MACHINE_ARCH "sparc"
|
||||||
|
|
||||||
|
#define TARGET_SPARC_UTRAP_INSTALL 1
|
||||||
|
#define TARGET_SPARC_SIGTRAMP_INSTALL 2
|
||||||
|
|
||||||
#endif /* TARGET_SYSCALL_H */
|
#endif /* TARGET_SYSCALL_H */
|
||||||
|
52
bsd-user/sparc64/target_arch_sysarch.h
Normal file
52
bsd-user/sparc64/target_arch_sysarch.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* SPARC64 sysarch() system call emulation
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Stacey D. Son
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
#define BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
|
||||||
|
#include "target_syscall.h"
|
||||||
|
|
||||||
|
static inline abi_long do_freebsd_arch_sysarch(void *env, int op,
|
||||||
|
abi_ulong parms)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
switch (op) {
|
||||||
|
case TARGET_SPARC_SIGTRAMP_INSTALL:
|
||||||
|
/* XXX not currently handled */
|
||||||
|
case TARGET_SPARC_UTRAP_INSTALL:
|
||||||
|
/* XXX not currently handled */
|
||||||
|
default:
|
||||||
|
ret = -TARGET_EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void do_freebsd_arch_print_sysarch(
|
||||||
|
const struct syscallname *name, abi_long arg1, abi_long arg2,
|
||||||
|
abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6)
|
||||||
|
{
|
||||||
|
|
||||||
|
gemu_log("%s(%d, " TARGET_ABI_FMT_lx ", " TARGET_ABI_FMT_lx ", "
|
||||||
|
TARGET_ABI_FMT_lx ")", name->name, (int)arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*!BSD_USER_ARCH_SYSARCH_H_ */
|
@ -1,3 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* sparc64 dependent system call definitions
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
#ifndef TARGET_SYSCALL_H
|
#ifndef TARGET_SYSCALL_H
|
||||||
#define TARGET_SYSCALL_H
|
#define TARGET_SYSCALL_H
|
||||||
|
|
||||||
@ -10,6 +27,11 @@ struct target_pt_regs {
|
|||||||
abi_ulong fprs;
|
abi_ulong fprs;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define UNAME_MACHINE "sun4u"
|
#define UNAME_MACHINE "sun4u"
|
||||||
|
#define TARGET_HW_MACHINE "sparc"
|
||||||
|
#define TARGET_HW_MACHINE_ARCH "sparc64"
|
||||||
|
|
||||||
|
#define TARGET_SPARC_UTRAP_INSTALL 1
|
||||||
|
#define TARGET_SPARC_SIGTRAMP_INSTALL 2
|
||||||
|
|
||||||
#endif /* TARGET_SYSCALL_H */
|
#endif /* TARGET_SYSCALL_H */
|
||||||
|
@ -20,9 +20,12 @@
|
|||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
#include <sys/ioccom.h>
|
#include <sys/ioccom.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
#include "qemu.h"
|
#include "qemu.h"
|
||||||
|
|
||||||
|
#include "os-strace.h" /* OS dependent strace print functions */
|
||||||
|
|
||||||
int do_strace;
|
int do_strace;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -104,6 +107,14 @@ static void print_ioctl(const struct syscallname *name,
|
|||||||
arg3);
|
arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void print_sysarch(const struct syscallname *name, abi_long arg1,
|
||||||
|
abi_long arg2, abi_long arg3, abi_long arg4, abi_long arg5,
|
||||||
|
abi_long arg6)
|
||||||
|
{
|
||||||
|
/* This is os dependent. */
|
||||||
|
do_os_print_sysarch(name, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Variants for the return value output function
|
* Variants for the return value output function
|
||||||
*/
|
*/
|
||||||
|
76
bsd-user/x86_64/target_arch_sysarch.h
Normal file
76
bsd-user/x86_64/target_arch_sysarch.h
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
/*
|
||||||
|
* x86_64 sysarch() syscall emulation
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
#define BSD_USER_ARCH_SYSARCH_H_
|
||||||
|
|
||||||
|
#include "target_syscall.h"
|
||||||
|
|
||||||
|
static inline abi_long do_freebsd_arch_sysarch(CPUX86State *env, int op,
|
||||||
|
abi_ulong parms)
|
||||||
|
{
|
||||||
|
abi_long ret = 0;
|
||||||
|
abi_ulong val;
|
||||||
|
int idx;
|
||||||
|
|
||||||
|
switch (op) {
|
||||||
|
case TARGET_FREEBSD_AMD64_SET_GSBASE:
|
||||||
|
case TARGET_FREEBSD_AMD64_SET_FSBASE:
|
||||||
|
if (op == TARGET_FREEBSD_AMD64_SET_GSBASE) {
|
||||||
|
idx = R_GS;
|
||||||
|
} else {
|
||||||
|
idx = R_FS;
|
||||||
|
}
|
||||||
|
if (get_user(val, parms, abi_ulong)) {
|
||||||
|
return -TARGET_EFAULT;
|
||||||
|
}
|
||||||
|
cpu_x86_load_seg(env, idx, 0);
|
||||||
|
env->segs[idx].base = val;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_FREEBSD_AMD64_GET_GSBASE:
|
||||||
|
case TARGET_FREEBSD_AMD64_GET_FSBASE:
|
||||||
|
if (op == TARGET_FREEBSD_AMD64_GET_GSBASE) {
|
||||||
|
idx = R_GS;
|
||||||
|
} else {
|
||||||
|
idx = R_FS;
|
||||||
|
}
|
||||||
|
val = env->segs[idx].base;
|
||||||
|
if (put_user(val, parms, abi_ulong)) {
|
||||||
|
return -TARGET_EFAULT;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* XXX handle the others... */
|
||||||
|
default:
|
||||||
|
ret = -TARGET_EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void do_freebsd_arch_print_sysarch(
|
||||||
|
const struct syscallname *name, abi_long arg1, abi_long arg2,
|
||||||
|
abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6)
|
||||||
|
{
|
||||||
|
|
||||||
|
gemu_log("%s(%d, " TARGET_ABI_FMT_lx ", " TARGET_ABI_FMT_lx ", "
|
||||||
|
TARGET_ABI_FMT_lx ")", name->name, (int)arg1, arg2, arg3, arg4);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*! BSD_USER_ARCH_SYSARCH_H_ */
|
@ -1,3 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* x86_64 system call definitions
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
#ifndef TARGET_SYSCALL_H
|
#ifndef TARGET_SYSCALL_H
|
||||||
#define TARGET_SYSCALL_H
|
#define TARGET_SYSCALL_H
|
||||||
|
|
||||||
@ -111,7 +128,9 @@ struct target_msqid64_ds {
|
|||||||
#define TARGET_FREEBSD_AMD64_SET_GSBASE 131
|
#define TARGET_FREEBSD_AMD64_SET_GSBASE 131
|
||||||
|
|
||||||
|
|
||||||
#define UNAME_MACHINE "x86_64"
|
#define UNAME_MACHINE "x86_64"
|
||||||
|
#define TARGET_HW_MACHINE "amd64"
|
||||||
|
#define TARGET_HW_MACHINE_ARCH "amd64"
|
||||||
|
|
||||||
#define TARGET_ARCH_SET_GS 0x1001
|
#define TARGET_ARCH_SET_GS 0x1001
|
||||||
#define TARGET_ARCH_SET_FS 0x1002
|
#define TARGET_ARCH_SET_FS 0x1002
|
||||||
|
@ -2047,6 +2047,7 @@ foreach target : target_dirs
|
|||||||
target_inc += include_directories('linux-user/host/' / config_host['ARCH'])
|
target_inc += include_directories('linux-user/host/' / config_host['ARCH'])
|
||||||
else
|
else
|
||||||
base_dir = 'bsd-user'
|
base_dir = 'bsd-user'
|
||||||
|
target_inc += include_directories('bsd-user/freebsd')
|
||||||
endif
|
endif
|
||||||
target_inc += include_directories(
|
target_inc += include_directories(
|
||||||
base_dir,
|
base_dir,
|
||||||
|
@ -16,6 +16,10 @@ QEMU_PATH = None
|
|||||||
TIMEOUT = 5
|
TIMEOUT = 5
|
||||||
CRASH_TOKEN = None
|
CRASH_TOKEN = None
|
||||||
|
|
||||||
|
# Minimization levels
|
||||||
|
M1 = False # try removing IO commands iteratively
|
||||||
|
M2 = False # try setting bits in operand of write/out to zero
|
||||||
|
|
||||||
write_suffix_lookup = {"b": (1, "B"),
|
write_suffix_lookup = {"b": (1, "B"),
|
||||||
"w": (2, "H"),
|
"w": (2, "H"),
|
||||||
"l": (4, "L"),
|
"l": (4, "L"),
|
||||||
@ -23,14 +27,30 @@ write_suffix_lookup = {"b": (1, "B"),
|
|||||||
|
|
||||||
def usage():
|
def usage():
|
||||||
sys.exit("""\
|
sys.exit("""\
|
||||||
Usage: QEMU_PATH="/path/to/qemu" QEMU_ARGS="args" {} input_trace output_trace
|
Usage:
|
||||||
|
|
||||||
|
QEMU_PATH="/path/to/qemu" QEMU_ARGS="args" {} [Options] input_trace output_trace
|
||||||
|
|
||||||
By default, will try to use the second-to-last line in the output to identify
|
By default, will try to use the second-to-last line in the output to identify
|
||||||
whether the crash occred. Optionally, manually set a string that idenitifes the
|
whether the crash occred. Optionally, manually set a string that idenitifes the
|
||||||
crash by setting CRASH_TOKEN=
|
crash by setting CRASH_TOKEN=
|
||||||
|
|
||||||
|
Options:
|
||||||
|
|
||||||
|
-M1: enable a loop around the remove minimizer, which may help decrease some
|
||||||
|
timing dependant instructions. Off by default.
|
||||||
|
-M2: try setting bits in operand of write/out to zero. Off by default.
|
||||||
|
|
||||||
""".format((sys.argv[0])))
|
""".format((sys.argv[0])))
|
||||||
|
|
||||||
|
deduplication_note = """\n\
|
||||||
|
Note: While trimming the input, sometimes the mutated trace triggers a different
|
||||||
|
type crash but indicates the same bug. Under this situation, our minimizer is
|
||||||
|
incapable of recognizing and stopped from removing it. In the future, we may
|
||||||
|
use a more sophisticated crash case deduplication method.
|
||||||
|
\n"""
|
||||||
|
|
||||||
def check_if_trace_crashes(trace, path):
|
def check_if_trace_crashes(trace, path):
|
||||||
global CRASH_TOKEN
|
|
||||||
with open(path, "w") as tracefile:
|
with open(path, "w") as tracefile:
|
||||||
tracefile.write("".join(trace))
|
tracefile.write("".join(trace))
|
||||||
|
|
||||||
@ -41,51 +61,99 @@ def check_if_trace_crashes(trace, path):
|
|||||||
trace_path=path),
|
trace_path=path),
|
||||||
shell=True,
|
shell=True,
|
||||||
stdin=subprocess.PIPE,
|
stdin=subprocess.PIPE,
|
||||||
stdout=subprocess.PIPE)
|
stdout=subprocess.PIPE,
|
||||||
stdo = rc.communicate()[0]
|
encoding="utf-8")
|
||||||
output = stdo.decode('unicode_escape')
|
global CRASH_TOKEN
|
||||||
if rc.returncode == 137: # Timed Out
|
|
||||||
return False
|
|
||||||
if len(output.splitlines()) < 2:
|
|
||||||
return False
|
|
||||||
|
|
||||||
if CRASH_TOKEN is None:
|
if CRASH_TOKEN is None:
|
||||||
CRASH_TOKEN = output.splitlines()[-2]
|
try:
|
||||||
|
outs, _ = rc.communicate(timeout=5)
|
||||||
|
CRASH_TOKEN = " ".join(outs.splitlines()[-2].split()[0:3])
|
||||||
|
except subprocess.TimeoutExpired:
|
||||||
|
print("subprocess.TimeoutExpired")
|
||||||
|
return False
|
||||||
|
print("Identifying Crashes by this string: {}".format(CRASH_TOKEN))
|
||||||
|
global deduplication_note
|
||||||
|
print(deduplication_note)
|
||||||
|
return True
|
||||||
|
|
||||||
return CRASH_TOKEN in output
|
for line in iter(rc.stdout.readline, ""):
|
||||||
|
if "CLOSED" in line:
|
||||||
|
return False
|
||||||
|
if CRASH_TOKEN in line:
|
||||||
|
return True
|
||||||
|
|
||||||
|
print("\nWarning:")
|
||||||
|
print(" There is no 'CLOSED'or CRASH_TOKEN in the stdout of subprocess.")
|
||||||
|
print(" Usually this indicates a different type of crash.\n")
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def minimize_trace(inpath, outpath):
|
# If previous write commands write the same length of data at the same
|
||||||
global TIMEOUT
|
# interval, we view it as a hint.
|
||||||
with open(inpath) as f:
|
def split_write_hint(newtrace, i):
|
||||||
trace = f.readlines()
|
HINT_LEN = 3 # > 2
|
||||||
start = time.time()
|
if i <=(HINT_LEN-1):
|
||||||
if not check_if_trace_crashes(trace, outpath):
|
return None
|
||||||
sys.exit("The input qtest trace didn't cause a crash...")
|
|
||||||
end = time.time()
|
|
||||||
print("Crashed in {} seconds".format(end-start))
|
|
||||||
TIMEOUT = (end-start)*5
|
|
||||||
print("Setting the timeout for {} seconds".format(TIMEOUT))
|
|
||||||
print("Identifying Crashes by this string: {}".format(CRASH_TOKEN))
|
|
||||||
|
|
||||||
|
#find previous continuous write traces
|
||||||
|
k = 0
|
||||||
|
l = i-1
|
||||||
|
writes = []
|
||||||
|
while (k != HINT_LEN and l >= 0):
|
||||||
|
if newtrace[l].startswith("write "):
|
||||||
|
writes.append(newtrace[l])
|
||||||
|
k += 1
|
||||||
|
l -= 1
|
||||||
|
elif newtrace[l] == "":
|
||||||
|
l -= 1
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
if k != HINT_LEN:
|
||||||
|
return None
|
||||||
|
|
||||||
|
length = int(writes[0].split()[2], 16)
|
||||||
|
for j in range(1, HINT_LEN):
|
||||||
|
if length != int(writes[j].split()[2], 16):
|
||||||
|
return None
|
||||||
|
|
||||||
|
step = int(writes[0].split()[1], 16) - int(writes[1].split()[1], 16)
|
||||||
|
for j in range(1, HINT_LEN-1):
|
||||||
|
if step != int(writes[j].split()[1], 16) - \
|
||||||
|
int(writes[j+1].split()[1], 16):
|
||||||
|
return None
|
||||||
|
|
||||||
|
return (int(writes[0].split()[1], 16)+step, length)
|
||||||
|
|
||||||
|
|
||||||
|
def remove_lines(newtrace, outpath):
|
||||||
|
remove_step = 1
|
||||||
i = 0
|
i = 0
|
||||||
newtrace = trace[:]
|
|
||||||
# For each line
|
|
||||||
while i < len(newtrace):
|
while i < len(newtrace):
|
||||||
# 1.) Try to remove it completely and reproduce the crash. If it works,
|
# 1.) Try to remove lines completely and reproduce the crash.
|
||||||
# we're done.
|
# If it works, we're done.
|
||||||
prior = newtrace[i]
|
if (i+remove_step) >= len(newtrace):
|
||||||
print("Trying to remove {}".format(newtrace[i]))
|
remove_step = 1
|
||||||
# Try to remove the line completely
|
prior = newtrace[i:i+remove_step]
|
||||||
newtrace[i] = ""
|
for j in range(i, i+remove_step):
|
||||||
|
newtrace[j] = ""
|
||||||
|
print("Removing {lines} ...\n".format(lines=prior))
|
||||||
if check_if_trace_crashes(newtrace, outpath):
|
if check_if_trace_crashes(newtrace, outpath):
|
||||||
i += 1
|
i += remove_step
|
||||||
|
# Double the number of lines to remove for next round
|
||||||
|
remove_step *= 2
|
||||||
continue
|
continue
|
||||||
newtrace[i] = prior
|
# Failed to remove multiple IOs, fast recovery
|
||||||
|
if remove_step > 1:
|
||||||
|
for j in range(i, i+remove_step):
|
||||||
|
newtrace[j] = prior[j-i]
|
||||||
|
remove_step = 1
|
||||||
|
continue
|
||||||
|
newtrace[i] = prior[0] # remove_step = 1
|
||||||
|
|
||||||
# 2.) Try to replace write{bwlq} commands with a write addr, len
|
# 2.) Try to replace write{bwlq} commands with a write addr, len
|
||||||
# command. Since this can require swapping endianness, try both LE and
|
# command. Since this can require swapping endianness, try both LE and
|
||||||
# BE options. We do this, so we can "trim" the writes in (3)
|
# BE options. We do this, so we can "trim" the writes in (3)
|
||||||
|
|
||||||
if (newtrace[i].startswith("write") and not
|
if (newtrace[i].startswith("write") and not
|
||||||
newtrace[i].startswith("write ")):
|
newtrace[i].startswith("write ")):
|
||||||
suffix = newtrace[i].split()[0][-1]
|
suffix = newtrace[i].split()[0][-1]
|
||||||
@ -103,22 +171,46 @@ def minimize_trace(inpath, outpath):
|
|||||||
if(check_if_trace_crashes(newtrace, outpath)):
|
if(check_if_trace_crashes(newtrace, outpath)):
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
newtrace[i] = prior
|
newtrace[i] = prior[0]
|
||||||
|
|
||||||
# 3.) If it is a qtest write command: write addr len data, try to split
|
# 3.) If it is a qtest write command: write addr len data, try to split
|
||||||
# it into two separate write commands. If splitting the write down the
|
# it into two separate write commands. If splitting the data operand
|
||||||
# middle does not work, try to move the pivot "left" and retry, until
|
# from length/2^n bytes to the left does not work, try to move the pivot
|
||||||
# there is no space left. The idea is to prune unneccessary bytes from
|
# to the right side, then add one to n, until length/2^n == 0. The idea
|
||||||
# long writes, while accommodating arbitrary MemoryRegion access sizes
|
# is to prune unneccessary bytes from long writes, while accommodating
|
||||||
# and alignments.
|
# arbitrary MemoryRegion access sizes and alignments.
|
||||||
|
|
||||||
|
# This algorithm will fail under some rare situations.
|
||||||
|
# e.g., xxxxxxxxxuxxxxxx (u is the unnecessary byte)
|
||||||
|
|
||||||
if newtrace[i].startswith("write "):
|
if newtrace[i].startswith("write "):
|
||||||
addr = int(newtrace[i].split()[1], 16)
|
addr = int(newtrace[i].split()[1], 16)
|
||||||
length = int(newtrace[i].split()[2], 16)
|
length = int(newtrace[i].split()[2], 16)
|
||||||
data = newtrace[i].split()[3][2:]
|
data = newtrace[i].split()[3][2:]
|
||||||
if length > 1:
|
if length > 1:
|
||||||
|
|
||||||
|
# Can we get a hint from previous writes?
|
||||||
|
hint = split_write_hint(newtrace, i)
|
||||||
|
if hint is not None:
|
||||||
|
hint_addr = hint[0]
|
||||||
|
hint_len = hint[1]
|
||||||
|
if hint_addr >= addr and hint_addr+hint_len <= addr+length:
|
||||||
|
newtrace[i] = "write {addr} {size} 0x{data}\n".format(
|
||||||
|
addr=hex(hint_addr),
|
||||||
|
size=hex(hint_len),
|
||||||
|
data=data[(hint_addr-addr)*2:\
|
||||||
|
(hint_addr-addr)*2+hint_len*2])
|
||||||
|
if check_if_trace_crashes(newtrace, outpath):
|
||||||
|
# next round
|
||||||
|
i += 1
|
||||||
|
continue
|
||||||
|
newtrace[i] = prior[0]
|
||||||
|
|
||||||
|
# Try splitting it using a binary approach
|
||||||
leftlength = int(length/2)
|
leftlength = int(length/2)
|
||||||
rightlength = length - leftlength
|
rightlength = length - leftlength
|
||||||
newtrace.insert(i+1, "")
|
newtrace.insert(i+1, "")
|
||||||
|
power = 1
|
||||||
while leftlength > 0:
|
while leftlength > 0:
|
||||||
newtrace[i] = "write {addr} {size} 0x{data}\n".format(
|
newtrace[i] = "write {addr} {size} 0x{data}\n".format(
|
||||||
addr=hex(addr),
|
addr=hex(addr),
|
||||||
@ -130,22 +222,96 @@ def minimize_trace(inpath, outpath):
|
|||||||
data=data[leftlength*2:])
|
data=data[leftlength*2:])
|
||||||
if check_if_trace_crashes(newtrace, outpath):
|
if check_if_trace_crashes(newtrace, outpath):
|
||||||
break
|
break
|
||||||
else:
|
# move the pivot to right side
|
||||||
leftlength -= 1
|
if leftlength < rightlength:
|
||||||
rightlength += 1
|
rightlength, leftlength = leftlength, rightlength
|
||||||
|
continue
|
||||||
|
power += 1
|
||||||
|
leftlength = int(length/pow(2, power))
|
||||||
|
rightlength = length - leftlength
|
||||||
if check_if_trace_crashes(newtrace, outpath):
|
if check_if_trace_crashes(newtrace, outpath):
|
||||||
i -= 1
|
i -= 1
|
||||||
else:
|
else:
|
||||||
newtrace[i] = prior
|
newtrace[i] = prior[0]
|
||||||
del newtrace[i+1]
|
del newtrace[i+1]
|
||||||
i += 1
|
i += 1
|
||||||
check_if_trace_crashes(newtrace, outpath)
|
|
||||||
|
|
||||||
|
def clear_bits(newtrace, outpath):
|
||||||
|
# try setting bits in operands of out/write to zero
|
||||||
|
i = 0
|
||||||
|
while i < len(newtrace):
|
||||||
|
if (not newtrace[i].startswith("write ") and not
|
||||||
|
newtrace[i].startswith("out")):
|
||||||
|
i += 1
|
||||||
|
continue
|
||||||
|
# write ADDR SIZE DATA
|
||||||
|
# outx ADDR VALUE
|
||||||
|
print("\nzero setting bits: {}".format(newtrace[i]))
|
||||||
|
|
||||||
|
prefix = " ".join(newtrace[i].split()[:-1])
|
||||||
|
data = newtrace[i].split()[-1]
|
||||||
|
data_bin = bin(int(data, 16))
|
||||||
|
data_bin_list = list(data_bin)
|
||||||
|
|
||||||
|
for j in range(2, len(data_bin_list)):
|
||||||
|
prior = newtrace[i]
|
||||||
|
if (data_bin_list[j] == '1'):
|
||||||
|
data_bin_list[j] = '0'
|
||||||
|
data_try = hex(int("".join(data_bin_list), 2))
|
||||||
|
# It seems qtest only accepts padded hex-values.
|
||||||
|
if len(data_try) % 2 == 1:
|
||||||
|
data_try = data_try[:2] + "0" + data_try[2:-1]
|
||||||
|
|
||||||
|
newtrace[i] = "{prefix} {data_try}\n".format(
|
||||||
|
prefix=prefix,
|
||||||
|
data_try=data_try)
|
||||||
|
|
||||||
|
if not check_if_trace_crashes(newtrace, outpath):
|
||||||
|
data_bin_list[j] = '1'
|
||||||
|
newtrace[i] = prior
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
|
||||||
|
def minimize_trace(inpath, outpath):
|
||||||
|
global TIMEOUT
|
||||||
|
with open(inpath) as f:
|
||||||
|
trace = f.readlines()
|
||||||
|
start = time.time()
|
||||||
|
if not check_if_trace_crashes(trace, outpath):
|
||||||
|
sys.exit("The input qtest trace didn't cause a crash...")
|
||||||
|
end = time.time()
|
||||||
|
print("Crashed in {} seconds".format(end-start))
|
||||||
|
TIMEOUT = (end-start)*5
|
||||||
|
print("Setting the timeout for {} seconds".format(TIMEOUT))
|
||||||
|
|
||||||
|
newtrace = trace[:]
|
||||||
|
global M1, M2
|
||||||
|
|
||||||
|
# remove lines
|
||||||
|
old_len = len(newtrace) + 1
|
||||||
|
while(old_len > len(newtrace)):
|
||||||
|
old_len = len(newtrace)
|
||||||
|
print("trace lenth = ", old_len)
|
||||||
|
remove_lines(newtrace, outpath)
|
||||||
|
if not M1 and not M2:
|
||||||
|
break
|
||||||
|
newtrace = list(filter(lambda s: s != "", newtrace))
|
||||||
|
assert(check_if_trace_crashes(newtrace, outpath))
|
||||||
|
|
||||||
|
# set bits to zero
|
||||||
|
if M2:
|
||||||
|
clear_bits(newtrace, outpath)
|
||||||
|
assert(check_if_trace_crashes(newtrace, outpath))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
if len(sys.argv) < 3:
|
if len(sys.argv) < 3:
|
||||||
usage()
|
usage()
|
||||||
|
if "-M1" in sys.argv:
|
||||||
|
M1 = True
|
||||||
|
if "-M2" in sys.argv:
|
||||||
|
M2 = True
|
||||||
QEMU_PATH = os.getenv("QEMU_PATH")
|
QEMU_PATH = os.getenv("QEMU_PATH")
|
||||||
QEMU_ARGS = os.getenv("QEMU_ARGS")
|
QEMU_ARGS = os.getenv("QEMU_ARGS")
|
||||||
if QEMU_PATH is None or QEMU_ARGS is None:
|
if QEMU_PATH is None or QEMU_ARGS is None:
|
||||||
@ -154,4 +320,4 @@ if __name__ == '__main__':
|
|||||||
# QEMU_ARGS += " -accel qtest"
|
# QEMU_ARGS += " -accel qtest"
|
||||||
CRASH_TOKEN = os.getenv("CRASH_TOKEN")
|
CRASH_TOKEN = os.getenv("CRASH_TOKEN")
|
||||||
QEMU_ARGS += " -qtest stdio -monitor none -serial none "
|
QEMU_ARGS += " -qtest stdio -monitor none -serial none "
|
||||||
minimize_trace(sys.argv[1], sys.argv[2])
|
minimize_trace(sys.argv[-2], sys.argv[-1])
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
|
from avocado import skipIf
|
||||||
from avocado_qemu import Test
|
from avocado_qemu import Test
|
||||||
from avocado_qemu import exec_command_and_wait_for_pattern
|
from avocado_qemu import exec_command_and_wait_for_pattern
|
||||||
from avocado_qemu import wait_for_console_pattern
|
from avocado_qemu import wait_for_console_pattern
|
||||||
@ -133,8 +134,10 @@ class S390CCWVirtioMachine(Test):
|
|||||||
self.vm.command('device_add', driver='virtio-net-ccw',
|
self.vm.command('device_add', driver='virtio-net-ccw',
|
||||||
devno='fe.0.4711', id='net_4711')
|
devno='fe.0.4711', id='net_4711')
|
||||||
self.wait_for_crw_reports()
|
self.wait_for_crw_reports()
|
||||||
exec_command_and_wait_for_pattern(self, 'ls /sys/bus/ccw/devices/',
|
exec_command_and_wait_for_pattern(self, 'for i in 1 2 3 4 5 6 7 ; do '
|
||||||
'0.0.4711')
|
'if [ -e /sys/bus/ccw/devices/*4711 ]; then break; fi ;'
|
||||||
|
'sleep 1 ; done ; ls /sys/bus/ccw/devices/',
|
||||||
|
'0.0.4711')
|
||||||
# and detach it again
|
# and detach it again
|
||||||
self.clear_guest_dmesg()
|
self.clear_guest_dmesg()
|
||||||
self.vm.command('device_del', id='net_4711')
|
self.vm.command('device_del', id='net_4711')
|
||||||
@ -155,6 +158,7 @@ class S390CCWVirtioMachine(Test):
|
|||||||
'MemTotal: 115640 kB')
|
'MemTotal: 115640 kB')
|
||||||
|
|
||||||
|
|
||||||
|
@skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab')
|
||||||
def test_s390x_fedora(self):
|
def test_s390x_fedora(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -199,6 +203,9 @@ class S390CCWVirtioMachine(Test):
|
|||||||
|
|
||||||
# Some tests to see whether the CLI options have been considered:
|
# Some tests to see whether the CLI options have been considered:
|
||||||
self.log.info("Test whether QEMU CLI options have been considered")
|
self.log.info("Test whether QEMU CLI options have been considered")
|
||||||
|
exec_command_and_wait_for_pattern(self,
|
||||||
|
'while ! (dmesg | grep enP7p0s0) ; do sleep 1 ; done',
|
||||||
|
'virtio_net virtio0 enP7p0s0: renamed')
|
||||||
exec_command_and_wait_for_pattern(self, 'lspci',
|
exec_command_and_wait_for_pattern(self, 'lspci',
|
||||||
'0007:00:00.0 Class 0200: Device 1af4:1000')
|
'0007:00:00.0 Class 0200: Device 1af4:1000')
|
||||||
exec_command_and_wait_for_pattern(self,
|
exec_command_and_wait_for_pattern(self,
|
||||||
@ -222,6 +229,9 @@ class S390CCWVirtioMachine(Test):
|
|||||||
# can simply read the written "magic bytes" back from the PPM file to
|
# can simply read the written "magic bytes" back from the PPM file to
|
||||||
# check whether the framebuffer is working as expected.
|
# check whether the framebuffer is working as expected.
|
||||||
self.log.info("Test screendump of virtio-gpu device")
|
self.log.info("Test screendump of virtio-gpu device")
|
||||||
|
exec_command_and_wait_for_pattern(self,
|
||||||
|
'while ! (dmesg | grep gpudrmfb) ; do sleep 1 ; done',
|
||||||
|
'virtio_gpudrmfb frame buffer device')
|
||||||
exec_command_and_wait_for_pattern(self,
|
exec_command_and_wait_for_pattern(self,
|
||||||
'echo -e "\e[?25l" > /dev/tty0', ':/#')
|
'echo -e "\e[?25l" > /dev/tty0', ':/#')
|
||||||
exec_command_and_wait_for_pattern(self, 'for ((i=0;i<250;i++)); do '
|
exec_command_and_wait_for_pattern(self, 'for ((i=0;i<250;i++)); do '
|
||||||
|
55
tests/docker/dockerfiles/opensuse-leap.docker
Normal file
55
tests/docker/dockerfiles/opensuse-leap.docker
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
FROM opensuse/leap:15.2
|
||||||
|
|
||||||
|
# Please keep this list sorted alphabetically
|
||||||
|
ENV PACKAGES \
|
||||||
|
bc \
|
||||||
|
brlapi-devel \
|
||||||
|
bzip2 \
|
||||||
|
cyrus-sasl-devel \
|
||||||
|
gcc \
|
||||||
|
gcc-c++ \
|
||||||
|
mkisofs \
|
||||||
|
gettext-runtime \
|
||||||
|
git \
|
||||||
|
glib2-devel \
|
||||||
|
glusterfs-devel \
|
||||||
|
libgnutls-devel \
|
||||||
|
gtk3-devel \
|
||||||
|
libaio-devel \
|
||||||
|
libattr-devel \
|
||||||
|
libcap-ng-devel \
|
||||||
|
libepoxy-devel \
|
||||||
|
libfdt-devel \
|
||||||
|
libiscsi-devel \
|
||||||
|
libjpeg8-devel \
|
||||||
|
libpmem-devel \
|
||||||
|
libpng16-devel \
|
||||||
|
librbd-devel \
|
||||||
|
libseccomp-devel \
|
||||||
|
libssh-devel \
|
||||||
|
lzo-devel \
|
||||||
|
make \
|
||||||
|
libSDL2_image-devel \
|
||||||
|
ncurses-devel \
|
||||||
|
ninja \
|
||||||
|
libnuma-devel \
|
||||||
|
perl \
|
||||||
|
libpixman-1-0-devel \
|
||||||
|
python3-base \
|
||||||
|
python3-virtualenv \
|
||||||
|
rdma-core-devel \
|
||||||
|
libSDL2-devel \
|
||||||
|
snappy-devel \
|
||||||
|
libspice-server-devel \
|
||||||
|
systemd-devel \
|
||||||
|
systemtap-sdt-devel \
|
||||||
|
tar \
|
||||||
|
usbredir-devel \
|
||||||
|
virglrenderer-devel \
|
||||||
|
xen-devel \
|
||||||
|
vte-devel \
|
||||||
|
zlib-devel
|
||||||
|
ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3.6
|
||||||
|
|
||||||
|
RUN zypper update -y && zypper --non-interactive install -y $PACKAGES
|
||||||
|
RUN rpm -q $PACKAGES | sort > /packages.txt
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include "hw/core/cpu.h"
|
#include "hw/core/cpu.h"
|
||||||
#include "tests/qtest/libqos/libqtest.h"
|
#include "tests/qtest/libqos/libqtest.h"
|
||||||
|
#include "tests/qtest/libqos/pci-pc.h"
|
||||||
#include "fuzz.h"
|
#include "fuzz.h"
|
||||||
#include "fork_fuzz.h"
|
#include "fork_fuzz.h"
|
||||||
#include "exec/address-spaces.h"
|
#include "exec/address-spaces.h"
|
||||||
@ -762,10 +763,29 @@ static int locate_fuzz_objects(Object *child, void *opaque)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void pci_enum(gpointer pcidev, gpointer bus)
|
||||||
|
{
|
||||||
|
PCIDevice *dev = pcidev;
|
||||||
|
QPCIDevice *qdev;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
qdev = qpci_device_find(bus, dev->devfn);
|
||||||
|
g_assert(qdev != NULL);
|
||||||
|
for (i = 0; i < 6; i++) {
|
||||||
|
if (dev->io_regions[i].size) {
|
||||||
|
qpci_iomap(qdev, i, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
qpci_device_enable(qdev);
|
||||||
|
g_free(qdev);
|
||||||
|
}
|
||||||
|
|
||||||
static void generic_pre_fuzz(QTestState *s)
|
static void generic_pre_fuzz(QTestState *s)
|
||||||
{
|
{
|
||||||
GHashTableIter iter;
|
GHashTableIter iter;
|
||||||
MemoryRegion *mr;
|
MemoryRegion *mr;
|
||||||
|
QPCIBus *pcibus;
|
||||||
char **result;
|
char **result;
|
||||||
|
|
||||||
if (!getenv("QEMU_FUZZ_OBJECTS")) {
|
if (!getenv("QEMU_FUZZ_OBJECTS")) {
|
||||||
@ -810,6 +830,10 @@ static void generic_pre_fuzz(QTestState *s)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pcibus = qpci_new_pc(s, NULL);
|
||||||
|
g_ptr_array_foreach(fuzzable_pci_devices, pci_enum, pcibus);
|
||||||
|
qpci_free_pc(pcibus);
|
||||||
|
|
||||||
counter_shm_init();
|
counter_shm_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1279,7 +1279,7 @@ void qtest_cb_for_every_machine(void (*cb)(const char *machine),
|
|||||||
g_assert(qstr);
|
g_assert(qstr);
|
||||||
mname = qstring_get_str(qstr);
|
mname = qstring_get_str(qstr);
|
||||||
/* Ignore machines that cannot be used for qtests */
|
/* Ignore machines that cannot be used for qtests */
|
||||||
if (!memcmp("xenfv", mname, 5) || g_str_equal("xenpv", mname)) {
|
if (!strncmp("xenfv", mname, 5) || g_str_equal("xenpv", mname)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!skip_old_versioned || !qtest_is_old_versioned_machine(mname)) {
|
if (!skip_old_versioned || !qtest_is_old_versioned_machine(mname)) {
|
||||||
|
@ -59,7 +59,7 @@ void *qemu_try_memalign(size_t alignment, size_t size)
|
|||||||
|
|
||||||
g_assert(size != 0);
|
g_assert(size != 0);
|
||||||
g_assert(is_power_of_2(alignment));
|
g_assert(is_power_of_2(alignment));
|
||||||
ptr = _aligned_malloc(alignment, size);
|
ptr = _aligned_malloc(size, alignment);
|
||||||
trace_qemu_memalign(alignment, size, ptr);
|
trace_qemu_memalign(alignment, size, ptr);
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user