Pull request linux-user 20220525
s390x fixes CPUArchState cleanup elfload cleanup fix for uclibc-ng and by musl -----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEEzS913cjjpNwuT1Fz8ww4vT8vvjwFAmKOB6ISHGxhdXJlbnRA dml2aWVyLmV1AAoJEPMMOL0/L748UooP/38pbx20Zz1ZJcT5jkfJNOScg2mlHmeJ 2pr+8HRXyGXjkFsqNLKPSDB5/bEa9reCBIuVFR3kLxFdERE8G8PQqAH7tp8Sd3LT HFEGQ3nK6DGRNRnLQqpzSyG6ZpktpJrHmXpdh3HxGM2r/gPnWV/XKM87YvG+kOKe XU75Yx9F8VMYUjbDoAYuUOPOPvvrnTpLnFOedss6WXOJJFJvE7jzPMx4mwiYlXIj IrjHAd+rK3yUXziqM4gqZjrNvRw7+UhaNv1gDJGHFw+aSRrrDSl5OiNHZstAcRUD Kx4TVMCm2m8vYxtX2QKBz6DSonOVe0/w6aRKiqZmDfxPfxPvtjtfnREZGqyb211T 3uMbtWI/kkqL9Fw1nNVJyzdKCqf0YSDzmfWdgqhYq568IX1DUZgIMgDMPfBo3N5N euH4UVaFwy+s/pq5lW2EIZm6TAKllpseMyDPUrva8Wis9hAEV4CTMq6Z8XlnzxSd Jwwizxt0pItpmiPPGr4eGSM9uY1aFKgqiMFyCZATTrmHe4AQrssEV2cH5Wg6veaY cE7VaA5grwUlToYSQaRNRjqTqW64uDxhz8wTfsAe9hRT2dNFJdHibtBrOeepl35R 5cWQzHas3pTUx9D/gzUtkstoWIKlDSppxpIHcFKxcEKOLreUFEwYVLJuA9+IgLVl /vcZHcEAjz/k =B9Rm -----END PGP SIGNATURE----- Merge tag 'linux-user-for-7.1-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging Pull request linux-user 20220525 s390x fixes CPUArchState cleanup elfload cleanup fix for uclibc-ng and by musl # -----BEGIN PGP SIGNATURE----- # # iQJGBAABCAAwFiEEzS913cjjpNwuT1Fz8ww4vT8vvjwFAmKOB6ISHGxhdXJlbnRA # dml2aWVyLmV1AAoJEPMMOL0/L748UooP/38pbx20Zz1ZJcT5jkfJNOScg2mlHmeJ # 2pr+8HRXyGXjkFsqNLKPSDB5/bEa9reCBIuVFR3kLxFdERE8G8PQqAH7tp8Sd3LT # HFEGQ3nK6DGRNRnLQqpzSyG6ZpktpJrHmXpdh3HxGM2r/gPnWV/XKM87YvG+kOKe # XU75Yx9F8VMYUjbDoAYuUOPOPvvrnTpLnFOedss6WXOJJFJvE7jzPMx4mwiYlXIj # IrjHAd+rK3yUXziqM4gqZjrNvRw7+UhaNv1gDJGHFw+aSRrrDSl5OiNHZstAcRUD # Kx4TVMCm2m8vYxtX2QKBz6DSonOVe0/w6aRKiqZmDfxPfxPvtjtfnREZGqyb211T # 3uMbtWI/kkqL9Fw1nNVJyzdKCqf0YSDzmfWdgqhYq568IX1DUZgIMgDMPfBo3N5N # euH4UVaFwy+s/pq5lW2EIZm6TAKllpseMyDPUrva8Wis9hAEV4CTMq6Z8XlnzxSd # Jwwizxt0pItpmiPPGr4eGSM9uY1aFKgqiMFyCZATTrmHe4AQrssEV2cH5Wg6veaY # cE7VaA5grwUlToYSQaRNRjqTqW64uDxhz8wTfsAe9hRT2dNFJdHibtBrOeepl35R # 5cWQzHas3pTUx9D/gzUtkstoWIKlDSppxpIHcFKxcEKOLreUFEwYVLJuA9+IgLVl # /vcZHcEAjz/k # =B9Rm # -----END PGP SIGNATURE----- # gpg: Signature made Wed 25 May 2022 03:40:34 AM PDT # gpg: using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C # gpg: issuer "laurent@vivier.eu" # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [undefined] # gpg: aka "Laurent Vivier <laurent@vivier.eu>" [undefined] # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * tag 'linux-user-for-7.1-pull-request' of https://gitlab.com/laurent_vivier/qemu: linux-user/host/s390: Treat EX and EXRL as writes tests/tcg/s390x: Test unwinding from signal handlers linux-user/s390x: Fix unwinding from signal handlers linux-user: Remove pointless CPU{ARCH}State casts linux-user: Have do_syscall() use CPUArchState* instead of void* linux-user/elfload: Remove pointless non-const CPUArchState cast linux-user/syscall.c: fix build without RLIMIT_RTTIME linux-user: Clean up arg_start/arg_end confusion Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
commit
6882d65161
@ -1516,8 +1516,8 @@ static inline void init_thread(struct target_pt_regs *regs,
|
||||
regs->iaoq[0] = infop->entry;
|
||||
regs->iaoq[1] = infop->entry + 4;
|
||||
regs->gr[23] = 0;
|
||||
regs->gr[24] = infop->arg_start;
|
||||
regs->gr[25] = (infop->arg_end - infop->arg_start) / sizeof(abi_ulong);
|
||||
regs->gr[24] = infop->argv;
|
||||
regs->gr[25] = infop->argc;
|
||||
/* The top-of-stack contains a linkage buffer. */
|
||||
regs->gr[30] = infop->start_stack + 64;
|
||||
regs->gr[31] = infop->entry;
|
||||
@ -2120,8 +2120,10 @@ static abi_ulong create_elf_tables(abi_ulong p, int argc, int envc,
|
||||
u_envp = u_argv + (argc + 1) * n;
|
||||
u_auxv = u_envp + (envc + 1) * n;
|
||||
info->saved_auxv = u_auxv;
|
||||
info->arg_start = u_argv;
|
||||
info->arg_end = u_argv + argc * n;
|
||||
info->argc = argc;
|
||||
info->envc = envc;
|
||||
info->argv = u_argv;
|
||||
info->envp = u_envp;
|
||||
|
||||
/* This is correct because Linux defines
|
||||
* elf_addr_t as Elf32_Off / Elf64_Off
|
||||
@ -3971,7 +3973,7 @@ static int fill_note_info(struct elf_note_info *info,
|
||||
if (cpu == thread_cpu) {
|
||||
continue;
|
||||
}
|
||||
fill_thread_info(info, (CPUArchState *)cpu->env_ptr);
|
||||
fill_thread_info(info, cpu->env_ptr);
|
||||
}
|
||||
cpu_list_unlock();
|
||||
|
||||
|
@ -50,6 +50,7 @@ static inline bool host_signal_write(siginfo_t *info, host_sigcontext *uc)
|
||||
case 0x50: /* ST */
|
||||
case 0x42: /* STC */
|
||||
case 0x40: /* STH */
|
||||
case 0x44: /* EX */
|
||||
case 0xba: /* CS */
|
||||
case 0xbb: /* CDS */
|
||||
return true;
|
||||
@ -61,6 +62,12 @@ static inline bool host_signal_write(siginfo_t *info, host_sigcontext *uc)
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case 0xc6: /* RIL-b format insns */
|
||||
switch (pinsn[0] & 0xf) {
|
||||
case 0x0: /* EXRL */
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case 0xc8: /* SSF format insns */
|
||||
switch (pinsn[0] & 0xf) {
|
||||
case 0x2: /* CSST */
|
||||
|
@ -92,6 +92,11 @@ abi_ulong loader_build_argptr(int envc, int argc, abi_ulong sp,
|
||||
envp = sp;
|
||||
sp -= (argc + 1) * n;
|
||||
argv = sp;
|
||||
ts->info->envp = envp;
|
||||
ts->info->envc = envc;
|
||||
ts->info->argv = argv;
|
||||
ts->info->argc = argc;
|
||||
|
||||
if (push_ptr) {
|
||||
/* FIXME - handle put_user() failures */
|
||||
sp -= n;
|
||||
@ -99,19 +104,22 @@ abi_ulong loader_build_argptr(int envc, int argc, abi_ulong sp,
|
||||
sp -= n;
|
||||
put_user_ual(argv, sp);
|
||||
}
|
||||
|
||||
sp -= n;
|
||||
/* FIXME - handle put_user() failures */
|
||||
put_user_ual(argc, sp);
|
||||
ts->info->arg_start = stringp;
|
||||
|
||||
ts->info->arg_strings = stringp;
|
||||
while (argc-- > 0) {
|
||||
/* FIXME - handle put_user() failures */
|
||||
put_user_ual(stringp, argv);
|
||||
argv += n;
|
||||
stringp += target_strlen(stringp) + 1;
|
||||
}
|
||||
ts->info->arg_end = stringp;
|
||||
/* FIXME - handle put_user() failures */
|
||||
put_user_ual(0, argv);
|
||||
|
||||
ts->info->env_strings = stringp;
|
||||
while (envc-- > 0) {
|
||||
/* FIXME - handle put_user() failures */
|
||||
put_user_ual(stringp, envp);
|
||||
|
@ -878,9 +878,9 @@ int main(int argc, char **argv, char **envp)
|
||||
fprintf(f, "entry 0x" TARGET_ABI_FMT_lx "\n",
|
||||
info->entry);
|
||||
fprintf(f, "argv_start 0x" TARGET_ABI_FMT_lx "\n",
|
||||
info->arg_start);
|
||||
info->argv);
|
||||
fprintf(f, "env_start 0x" TARGET_ABI_FMT_lx "\n",
|
||||
info->arg_end + (abi_ulong)sizeof(abi_ulong));
|
||||
info->envp);
|
||||
fprintf(f, "auxv_start 0x" TARGET_ABI_FMT_lx "\n",
|
||||
info->saved_auxv);
|
||||
qemu_log_unlock(f);
|
||||
|
@ -40,15 +40,19 @@ struct image_info {
|
||||
abi_ulong data_offset;
|
||||
abi_ulong saved_auxv;
|
||||
abi_ulong auxv_len;
|
||||
abi_ulong arg_start;
|
||||
abi_ulong arg_end;
|
||||
abi_ulong arg_strings;
|
||||
abi_ulong env_strings;
|
||||
abi_ulong argc;
|
||||
abi_ulong argv;
|
||||
abi_ulong envc;
|
||||
abi_ulong envp;
|
||||
abi_ulong file_string;
|
||||
uint32_t elf_flags;
|
||||
int personality;
|
||||
abi_ulong alignment;
|
||||
|
||||
/* Generic semihosting knows about these pointers. */
|
||||
abi_ulong arg_strings; /* strings for argv */
|
||||
abi_ulong env_strings; /* strings for envp; ends arg_strings */
|
||||
|
||||
/* The fields below are used in FDPIC mode. */
|
||||
abi_ulong loadmap_addr;
|
||||
uint16_t nsegs;
|
||||
|
@ -84,6 +84,11 @@ struct target_ucontext {
|
||||
|
||||
typedef struct {
|
||||
uint8_t callee_used_stack[__SIGNAL_FRAMESIZE];
|
||||
/*
|
||||
* This field is no longer initialized by the kernel, but it's still a part
|
||||
* of the ABI.
|
||||
*/
|
||||
uint16_t svc_insn;
|
||||
struct target_siginfo info;
|
||||
struct target_ucontext uc;
|
||||
} rt_sigframe;
|
||||
|
@ -22,10 +22,10 @@ struct syscallname {
|
||||
int nr;
|
||||
const char *name;
|
||||
const char *format;
|
||||
void (*call)(void *, const struct syscallname *,
|
||||
void (*call)(CPUArchState *, const struct syscallname *,
|
||||
abi_long, abi_long, abi_long,
|
||||
abi_long, abi_long, abi_long);
|
||||
void (*result)(void *, const struct syscallname *, abi_long,
|
||||
void (*result)(CPUArchState *, const struct syscallname *, abi_long,
|
||||
abi_long, abi_long, abi_long,
|
||||
abi_long, abi_long, abi_long);
|
||||
};
|
||||
@ -593,7 +593,7 @@ print_fdset(int n, abi_ulong target_fds_addr)
|
||||
/* select */
|
||||
#ifdef TARGET_NR__newselect
|
||||
static void
|
||||
print_newselect(void *cpu_env, const struct syscallname *name,
|
||||
print_newselect(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
@ -611,7 +611,7 @@ print_newselect(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_semctl
|
||||
static void
|
||||
print_semctl(void *cpu_env, const struct syscallname *name,
|
||||
print_semctl(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
@ -623,7 +623,7 @@ print_semctl(void *cpu_env, const struct syscallname *name,
|
||||
#endif
|
||||
|
||||
static void
|
||||
print_execve(void *cpu_env, const struct syscallname *name,
|
||||
print_execve(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
@ -656,7 +656,7 @@ print_execve(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_ipc
|
||||
static void
|
||||
print_ipc(void *cpu_env, const struct syscallname *name,
|
||||
print_ipc(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
@ -700,7 +700,7 @@ print_syscall_err(abi_long ret)
|
||||
}
|
||||
|
||||
static void
|
||||
print_syscall_ret_addr(void *cpu_env, const struct syscallname *name,
|
||||
print_syscall_ret_addr(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long ret, abi_long arg0, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5)
|
||||
@ -721,7 +721,7 @@ print_syscall_ret_raw(struct syscallname *name, abi_long ret)
|
||||
|
||||
#ifdef TARGET_NR__newselect
|
||||
static void
|
||||
print_syscall_ret_newselect(void *cpu_env, const struct syscallname *name,
|
||||
print_syscall_ret_newselect(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long ret, abi_long arg0, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5)
|
||||
@ -751,7 +751,7 @@ print_syscall_ret_newselect(void *cpu_env, const struct syscallname *name,
|
||||
#define TARGET_TIME_ERROR 5 /* clock not synchronized */
|
||||
#ifdef TARGET_NR_adjtimex
|
||||
static void
|
||||
print_syscall_ret_adjtimex(void *cpu_env, const struct syscallname *name,
|
||||
print_syscall_ret_adjtimex(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long ret, abi_long arg0, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5)
|
||||
@ -786,7 +786,7 @@ print_syscall_ret_adjtimex(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_clock_gettime) || defined(TARGET_NR_clock_getres)
|
||||
static void
|
||||
print_syscall_ret_clock_gettime(void *cpu_env, const struct syscallname *name,
|
||||
print_syscall_ret_clock_gettime(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long ret, abi_long arg0, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5)
|
||||
@ -805,7 +805,7 @@ print_syscall_ret_clock_gettime(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_gettimeofday
|
||||
static void
|
||||
print_syscall_ret_gettimeofday(void *cpu_env, const struct syscallname *name,
|
||||
print_syscall_ret_gettimeofday(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long ret, abi_long arg0, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5)
|
||||
@ -824,7 +824,7 @@ print_syscall_ret_gettimeofday(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_getitimer
|
||||
static void
|
||||
print_syscall_ret_getitimer(void *cpu_env, const struct syscallname *name,
|
||||
print_syscall_ret_getitimer(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long ret, abi_long arg0, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5)
|
||||
@ -843,7 +843,7 @@ print_syscall_ret_getitimer(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_getitimer
|
||||
static void
|
||||
print_syscall_ret_setitimer(void *cpu_env, const struct syscallname *name,
|
||||
print_syscall_ret_setitimer(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long ret, abi_long arg0, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5)
|
||||
@ -862,7 +862,7 @@ print_syscall_ret_setitimer(void *cpu_env, const struct syscallname *name,
|
||||
#if defined(TARGET_NR_listxattr) || defined(TARGET_NR_llistxattr) \
|
||||
|| defined(TARGGET_NR_flistxattr)
|
||||
static void
|
||||
print_syscall_ret_listxattr(void *cpu_env, const struct syscallname *name,
|
||||
print_syscall_ret_listxattr(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long ret, abi_long arg0, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5)
|
||||
@ -894,7 +894,7 @@ print_syscall_ret_listxattr(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_ioctl
|
||||
static void
|
||||
print_syscall_ret_ioctl(void *cpu_env, const struct syscallname *name,
|
||||
print_syscall_ret_ioctl(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long ret, abi_long arg0, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5)
|
||||
@ -1760,7 +1760,7 @@ print_termios(void *arg)
|
||||
|
||||
#ifdef TARGET_NR_accept
|
||||
static void
|
||||
print_accept(void *cpu_env, const struct syscallname *name,
|
||||
print_accept(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1774,7 +1774,7 @@ print_accept(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_access
|
||||
static void
|
||||
print_access(void *cpu_env, const struct syscallname *name,
|
||||
print_access(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1787,7 +1787,7 @@ print_access(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_acct
|
||||
static void
|
||||
print_acct(void *cpu_env, const struct syscallname *name,
|
||||
print_acct(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1799,7 +1799,7 @@ print_acct(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_brk
|
||||
static void
|
||||
print_brk(void *cpu_env, const struct syscallname *name,
|
||||
print_brk(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1811,7 +1811,7 @@ print_brk(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_chdir
|
||||
static void
|
||||
print_chdir(void *cpu_env, const struct syscallname *name,
|
||||
print_chdir(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1823,7 +1823,7 @@ print_chdir(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_chroot
|
||||
static void
|
||||
print_chroot(void *cpu_env, const struct syscallname *name,
|
||||
print_chroot(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1835,7 +1835,7 @@ print_chroot(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_chmod
|
||||
static void
|
||||
print_chmod(void *cpu_env, const struct syscallname *name,
|
||||
print_chmod(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1848,7 +1848,7 @@ print_chmod(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_chown) || defined(TARGET_NR_lchown)
|
||||
static void
|
||||
print_chown(void *cpu_env, const struct syscallname *name,
|
||||
print_chown(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1863,7 +1863,7 @@ print_chown(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_clock_adjtime
|
||||
static void
|
||||
print_clock_adjtime(void *cpu_env, const struct syscallname *name,
|
||||
print_clock_adjtime(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1887,7 +1887,7 @@ static void do_print_clone(unsigned int flags, abi_ulong newsp,
|
||||
}
|
||||
|
||||
static void
|
||||
print_clone(void *cpu_env, const struct syscallname *name,
|
||||
print_clone(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
@ -1907,7 +1907,7 @@ print_clone(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_creat
|
||||
static void
|
||||
print_creat(void *cpu_env, const struct syscallname *name,
|
||||
print_creat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1920,7 +1920,7 @@ print_creat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_execv
|
||||
static void
|
||||
print_execv(void *cpu_env, const struct syscallname *name,
|
||||
print_execv(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1933,7 +1933,7 @@ print_execv(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_faccessat
|
||||
static void
|
||||
print_faccessat(void *cpu_env, const struct syscallname *name,
|
||||
print_faccessat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1948,7 +1948,7 @@ print_faccessat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_fallocate
|
||||
static void
|
||||
print_fallocate(void *cpu_env, const struct syscallname *name,
|
||||
print_fallocate(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1968,7 +1968,7 @@ print_fallocate(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_fchmodat
|
||||
static void
|
||||
print_fchmodat(void *cpu_env, const struct syscallname *name,
|
||||
print_fchmodat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1983,7 +1983,7 @@ print_fchmodat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_fchownat
|
||||
static void
|
||||
print_fchownat(void *cpu_env, const struct syscallname *name,
|
||||
print_fchownat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -1999,7 +1999,7 @@ print_fchownat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_fcntl) || defined(TARGET_NR_fcntl64)
|
||||
static void
|
||||
print_fcntl(void *cpu_env, const struct syscallname *name,
|
||||
print_fcntl(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2135,7 +2135,7 @@ print_fcntl(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_fgetxattr
|
||||
static void
|
||||
print_fgetxattr(void *cpu_env, const struct syscallname *name,
|
||||
print_fgetxattr(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2150,7 +2150,7 @@ print_fgetxattr(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_flistxattr
|
||||
static void
|
||||
print_flistxattr(void *cpu_env, const struct syscallname *name,
|
||||
print_flistxattr(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2164,7 +2164,7 @@ print_flistxattr(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_getxattr) || defined(TARGET_NR_lgetxattr)
|
||||
static void
|
||||
print_getxattr(void *cpu_env, const struct syscallname *name,
|
||||
print_getxattr(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2180,7 +2180,7 @@ print_getxattr(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_listxattr) || defined(TARGET_NR_llistxattr)
|
||||
static void
|
||||
print_listxattr(void *cpu_env, const struct syscallname *name,
|
||||
print_listxattr(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2195,7 +2195,7 @@ print_listxattr(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_fremovexattr)
|
||||
static void
|
||||
print_fremovexattr(void *cpu_env, const struct syscallname *name,
|
||||
print_fremovexattr(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2208,7 +2208,7 @@ print_fremovexattr(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_removexattr) || defined(TARGET_NR_lremovexattr)
|
||||
static void
|
||||
print_removexattr(void *cpu_env, const struct syscallname *name,
|
||||
print_removexattr(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2222,7 +2222,7 @@ print_removexattr(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_futimesat
|
||||
static void
|
||||
print_futimesat(void *cpu_env, const struct syscallname *name,
|
||||
print_futimesat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2237,7 +2237,7 @@ print_futimesat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_gettimeofday
|
||||
static void
|
||||
print_gettimeofday(void *cpu_env, const struct syscallname *name,
|
||||
print_gettimeofday(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2250,7 +2250,7 @@ print_gettimeofday(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_settimeofday
|
||||
static void
|
||||
print_settimeofday(void *cpu_env, const struct syscallname *name,
|
||||
print_settimeofday(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2263,7 +2263,7 @@ print_settimeofday(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_clock_gettime) || defined(TARGET_NR_clock_getres)
|
||||
static void
|
||||
print_clock_gettime(void *cpu_env, const struct syscallname *name,
|
||||
print_clock_gettime(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2277,7 +2277,7 @@ print_clock_gettime(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_clock_settime
|
||||
static void
|
||||
print_clock_settime(void *cpu_env, const struct syscallname *name,
|
||||
print_clock_settime(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2290,7 +2290,7 @@ print_clock_settime(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_getitimer
|
||||
static void
|
||||
print_getitimer(void *cpu_env, const struct syscallname *name,
|
||||
print_getitimer(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2303,7 +2303,7 @@ print_getitimer(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_setitimer
|
||||
static void
|
||||
print_setitimer(void *cpu_env, const struct syscallname *name,
|
||||
print_setitimer(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2317,7 +2317,7 @@ print_setitimer(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_link
|
||||
static void
|
||||
print_link(void *cpu_env, const struct syscallname *name,
|
||||
print_link(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2330,7 +2330,7 @@ print_link(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_linkat
|
||||
static void
|
||||
print_linkat(void *cpu_env, const struct syscallname *name,
|
||||
print_linkat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2346,7 +2346,7 @@ print_linkat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR__llseek) || defined(TARGET_NR_llseek)
|
||||
static void
|
||||
print__llseek(void *cpu_env, const struct syscallname *name,
|
||||
print__llseek(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2369,7 +2369,7 @@ print__llseek(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_lseek
|
||||
static void
|
||||
print_lseek(void *cpu_env, const struct syscallname *name,
|
||||
print_lseek(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2400,7 +2400,7 @@ print_lseek(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_truncate
|
||||
static void
|
||||
print_truncate(void *cpu_env, const struct syscallname *name,
|
||||
print_truncate(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2413,7 +2413,7 @@ print_truncate(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_truncate64
|
||||
static void
|
||||
print_truncate64(void *cpu_env, const struct syscallname *name,
|
||||
print_truncate64(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2430,7 +2430,7 @@ print_truncate64(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_ftruncate64
|
||||
static void
|
||||
print_ftruncate64(void *cpu_env, const struct syscallname *name,
|
||||
print_ftruncate64(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2447,7 +2447,7 @@ print_ftruncate64(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_mlockall
|
||||
static void
|
||||
print_mlockall(void *cpu_env, const struct syscallname *name,
|
||||
print_mlockall(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2459,7 +2459,7 @@ print_mlockall(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_socket)
|
||||
static void
|
||||
print_socket(void *cpu_env, const struct syscallname *name,
|
||||
print_socket(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2920,7 +2920,7 @@ static struct {
|
||||
};
|
||||
|
||||
static void
|
||||
print_socketcall(void *cpu_env, const struct syscallname *name,
|
||||
print_socketcall(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2941,7 +2941,7 @@ print_socketcall(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_bind)
|
||||
static void
|
||||
print_bind(void *cpu_env, const struct syscallname *name,
|
||||
print_bind(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2955,7 +2955,7 @@ print_bind(void *cpu_env, const struct syscallname *name,
|
||||
#if defined(TARGET_NR_stat) || defined(TARGET_NR_stat64) || \
|
||||
defined(TARGET_NR_lstat) || defined(TARGET_NR_lstat64)
|
||||
static void
|
||||
print_stat(void *cpu_env, const struct syscallname *name,
|
||||
print_stat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2971,7 +2971,7 @@ print_stat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_fstat) || defined(TARGET_NR_fstat64)
|
||||
static void
|
||||
print_fstat(void *cpu_env, const struct syscallname *name,
|
||||
print_fstat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2985,7 +2985,7 @@ print_fstat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_mkdir
|
||||
static void
|
||||
print_mkdir(void *cpu_env, const struct syscallname *name,
|
||||
print_mkdir(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -2998,7 +2998,7 @@ print_mkdir(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_mkdirat
|
||||
static void
|
||||
print_mkdirat(void *cpu_env, const struct syscallname *name,
|
||||
print_mkdirat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3012,7 +3012,7 @@ print_mkdirat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_rmdir
|
||||
static void
|
||||
print_rmdir(void *cpu_env, const struct syscallname *name,
|
||||
print_rmdir(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3024,7 +3024,7 @@ print_rmdir(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_rt_sigaction
|
||||
static void
|
||||
print_rt_sigaction(void *cpu_env, const struct syscallname *name,
|
||||
print_rt_sigaction(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3038,7 +3038,7 @@ print_rt_sigaction(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_rt_sigprocmask
|
||||
static void
|
||||
print_rt_sigprocmask(void *cpu_env, const struct syscallname *name,
|
||||
print_rt_sigprocmask(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3058,7 +3058,7 @@ print_rt_sigprocmask(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_rt_sigqueueinfo
|
||||
static void
|
||||
print_rt_sigqueueinfo(void *cpu_env, const struct syscallname *name,
|
||||
print_rt_sigqueueinfo(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3083,7 +3083,7 @@ print_rt_sigqueueinfo(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_rt_tgsigqueueinfo
|
||||
static void
|
||||
print_rt_tgsigqueueinfo(void *cpu_env, const struct syscallname *name,
|
||||
print_rt_tgsigqueueinfo(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3167,7 +3167,7 @@ print_syslog_action(abi_ulong arg, int last)
|
||||
}
|
||||
|
||||
static void
|
||||
print_syslog(void *cpu_env, const struct syscallname *name,
|
||||
print_syslog(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3181,7 +3181,7 @@ print_syslog(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_mknod
|
||||
static void
|
||||
print_mknod(void *cpu_env, const struct syscallname *name,
|
||||
print_mknod(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3200,7 +3200,7 @@ print_mknod(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_mknodat
|
||||
static void
|
||||
print_mknodat(void *cpu_env, const struct syscallname *name,
|
||||
print_mknodat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3220,7 +3220,7 @@ print_mknodat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_mq_open
|
||||
static void
|
||||
print_mq_open(void *cpu_env, const struct syscallname *name,
|
||||
print_mq_open(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3239,7 +3239,7 @@ print_mq_open(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_open
|
||||
static void
|
||||
print_open(void *cpu_env, const struct syscallname *name,
|
||||
print_open(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3256,7 +3256,7 @@ print_open(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_openat
|
||||
static void
|
||||
print_openat(void *cpu_env, const struct syscallname *name,
|
||||
print_openat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3274,7 +3274,7 @@ print_openat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_mq_unlink
|
||||
static void
|
||||
print_mq_unlink(void *cpu_env, const struct syscallname *name,
|
||||
print_mq_unlink(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3286,7 +3286,7 @@ print_mq_unlink(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_fstatat64) || defined(TARGET_NR_newfstatat)
|
||||
static void
|
||||
print_fstatat64(void *cpu_env, const struct syscallname *name,
|
||||
print_fstatat64(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3302,7 +3302,7 @@ print_fstatat64(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_readlink
|
||||
static void
|
||||
print_readlink(void *cpu_env, const struct syscallname *name,
|
||||
print_readlink(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3316,7 +3316,7 @@ print_readlink(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_readlinkat
|
||||
static void
|
||||
print_readlinkat(void *cpu_env, const struct syscallname *name,
|
||||
print_readlinkat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3331,7 +3331,7 @@ print_readlinkat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_rename
|
||||
static void
|
||||
print_rename(void *cpu_env, const struct syscallname *name,
|
||||
print_rename(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3344,7 +3344,7 @@ print_rename(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_renameat
|
||||
static void
|
||||
print_renameat(void *cpu_env, const struct syscallname *name,
|
||||
print_renameat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3359,7 +3359,7 @@ print_renameat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_statfs
|
||||
static void
|
||||
print_statfs(void *cpu_env, const struct syscallname *name,
|
||||
print_statfs(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3372,7 +3372,7 @@ print_statfs(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_statfs64
|
||||
static void
|
||||
print_statfs64(void *cpu_env, const struct syscallname *name,
|
||||
print_statfs64(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3385,7 +3385,7 @@ print_statfs64(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_symlink
|
||||
static void
|
||||
print_symlink(void *cpu_env, const struct syscallname *name,
|
||||
print_symlink(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3398,7 +3398,7 @@ print_symlink(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_symlinkat
|
||||
static void
|
||||
print_symlinkat(void *cpu_env, const struct syscallname *name,
|
||||
print_symlinkat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3412,7 +3412,7 @@ print_symlinkat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_mount
|
||||
static void
|
||||
print_mount(void *cpu_env, const struct syscallname *name,
|
||||
print_mount(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3428,7 +3428,7 @@ print_mount(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_umount
|
||||
static void
|
||||
print_umount(void *cpu_env, const struct syscallname *name,
|
||||
print_umount(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3440,7 +3440,7 @@ print_umount(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_umount2
|
||||
static void
|
||||
print_umount2(void *cpu_env, const struct syscallname *name,
|
||||
print_umount2(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3453,7 +3453,7 @@ print_umount2(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_unlink
|
||||
static void
|
||||
print_unlink(void *cpu_env, const struct syscallname *name,
|
||||
print_unlink(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3465,7 +3465,7 @@ print_unlink(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_unlinkat
|
||||
static void
|
||||
print_unlinkat(void *cpu_env, const struct syscallname *name,
|
||||
print_unlinkat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3479,7 +3479,7 @@ print_unlinkat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_unshare
|
||||
static void
|
||||
print_unshare(void *cpu_env, const struct syscallname *name,
|
||||
print_unshare(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3491,7 +3491,7 @@ print_unshare(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_utime
|
||||
static void
|
||||
print_utime(void *cpu_env, const struct syscallname *name,
|
||||
print_utime(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3504,7 +3504,7 @@ print_utime(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_utimes
|
||||
static void
|
||||
print_utimes(void *cpu_env, const struct syscallname *name,
|
||||
print_utimes(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3517,7 +3517,7 @@ print_utimes(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_utimensat
|
||||
static void
|
||||
print_utimensat(void *cpu_env, const struct syscallname *name,
|
||||
print_utimensat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3532,7 +3532,7 @@ print_utimensat(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#if defined(TARGET_NR_mmap) || defined(TARGET_NR_mmap2)
|
||||
static void
|
||||
print_mmap(void *cpu_env, const struct syscallname *name,
|
||||
print_mmap(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3550,7 +3550,7 @@ print_mmap(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_mprotect
|
||||
static void
|
||||
print_mprotect(void *cpu_env, const struct syscallname *name,
|
||||
print_mprotect(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3564,7 +3564,7 @@ print_mprotect(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_munmap
|
||||
static void
|
||||
print_munmap(void *cpu_env, const struct syscallname *name,
|
||||
print_munmap(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3617,7 +3617,7 @@ if( cmd == val ) { \
|
||||
}
|
||||
|
||||
static void
|
||||
print_futex(void *cpu_env, const struct syscallname *name,
|
||||
print_futex(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3634,7 +3634,7 @@ print_futex(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_kill
|
||||
static void
|
||||
print_kill(void *cpu_env, const struct syscallname *name,
|
||||
print_kill(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3647,7 +3647,7 @@ print_kill(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_tkill
|
||||
static void
|
||||
print_tkill(void *cpu_env, const struct syscallname *name,
|
||||
print_tkill(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3660,7 +3660,7 @@ print_tkill(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_tgkill
|
||||
static void
|
||||
print_tgkill(void *cpu_env, const struct syscallname *name,
|
||||
print_tgkill(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3674,7 +3674,7 @@ print_tgkill(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_statx
|
||||
static void
|
||||
print_statx(void *cpu_env, const struct syscallname *name,
|
||||
print_statx(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3690,7 +3690,7 @@ print_statx(void *cpu_env, const struct syscallname *name,
|
||||
|
||||
#ifdef TARGET_NR_ioctl
|
||||
static void
|
||||
print_ioctl(void *cpu_env, const struct syscallname *name,
|
||||
print_ioctl(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
{
|
||||
@ -3775,7 +3775,7 @@ static int nsyscalls = ARRAY_SIZE(scnames);
|
||||
* The public interface to this module.
|
||||
*/
|
||||
void
|
||||
print_syscall(void *cpu_env, int num,
|
||||
print_syscall(CPUArchState *cpu_env, int num,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
@ -3804,7 +3804,7 @@ print_syscall(void *cpu_env, int num,
|
||||
|
||||
|
||||
void
|
||||
print_syscall_ret(void *cpu_env, int num, abi_long ret,
|
||||
print_syscall_ret(CPUArchState *cpu_env, int num, abi_long ret,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6)
|
||||
{
|
||||
|
@ -18,10 +18,10 @@
|
||||
#ifndef LINUX_USER_STRACE_H
|
||||
#define LINUX_USER_STRACE_H
|
||||
|
||||
void print_syscall(void *cpu_env, int num,
|
||||
void print_syscall(CPUArchState *cpu_env, int num,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6);
|
||||
void print_syscall_ret(void *cpu_env, int num, abi_long ret,
|
||||
void print_syscall_ret(CPUArchState *cpu_env, int num, abi_long ret,
|
||||
abi_long arg1, abi_long arg2, abi_long arg3,
|
||||
abi_long arg4, abi_long arg5, abi_long arg6);
|
||||
/**
|
||||
|
@ -1053,8 +1053,10 @@ static inline int target_to_host_resource(int code)
|
||||
return RLIMIT_RSS;
|
||||
case TARGET_RLIMIT_RTPRIO:
|
||||
return RLIMIT_RTPRIO;
|
||||
#ifdef RLIMIT_RTTIME
|
||||
case TARGET_RLIMIT_RTTIME:
|
||||
return RLIMIT_RTTIME;
|
||||
#endif
|
||||
case TARGET_RLIMIT_SIGPENDING:
|
||||
return RLIMIT_SIGPENDING;
|
||||
case TARGET_RLIMIT_STACK:
|
||||
@ -1596,7 +1598,7 @@ static abi_long do_pipe2(int host_pipe[], int flags)
|
||||
#endif
|
||||
}
|
||||
|
||||
static abi_long do_pipe(void *cpu_env, abi_ulong pipedes,
|
||||
static abi_long do_pipe(CPUArchState *cpu_env, abi_ulong pipedes,
|
||||
int flags, int is_pipe2)
|
||||
{
|
||||
int host_pipe[2];
|
||||
@ -1610,16 +1612,16 @@ static abi_long do_pipe(void *cpu_env, abi_ulong pipedes,
|
||||
pipe syscall, but didn't replicate this into the pipe2 syscall. */
|
||||
if (!is_pipe2) {
|
||||
#if defined(TARGET_ALPHA)
|
||||
((CPUAlphaState *)cpu_env)->ir[IR_A4] = host_pipe[1];
|
||||
cpu_env->ir[IR_A4] = host_pipe[1];
|
||||
return host_pipe[0];
|
||||
#elif defined(TARGET_MIPS)
|
||||
((CPUMIPSState*)cpu_env)->active_tc.gpr[3] = host_pipe[1];
|
||||
cpu_env->active_tc.gpr[3] = host_pipe[1];
|
||||
return host_pipe[0];
|
||||
#elif defined(TARGET_SH4)
|
||||
((CPUSH4State*)cpu_env)->gregs[1] = host_pipe[1];
|
||||
cpu_env->gregs[1] = host_pipe[1];
|
||||
return host_pipe[0];
|
||||
#elif defined(TARGET_SPARC)
|
||||
((CPUSPARCState*)cpu_env)->regwptr[1] = host_pipe[1];
|
||||
cpu_env->regwptr[1] = host_pipe[1];
|
||||
return host_pipe[0];
|
||||
#endif
|
||||
}
|
||||
@ -7250,7 +7252,7 @@ void syscall_init(void)
|
||||
}
|
||||
|
||||
#ifdef TARGET_NR_truncate64
|
||||
static inline abi_long target_truncate64(void *cpu_env, const char *arg1,
|
||||
static inline abi_long target_truncate64(CPUArchState *cpu_env, const char *arg1,
|
||||
abi_long arg2,
|
||||
abi_long arg3,
|
||||
abi_long arg4)
|
||||
@ -7264,7 +7266,7 @@ static inline abi_long target_truncate64(void *cpu_env, const char *arg1,
|
||||
#endif
|
||||
|
||||
#ifdef TARGET_NR_ftruncate64
|
||||
static inline abi_long target_ftruncate64(void *cpu_env, abi_long arg1,
|
||||
static inline abi_long target_ftruncate64(CPUArchState *cpu_env, abi_long arg1,
|
||||
abi_long arg2,
|
||||
abi_long arg3,
|
||||
abi_long arg4)
|
||||
@ -7559,12 +7561,12 @@ static inline int target_to_host_mlockall_arg(int arg)
|
||||
#if (defined(TARGET_NR_stat64) || defined(TARGET_NR_lstat64) || \
|
||||
defined(TARGET_NR_fstat64) || defined(TARGET_NR_fstatat64) || \
|
||||
defined(TARGET_NR_newfstatat))
|
||||
static inline abi_long host_to_target_stat64(void *cpu_env,
|
||||
static inline abi_long host_to_target_stat64(CPUArchState *cpu_env,
|
||||
abi_ulong target_addr,
|
||||
struct stat *host_st)
|
||||
{
|
||||
#if defined(TARGET_ARM) && defined(TARGET_ABI32)
|
||||
if (((CPUARMState *)cpu_env)->eabi) {
|
||||
if (cpu_env->eabi) {
|
||||
struct target_eabi_stat64 *target_st;
|
||||
|
||||
if (!lock_user_struct(VERIFY_WRITE, target_st, target_addr, 0))
|
||||
@ -7961,9 +7963,9 @@ int host_to_target_waitstatus(int status)
|
||||
return status;
|
||||
}
|
||||
|
||||
static int open_self_cmdline(void *cpu_env, int fd)
|
||||
static int open_self_cmdline(CPUArchState *cpu_env, int fd)
|
||||
{
|
||||
CPUState *cpu = env_cpu((CPUArchState *)cpu_env);
|
||||
CPUState *cpu = env_cpu(cpu_env);
|
||||
struct linux_binprm *bprm = ((TaskState *)cpu->opaque)->bprm;
|
||||
int i;
|
||||
|
||||
@ -7978,9 +7980,9 @@ static int open_self_cmdline(void *cpu_env, int fd)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int open_self_maps(void *cpu_env, int fd)
|
||||
static int open_self_maps(CPUArchState *cpu_env, int fd)
|
||||
{
|
||||
CPUState *cpu = env_cpu((CPUArchState *)cpu_env);
|
||||
CPUState *cpu = env_cpu(cpu_env);
|
||||
TaskState *ts = cpu->opaque;
|
||||
GSList *map_info = read_self_maps();
|
||||
GSList *s;
|
||||
@ -8040,9 +8042,9 @@ static int open_self_maps(void *cpu_env, int fd)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int open_self_stat(void *cpu_env, int fd)
|
||||
static int open_self_stat(CPUArchState *cpu_env, int fd)
|
||||
{
|
||||
CPUState *cpu = env_cpu((CPUArchState *)cpu_env);
|
||||
CPUState *cpu = env_cpu(cpu_env);
|
||||
TaskState *ts = cpu->opaque;
|
||||
g_autoptr(GString) buf = g_string_new(NULL);
|
||||
int i;
|
||||
@ -8078,9 +8080,9 @@ static int open_self_stat(void *cpu_env, int fd)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int open_self_auxv(void *cpu_env, int fd)
|
||||
static int open_self_auxv(CPUArchState *cpu_env, int fd)
|
||||
{
|
||||
CPUState *cpu = env_cpu((CPUArchState *)cpu_env);
|
||||
CPUState *cpu = env_cpu(cpu_env);
|
||||
TaskState *ts = cpu->opaque;
|
||||
abi_ulong auxv = ts->info->saved_auxv;
|
||||
abi_ulong len = ts->info->auxv_len;
|
||||
@ -8141,7 +8143,7 @@ static int is_proc(const char *filename, const char *entry)
|
||||
#endif
|
||||
|
||||
#if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN
|
||||
static int open_net_route(void *cpu_env, int fd)
|
||||
static int open_net_route(CPUArchState *cpu_env, int fd)
|
||||
{
|
||||
FILE *fp;
|
||||
char *line = NULL;
|
||||
@ -8186,7 +8188,7 @@ static int open_net_route(void *cpu_env, int fd)
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_SPARC)
|
||||
static int open_cpuinfo(void *cpu_env, int fd)
|
||||
static int open_cpuinfo(CPUArchState *cpu_env, int fd)
|
||||
{
|
||||
dprintf(fd, "type\t\t: sun4u\n");
|
||||
return 0;
|
||||
@ -8194,7 +8196,7 @@ static int open_cpuinfo(void *cpu_env, int fd)
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_HPPA)
|
||||
static int open_cpuinfo(void *cpu_env, int fd)
|
||||
static int open_cpuinfo(CPUArchState *cpu_env, int fd)
|
||||
{
|
||||
dprintf(fd, "cpu family\t: PA-RISC 1.1e\n");
|
||||
dprintf(fd, "cpu\t\t: PA7300LC (PCX-L2)\n");
|
||||
@ -8206,18 +8208,18 @@ static int open_cpuinfo(void *cpu_env, int fd)
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_M68K)
|
||||
static int open_hardware(void *cpu_env, int fd)
|
||||
static int open_hardware(CPUArchState *cpu_env, int fd)
|
||||
{
|
||||
dprintf(fd, "Model:\t\tqemu-m68k\n");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags, mode_t mode)
|
||||
static int do_openat(CPUArchState *cpu_env, int dirfd, const char *pathname, int flags, mode_t mode)
|
||||
{
|
||||
struct fake_open {
|
||||
const char *filename;
|
||||
int (*fill)(void *cpu_env, int fd);
|
||||
int (*fill)(CPUArchState *cpu_env, int fd);
|
||||
int (*cmp)(const char *s1, const char *s2);
|
||||
};
|
||||
const struct fake_open *fake_open;
|
||||
@ -8529,7 +8531,7 @@ _syscall2(int, pivot_root, const char *, new_root, const char *, put_old)
|
||||
* of syscall results, can be performed.
|
||||
* All errnos that do_syscall() returns must be -TARGET_<errcode>.
|
||||
*/
|
||||
static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5, abi_long arg6, abi_long arg7,
|
||||
abi_long arg8)
|
||||
@ -8890,7 +8892,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
|
||||
/* Alpha specific */
|
||||
case TARGET_NR_getxpid:
|
||||
((CPUAlphaState *)cpu_env)->ir[IR_A4] = getppid();
|
||||
cpu_env->ir[IR_A4] = getppid();
|
||||
return get_errno(getpid());
|
||||
#endif
|
||||
#ifdef TARGET_NR_getpid
|
||||
@ -9413,7 +9415,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
if (!is_error(ret)) {
|
||||
host_to_target_old_sigset(&mask, &oldset);
|
||||
ret = mask;
|
||||
((CPUAlphaState *)cpu_env)->ir[IR_V0] = 0; /* force no error */
|
||||
cpu_env->ir[IR_V0] = 0; /* force no error */
|
||||
}
|
||||
#else
|
||||
sigset_t set, oldset, *set_ptr;
|
||||
@ -10033,7 +10035,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
}
|
||||
#ifdef TARGET_ALPHA
|
||||
/* Return value is the unbiased priority. Signal no error. */
|
||||
((CPUAlphaState *)cpu_env)->ir[IR_V0] = 0;
|
||||
cpu_env->ir[IR_V0] = 0;
|
||||
#else
|
||||
/* Return value is a biased priority to avoid negative numbers. */
|
||||
ret = 20 - ret;
|
||||
@ -11413,7 +11415,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
{
|
||||
uid_t euid;
|
||||
euid=geteuid();
|
||||
((CPUAlphaState *)cpu_env)->ir[IR_A4]=euid;
|
||||
cpu_env->ir[IR_A4]=euid;
|
||||
}
|
||||
return get_errno(getuid());
|
||||
#endif
|
||||
@ -11423,7 +11425,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
{
|
||||
uid_t egid;
|
||||
egid=getegid();
|
||||
((CPUAlphaState *)cpu_env)->ir[IR_A4]=egid;
|
||||
cpu_env->ir[IR_A4]=egid;
|
||||
}
|
||||
return get_errno(getgid());
|
||||
#endif
|
||||
@ -11435,7 +11437,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
case TARGET_GSI_IEEE_FP_CONTROL:
|
||||
{
|
||||
uint64_t fpcr = cpu_alpha_load_fpcr(cpu_env);
|
||||
uint64_t swcr = ((CPUAlphaState *)cpu_env)->swcr;
|
||||
uint64_t swcr = cpu_env->swcr;
|
||||
|
||||
swcr &= ~SWCR_STATUS_MASK;
|
||||
swcr |= (fpcr >> 35) & SWCR_STATUS_MASK;
|
||||
@ -11477,8 +11479,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
* could be queried. Therefore, we store the status
|
||||
* bits only in FPCR.
|
||||
*/
|
||||
((CPUAlphaState *)cpu_env)->swcr
|
||||
= swcr & (SWCR_TRAP_ENABLE_MASK | SWCR_MAP_MASK);
|
||||
cpu_env->swcr = swcr & (SWCR_TRAP_ENABLE_MASK | SWCR_MAP_MASK);
|
||||
|
||||
fpcr = cpu_alpha_load_fpcr(cpu_env);
|
||||
fpcr &= ((uint64_t)FPCR_DYN_MASK << 32);
|
||||
@ -11502,7 +11503,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
fex = alpha_ieee_fpcr_to_swcr(fpcr);
|
||||
fex = exc & ~fex;
|
||||
fex >>= SWCR_STATUS_TO_EXCSUM_SHIFT;
|
||||
fex &= ((CPUArchState *)cpu_env)->swcr;
|
||||
fex &= (cpu_env)->swcr;
|
||||
|
||||
/* Update the hardware fpcr. */
|
||||
fpcr |= alpha_ieee_swcr_to_fpcr(exc);
|
||||
@ -11534,9 +11535,8 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
info.si_signo = SIGFPE;
|
||||
info.si_errno = 0;
|
||||
info.si_code = si_code;
|
||||
info._sifields._sigfault._addr
|
||||
= ((CPUArchState *)cpu_env)->pc;
|
||||
queue_signal((CPUArchState *)cpu_env, info.si_signo,
|
||||
info._sifields._sigfault._addr = (cpu_env)->pc;
|
||||
queue_signal(cpu_env, info.si_signo,
|
||||
QEMU_SI_FAULT, &info);
|
||||
}
|
||||
ret = 0;
|
||||
@ -11822,7 +11822,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
to_flock64_fn *copyto = copy_to_user_flock64;
|
||||
|
||||
#ifdef TARGET_ARM
|
||||
if (!((CPUARMState *)cpu_env)->eabi) {
|
||||
if (!cpu_env->eabi) {
|
||||
copyfrom = copy_from_user_oabi_flock64;
|
||||
copyto = copy_to_user_oabi_flock64;
|
||||
}
|
||||
@ -12050,13 +12050,13 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
#ifdef TARGET_NR_set_thread_area
|
||||
case TARGET_NR_set_thread_area:
|
||||
#if defined(TARGET_MIPS)
|
||||
((CPUMIPSState *) cpu_env)->active_tc.CP0_UserLocal = arg1;
|
||||
cpu_env->active_tc.CP0_UserLocal = arg1;
|
||||
return 0;
|
||||
#elif defined(TARGET_CRIS)
|
||||
if (arg1 & 0xff)
|
||||
ret = -TARGET_EINVAL;
|
||||
else {
|
||||
((CPUCRISState *) cpu_env)->pregs[PR_PID] = arg1;
|
||||
cpu_env->pregs[PR_PID] = arg1;
|
||||
ret = 0;
|
||||
}
|
||||
return ret;
|
||||
@ -12783,8 +12783,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
info.si_errno = 0;
|
||||
info.si_code = TARGET_SEGV_MAPERR;
|
||||
info._sifields._sigfault._addr = arg6;
|
||||
queue_signal((CPUArchState *)cpu_env, info.si_signo,
|
||||
QEMU_SI_FAULT, &info);
|
||||
queue_signal(cpu_env, info.si_signo, QEMU_SI_FAULT, &info);
|
||||
ret = 0xdeadbeef;
|
||||
|
||||
}
|
||||
@ -13153,7 +13152,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
return ret;
|
||||
}
|
||||
|
||||
abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
abi_long do_syscall(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5, abi_long arg6, abi_long arg7,
|
||||
abi_long arg8)
|
||||
|
@ -28,7 +28,7 @@
|
||||
* NB: the default emulated CPU ("any") might not match any existing CPU, e.g.
|
||||
* on ARM it has all features turned on, so there is no perfect arch string to
|
||||
* return here */
|
||||
const char *cpu_to_uname_machine(void *cpu_env)
|
||||
const char *cpu_to_uname_machine(CPUArchState *cpu_env)
|
||||
{
|
||||
#if defined(TARGET_ARM) && !defined(TARGET_AARCH64)
|
||||
|
||||
@ -54,7 +54,7 @@ const char *cpu_to_uname_machine(void *cpu_env)
|
||||
return "armv5te" utsname_suffix;
|
||||
#elif defined(TARGET_I386) && !defined(TARGET_X86_64)
|
||||
/* see arch/x86/kernel/cpu/bugs.c: check_bugs(), 386, 486, 586, 686 */
|
||||
CPUState *cpu = env_cpu((CPUX86State *)cpu_env);
|
||||
CPUState *cpu = env_cpu(cpu_env);
|
||||
int family = object_property_get_int(OBJECT(cpu), "family", NULL);
|
||||
if (family == 4) {
|
||||
return "i486";
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include <sys/utsname.h>
|
||||
#include <linux/utsname.h>
|
||||
|
||||
const char *cpu_to_uname_machine(void *cpu_env);
|
||||
const char *cpu_to_uname_machine(CPUArchState *cpu_env);
|
||||
int sys_uname(struct new_utsname *buf);
|
||||
|
||||
#endif /* UNAME_H */
|
||||
|
@ -59,7 +59,7 @@ int info_is_fdpic(struct image_info *info);
|
||||
|
||||
void target_set_brk(abi_ulong new_brk);
|
||||
void syscall_init(void);
|
||||
abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
abi_long do_syscall(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
abi_long arg5, abi_long arg6, abi_long arg7,
|
||||
abi_long arg8);
|
||||
@ -132,22 +132,22 @@ void print_termios(void *arg);
|
||||
|
||||
/* ARM EABI and MIPS expect 64bit types aligned even on pairs or registers */
|
||||
#ifdef TARGET_ARM
|
||||
static inline int regpairs_aligned(void *cpu_env, int num)
|
||||
static inline int regpairs_aligned(CPUArchState *cpu_env, int num)
|
||||
{
|
||||
return ((((CPUARMState *)cpu_env)->eabi) == 1) ;
|
||||
return cpu_env->eabi == 1;
|
||||
}
|
||||
#elif defined(TARGET_MIPS) && defined(TARGET_ABI_MIPSO32)
|
||||
static inline int regpairs_aligned(void *cpu_env, int num) { return 1; }
|
||||
static inline int regpairs_aligned(CPUArchState *cpu_env, int num) { return 1; }
|
||||
#elif defined(TARGET_PPC) && !defined(TARGET_PPC64)
|
||||
/*
|
||||
* SysV AVI for PPC32 expects 64bit parameters to be passed on odd/even pairs
|
||||
* of registers which translates to the same as ARM/MIPS, because we start with
|
||||
* r3 as arg1
|
||||
*/
|
||||
static inline int regpairs_aligned(void *cpu_env, int num) { return 1; }
|
||||
static inline int regpairs_aligned(CPUArchState *cpu_env, int num) { return 1; }
|
||||
#elif defined(TARGET_SH4)
|
||||
/* SH4 doesn't align register pairs, except for p{read,write}64 */
|
||||
static inline int regpairs_aligned(void *cpu_env, int num)
|
||||
static inline int regpairs_aligned(CPUArchState *cpu_env, int num)
|
||||
{
|
||||
switch (num) {
|
||||
case TARGET_NR_pread64:
|
||||
@ -159,11 +159,11 @@ static inline int regpairs_aligned(void *cpu_env, int num)
|
||||
}
|
||||
}
|
||||
#elif defined(TARGET_XTENSA)
|
||||
static inline int regpairs_aligned(void *cpu_env, int num) { return 1; }
|
||||
static inline int regpairs_aligned(CPUArchState *cpu_env, int num) { return 1; }
|
||||
#elif defined(TARGET_HEXAGON)
|
||||
static inline int regpairs_aligned(void *cpu_env, int num) { return 1; }
|
||||
static inline int regpairs_aligned(CPUArchState *cpu_env, int num) { return 1; }
|
||||
#else
|
||||
static inline int regpairs_aligned(void *cpu_env, int num) { return 0; }
|
||||
static inline int regpairs_aligned(CPUArchState *cpu_env, int num) { return 0; }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -1106,7 +1106,7 @@ target_ulong do_common_semihosting(CPUState *cs)
|
||||
#else
|
||||
unsigned int i;
|
||||
|
||||
output_size = ts->info->arg_end - ts->info->arg_start;
|
||||
output_size = ts->info->env_strings - ts->info->arg_strings;
|
||||
if (!output_size) {
|
||||
/*
|
||||
* We special-case the "empty command line" case (argc==0).
|
||||
@ -1146,7 +1146,7 @@ target_ulong do_common_semihosting(CPUState *cs)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (copy_from_user(output_buffer, ts->info->arg_start,
|
||||
if (copy_from_user(output_buffer, ts->info->arg_strings,
|
||||
output_size)) {
|
||||
errno = EFAULT;
|
||||
status = set_swi_errno(cs, -1);
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include <assert.h>
|
||||
#include <execinfo.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <sys/mman.h>
|
||||
@ -11,22 +12,28 @@
|
||||
* inline asm is used instead.
|
||||
*/
|
||||
|
||||
#define DEFINE_ASM_FUNCTION(name, body) \
|
||||
asm(".globl " #name "\n" \
|
||||
#name ":\n" \
|
||||
".cfi_startproc\n" \
|
||||
body "\n" \
|
||||
"br %r14\n" \
|
||||
".cfi_endproc");
|
||||
|
||||
void illegal_op(void);
|
||||
void after_illegal_op(void);
|
||||
asm(".globl\tillegal_op\n"
|
||||
"illegal_op:\t.byte\t0x00,0x00\n"
|
||||
"\t.globl\tafter_illegal_op\n"
|
||||
"after_illegal_op:\tbr\t%r14");
|
||||
extern const char after_illegal_op;
|
||||
DEFINE_ASM_FUNCTION(illegal_op,
|
||||
".byte 0x00,0x00\n"
|
||||
".globl after_illegal_op\n"
|
||||
"after_illegal_op:")
|
||||
|
||||
void stg(void *dst, unsigned long src);
|
||||
asm(".globl\tstg\n"
|
||||
"stg:\tstg\t%r3,0(%r2)\n"
|
||||
"\tbr\t%r14");
|
||||
DEFINE_ASM_FUNCTION(stg, "stg %r3,0(%r2)")
|
||||
|
||||
void mvc_8(void *dst, void *src);
|
||||
asm(".globl\tmvc_8\n"
|
||||
"mvc_8:\tmvc\t0(8,%r2),0(%r3)\n"
|
||||
"\tbr\t%r14");
|
||||
DEFINE_ASM_FUNCTION(mvc_8, "mvc 0(8,%r2),0(%r3)")
|
||||
|
||||
extern const char return_from_main_1;
|
||||
|
||||
static void safe_puts(const char *s)
|
||||
{
|
||||
@ -49,8 +56,9 @@ static struct {
|
||||
|
||||
static void handle_signal(int sig, siginfo_t *info, void *ucontext)
|
||||
{
|
||||
int err, i, n_frames;
|
||||
void *frames[16];
|
||||
void *page;
|
||||
int err;
|
||||
|
||||
if (sig != expected.sig) {
|
||||
safe_puts("[ FAILED ] wrong signal");
|
||||
@ -86,6 +94,17 @@ static void handle_signal(int sig, siginfo_t *info, void *ucontext)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
n_frames = backtrace(frames, sizeof(frames) / sizeof(frames[0]));
|
||||
for (i = 0; i < n_frames; i++) {
|
||||
if (frames[i] == &return_from_main_1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == n_frames) {
|
||||
safe_puts("[ FAILED ] backtrace() is broken");
|
||||
_exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
static void check_sigsegv(void *func, enum exception exception,
|
||||
@ -122,7 +141,7 @@ static void check_sigsegv(void *func, enum exception exception,
|
||||
assert(err == 0);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
int main_1(void)
|
||||
{
|
||||
struct sigaction act;
|
||||
int err;
|
||||
@ -138,7 +157,7 @@ int main(void)
|
||||
safe_puts("[ RUN ] Operation exception");
|
||||
expected.sig = SIGILL;
|
||||
expected.addr = illegal_op;
|
||||
expected.psw_addr = (unsigned long)after_illegal_op;
|
||||
expected.psw_addr = (unsigned long)&after_illegal_op;
|
||||
expected.exception = exception_operation;
|
||||
illegal_op();
|
||||
safe_puts("[ OK ]");
|
||||
@ -163,3 +182,25 @@ int main(void)
|
||||
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Define main() in assembly in order to test that unwinding from signal
|
||||
* handlers until main() works. This way we can define a specific point that
|
||||
* the unwinder should reach. This is also better than defining main() in C
|
||||
* and using inline assembly to call main_1(), since it's not easy to get all
|
||||
* the clobbers right.
|
||||
*/
|
||||
|
||||
DEFINE_ASM_FUNCTION(main,
|
||||
"stmg %r14,%r15,112(%r15)\n"
|
||||
".cfi_offset 14,-48\n"
|
||||
".cfi_offset 15,-40\n"
|
||||
"lay %r15,-160(%r15)\n"
|
||||
".cfi_def_cfa_offset 320\n"
|
||||
"brasl %r14,main_1\n"
|
||||
".globl return_from_main_1\n"
|
||||
"return_from_main_1:\n"
|
||||
"lmg %r14,%r15,272(%r15)\n"
|
||||
".cfi_restore 15\n"
|
||||
".cfi_restore 14\n"
|
||||
".cfi_def_cfa_offset 160");
|
||||
|
Loading…
Reference in New Issue
Block a user