mirror of https://gitee.com/openkylin/qemu.git
move more data to arch specific files
fix SPARC %tick replace strcpy() by g_strlcpy() in syscall.c -----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJbFViQAAoJEPMMOL0/L7480+kP/37iYsTNhq7hIVNdiRDBwZBH KrbuTAe0c+JCNPBK9n4h7rv2fsrxaf6bNg/p93wEJifXcHMFYxATfT9mImkTv4h1 sxExIM/vPqKvLHekJTZIxGweu2mGqsN5nSZwmt3WKK0SmqA5bT26Y+WLL5JsaaNG pfr2VvDy0D+pLlSYFv9x4GP0BLlJKpbWqK4MKyY7bJNuz6KK2ejZwoiOSmSI4pI2 fRxaReaK0bXYUkRcRh+2S/1uiH5+7Y5J/xt1jw+CdyuJboJY0e/Cxd31Z10S/6Lp NJbMOucq0LYZyRm5YOudLA+R3IJlfhkajdVDdUaa24Eoyt1YYEmr7OdvujD97F4U 52mGcndVP2k8y/ZW1b42NDcYYRQBwd3wHO2TMTirg/6GNuKVShBX9PTwU4tsYOJE emMoQeILelmznpcou8HDZWL0lGqlOInmXicm0GByDdm3Mjtm4zTcYfK+ByJFYpBO o6vsqrPr5Jot0diGs0IiOgkUsEPygV4SOBTrwQr3K1020hp82X6Fkuu89psIvJI3 5wRcGBUYYQRX9wqiO2LAfxgH+1RsI1AMcf+QSZGoAG6v0FSvYiOda8/sulFg9ME8 nWiHaSKy8Qa+4DsZYhyYyyuzqRPGrpNPkkjygtowC1Pbj4KZLuT5iA5GWYehahh/ CFRoNtPR0SRrtYPiEW3X =DqCi -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-3.0-pull-request' into staging move more data to arch specific files fix SPARC %tick replace strcpy() by g_strlcpy() in syscall.c # gpg: Signature made Mon 04 Jun 2018 16:19:44 BST # gpg: using RSA key F30C38BD3F2FBE3C # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" # gpg: aka "Laurent Vivier <laurent@vivier.eu>" # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * remotes/vivier2/tags/linux-user-for-3.0-pull-request: linux-user: remove useless #if linux-user: move hppa signal definitions to hppa/target_signal.h linux-user: move alpha signal definitions to alpha/target_signal.h linux-user: move openrisc signal definitions to openrisc/target_signal.h linux-user: move mips signal definitions to mips/target_signal.h linux-user: move sparc signal definitions to sparc/target_signal.h linux-user: move generic signal definitions to generic/signal.h linux-user: move get_sp_from_cpustate() to target_cpu.h linux-user: move sparc/sparc64 fcntl definitions to sparc/target_fcntl.h linux-user: move ppc fcntl definitions to ppc/target_fcntl.h linux-user: move mips/mips64 fcntl definitions to mips/target_fcntl.h linux-user: move arm/aarch64/m68k fcntl definitions to [arm|aarch64|m68k]/target_fcntl.h linux-user: move hppa fcntl definitions to hppa/target_fcntl.h linux-user: move alpha fcntl definitions to alpha/target_fcntl.h linux-user: move generic fcntl definitions to generic/fcntl.h linux-user: SPARC "rd %tick" can be used by user application syscall: replace strcpy() by g_strlcpy() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
41feb5b955
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -35,4 +35,8 @@ static inline void cpu_set_tls(CPUARMState *env, target_ulong newtls)
|
|||
env->cp15.tpidr_el[0] = newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUARMState *state)
|
||||
{
|
||||
return state->xregs[31];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef AARCH64_TARGET_FCNTL_H
|
||||
#define AARCH64_TARGET_FCNTL_H
|
||||
|
||||
#define TARGET_O_DIRECTORY 040000 /* must be a directory */
|
||||
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
|
||||
#define TARGET_O_DIRECT 0200000 /* direct disk access hint */
|
||||
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef AARCH64_TARGET_SIGNAL_H
|
||||
#define AARCH64_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -21,10 +19,7 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUARMState *state)
|
||||
{
|
||||
return state->xregs[31];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
#endif /* AARCH64_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -33,4 +33,8 @@ static inline void cpu_set_tls(CPUAlphaState *env, target_ulong newtls)
|
|||
env->unique = newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUAlphaState *state)
|
||||
{
|
||||
return state->ir[IR_SP];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef ALPHA_TARGET_FCNTL_H
|
||||
#define ALPHA_TARGET_FCNTL_H
|
||||
|
||||
#define TARGET_O_NONBLOCK 04
|
||||
#define TARGET_O_APPEND 010
|
||||
#define TARGET_O_CREAT 01000 /* not fcntl */
|
||||
#define TARGET_O_TRUNC 02000 /* not fcntl */
|
||||
#define TARGET_O_EXCL 04000 /* not fcntl */
|
||||
#define TARGET_O_NOCTTY 010000 /* not fcntl */
|
||||
#define TARGET_O_DSYNC 040000
|
||||
#define TARGET_O_LARGEFILE 0 /* not necessary, always 64-bit */
|
||||
#define TARGET_O_DIRECTORY 0100000 /* must be a directory */
|
||||
#define TARGET_O_NOFOLLOW 0200000 /* don't follow links */
|
||||
#define TARGET_O_DIRECT 02000000 /* direct disk access hint */
|
||||
#define TARGET_O_NOATIME 04000000
|
||||
#define TARGET_O_CLOEXEC 010000000
|
||||
#define TARGET___O_SYNC 020000000
|
||||
#define TARGET_O_PATH 040000000
|
||||
|
||||
#define TARGET_F_GETLK 7
|
||||
#define TARGET_F_SETLK 8
|
||||
#define TARGET_F_SETLKW 9
|
||||
#define TARGET_F_SETOWN 5 /* for sockets. */
|
||||
#define TARGET_F_GETOWN 6 /* for sockets. */
|
||||
|
||||
#define TARGET_F_RDLCK 1
|
||||
#define TARGET_F_WRLCK 2
|
||||
#define TARGET_F_UNLCK 8
|
||||
#define TARGET_F_EXLCK 16
|
||||
#define TARGET_F_SHLCK 32
|
||||
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,7 +1,42 @@
|
|||
#ifndef ALPHA_TARGET_SIGNAL_H
|
||||
#define ALPHA_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
#define TARGET_SIGHUP 1
|
||||
#define TARGET_SIGINT 2
|
||||
#define TARGET_SIGQUIT 3
|
||||
#define TARGET_SIGILL 4
|
||||
#define TARGET_SIGTRAP 5
|
||||
#define TARGET_SIGABRT 6
|
||||
#define TARGET_SIGSTKFLT 7 /* actually SIGEMT */
|
||||
#define TARGET_SIGFPE 8
|
||||
#define TARGET_SIGKILL 9
|
||||
#define TARGET_SIGBUS 10
|
||||
#define TARGET_SIGSEGV 11
|
||||
#define TARGET_SIGSYS 12
|
||||
#define TARGET_SIGPIPE 13
|
||||
#define TARGET_SIGALRM 14
|
||||
#define TARGET_SIGTERM 15
|
||||
#define TARGET_SIGURG 16
|
||||
#define TARGET_SIGSTOP 17
|
||||
#define TARGET_SIGTSTP 18
|
||||
#define TARGET_SIGCONT 19
|
||||
#define TARGET_SIGCHLD 20
|
||||
#define TARGET_SIGTTIN 21
|
||||
#define TARGET_SIGTTOU 22
|
||||
#define TARGET_SIGIO 23
|
||||
#define TARGET_SIGXCPU 24
|
||||
#define TARGET_SIGXFSZ 25
|
||||
#define TARGET_SIGVTALRM 26
|
||||
#define TARGET_SIGPROF 27
|
||||
#define TARGET_SIGWINCH 28
|
||||
#define TARGET_SIGPWR 29 /* actually SIGINFO */
|
||||
#define TARGET_SIGUSR1 30
|
||||
#define TARGET_SIGUSR2 31
|
||||
#define TARGET_SIGRTMIN 32
|
||||
|
||||
#define TARGET_SIG_BLOCK 1
|
||||
#define TARGET_SIG_UNBLOCK 2
|
||||
#define TARGET_SIG_SETMASK 3
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
|
@ -19,15 +54,17 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_SS_ONSTACK 1
|
||||
#define TARGET_SS_DISABLE 2
|
||||
|
||||
#define TARGET_SA_ONSTACK 0x00000001
|
||||
#define TARGET_SA_RESTART 0x00000002
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000004
|
||||
#define TARGET_SA_NODEFER 0x00000008
|
||||
#define TARGET_SA_RESETHAND 0x00000010
|
||||
#define TARGET_SA_NOCLDWAIT 0x00000020 /* not supported yet */
|
||||
#define TARGET_SA_SIGINFO 0x00000040
|
||||
|
||||
#define TARGET_MINSIGSTKSZ 4096
|
||||
#define TARGET_SIGSTKSZ 16384
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUAlphaState *state)
|
||||
{
|
||||
return state->ir[IR_SP];
|
||||
}
|
||||
|
||||
|
||||
/* From <asm/gentrap.h>. */
|
||||
#define TARGET_GEN_INTOVF -1 /* integer overflow */
|
||||
#define TARGET_GEN_INTDIV -2 /* integer division by zero */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -49,4 +49,8 @@ static inline target_ulong cpu_get_tls(CPUARMState *env)
|
|||
}
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUARMState *state)
|
||||
{
|
||||
return state->regs[13];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef ARM_TARGET_FCNTL_H
|
||||
#define ARM_TARGET_FCNTL_H
|
||||
|
||||
#define TARGET_O_DIRECTORY 040000 /* must be a directory */
|
||||
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
|
||||
#define TARGET_O_DIRECT 0200000 /* direct disk access hint */
|
||||
#define TARGET_O_LARGEFILE 0400000
|
||||
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef ARM_TARGET_SIGNAL_H
|
||||
#define ARM_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -21,10 +19,7 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUARMState *state)
|
||||
{
|
||||
return state->regs[13];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
#endif /* ARM_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -33,4 +33,8 @@ static inline void cpu_set_tls(CPUCRISState *env, target_ulong newtls)
|
|||
env->pregs[PR_PID] = (env->pregs[PR_PID] & 0xff) | newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUCRISState *state)
|
||||
{
|
||||
return state->regs[14];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef CRIS_TARGET_FCNTL_H
|
||||
#define CRIS_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef CRIS_TARGET_SIGNAL_H
|
||||
#define CRIS_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -21,10 +19,7 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUCRISState *state)
|
||||
{
|
||||
return state->regs[14];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
#endif /* CRIS_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -0,0 +1,151 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef GENERIC_FCNTL_H
|
||||
#define GENERIC_FCNTL_H
|
||||
|
||||
/* <asm-generic/fcntl.h> values follow. */
|
||||
#define TARGET_O_ACCMODE 0003
|
||||
#define TARGET_O_RDONLY 00
|
||||
#define TARGET_O_WRONLY 01
|
||||
#define TARGET_O_RDWR 02
|
||||
#ifndef TARGET_O_CREAT
|
||||
#define TARGET_O_CREAT 0100 /* not fcntl */
|
||||
#endif
|
||||
#ifndef TARGET_O_EXCL
|
||||
#define TARGET_O_EXCL 0200 /* not fcntl */
|
||||
#endif
|
||||
#ifndef TARGET_O_NOCTTY
|
||||
#define TARGET_O_NOCTTY 0400 /* not fcntl */
|
||||
#endif
|
||||
#ifndef TARGET_O_TRUNC
|
||||
#define TARGET_O_TRUNC 01000 /* not fcntl */
|
||||
#endif
|
||||
#ifndef TARGET_O_APPEND
|
||||
#define TARGET_O_APPEND 02000
|
||||
#endif
|
||||
#ifndef TARGET_O_NONBLOCK
|
||||
#define TARGET_O_NONBLOCK 04000
|
||||
#endif
|
||||
#ifndef TARGET_O_DSYNC
|
||||
#define TARGET_O_DSYNC 010000
|
||||
#endif
|
||||
#ifndef TARGET_FASYNC
|
||||
#define TARGET_FASYNC 020000 /* fcntl, for BSD compatibility */
|
||||
#endif
|
||||
#ifndef TARGET_O_DIRECT
|
||||
#define TARGET_O_DIRECT 040000 /* direct disk access hint */
|
||||
#endif
|
||||
#ifndef TARGET_O_LARGEFILE
|
||||
#define TARGET_O_LARGEFILE 0100000
|
||||
#endif
|
||||
#ifndef TARGET_O_DIRECTORY
|
||||
#define TARGET_O_DIRECTORY 0200000 /* must be a directory */
|
||||
#endif
|
||||
#ifndef TARGET_O_NOFOLLOW
|
||||
#define TARGET_O_NOFOLLOW 0400000 /* don't follow links */
|
||||
#endif
|
||||
#ifndef TARGET_O_NOATIME
|
||||
#define TARGET_O_NOATIME 01000000
|
||||
#endif
|
||||
#ifndef TARGET_O_CLOEXEC
|
||||
#define TARGET_O_CLOEXEC 02000000
|
||||
#endif
|
||||
#ifndef TARGET___O_SYNC
|
||||
#define TARGET___O_SYNC 04000000
|
||||
#endif
|
||||
#ifndef TARGET_O_PATH
|
||||
#define TARGET_O_PATH 010000000
|
||||
#endif
|
||||
#ifndef TARGET___O_TMPFILE
|
||||
#define TARGET___O_TMPFILE 020000000
|
||||
#endif
|
||||
#ifndef TARGET_O_TMPFILE
|
||||
#define TARGET_O_TMPFILE (TARGET___O_TMPFILE | TARGET_O_DIRECTORY)
|
||||
#endif
|
||||
#ifndef TARGET_O_NDELAY
|
||||
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
|
||||
#endif
|
||||
#ifndef TARGET_O_SYNC
|
||||
#define TARGET_O_SYNC (TARGET___O_SYNC | TARGET_O_DSYNC)
|
||||
#endif
|
||||
|
||||
#define TARGET_F_DUPFD 0 /* dup */
|
||||
#define TARGET_F_GETFD 1 /* get close_on_exec */
|
||||
#define TARGET_F_SETFD 2 /* set/clear close_on_exec */
|
||||
#define TARGET_F_GETFL 3 /* get file->f_flags */
|
||||
#define TARGET_F_SETFL 4 /* set file->f_flags */
|
||||
#ifndef TARGET_F_GETLK
|
||||
#define TARGET_F_GETLK 5
|
||||
#define TARGET_F_SETLK 6
|
||||
#define TARGET_F_SETLKW 7
|
||||
#endif
|
||||
#ifndef TARGET_F_SETOWN
|
||||
#define TARGET_F_SETOWN 8 /* for sockets. */
|
||||
#define TARGET_F_GETOWN 9 /* for sockets. */
|
||||
#endif
|
||||
#ifndef TARGET_F_SETSIG
|
||||
#define TARGET_F_SETSIG 10 /* for sockets. */
|
||||
#define TARGET_F_GETSIG 11 /* for sockets. */
|
||||
#endif
|
||||
|
||||
#ifndef TARGET_F_GETLK64
|
||||
#define TARGET_F_GETLK64 12 /* using 'struct flock64' */
|
||||
#define TARGET_F_SETLK64 13
|
||||
#define TARGET_F_SETLKW64 14
|
||||
#endif
|
||||
|
||||
#ifndef TARGET_F_SETOWN_EX
|
||||
#define TARGET_F_SETOWN_EX 15
|
||||
#define TARGET_F_GETOWN_EX 16
|
||||
#endif
|
||||
|
||||
struct target_f_owner_ex {
|
||||
int type; /* Owner type of ID. */
|
||||
int pid; /* ID of owner. */
|
||||
};
|
||||
|
||||
#ifndef TARGET_F_RDLCK
|
||||
#define TARGET_F_RDLCK 0
|
||||
#define TARGET_F_WRLCK 1
|
||||
#define TARGET_F_UNLCK 2
|
||||
#endif
|
||||
|
||||
#ifndef TARGET_F_EXLCK
|
||||
#define TARGET_F_EXLCK 4
|
||||
#define TARGET_F_SHLCK 8
|
||||
#endif
|
||||
|
||||
#ifndef TARGET_ARCH_FLOCK_PAD
|
||||
#define TARGET_ARCH_FLOCK_PAD
|
||||
#endif
|
||||
|
||||
struct target_flock {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
abi_long l_start;
|
||||
abi_long l_len;
|
||||
#if defined(TARGET_MIPS)
|
||||
abi_long l_sysid;
|
||||
#endif
|
||||
int l_pid;
|
||||
TARGET_ARCH_FLOCK_PAD
|
||||
};
|
||||
|
||||
#ifndef TARGET_ARCH_FLOCK64_PAD
|
||||
#define TARGET_ARCH_FLOCK64_PAD
|
||||
#endif
|
||||
|
||||
struct target_flock64 {
|
||||
abi_short l_type;
|
||||
abi_short l_whence;
|
||||
abi_llong l_start;
|
||||
abi_llong l_len;
|
||||
abi_int l_pid;
|
||||
TARGET_ARCH_FLOCK64_PAD
|
||||
};
|
||||
#endif
|
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef GENERIC_SIGNAL_H
|
||||
#define GENERIC_SIGNAL_H
|
||||
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000001
|
||||
#define TARGET_SA_NOCLDWAIT 0x00000002 /* not supported yet */
|
||||
#define TARGET_SA_SIGINFO 0x00000004
|
||||
#define TARGET_SA_ONSTACK 0x08000000
|
||||
#define TARGET_SA_RESTART 0x10000000
|
||||
#define TARGET_SA_NODEFER 0x40000000
|
||||
#define TARGET_SA_RESETHAND 0x80000000
|
||||
#define TARGET_SA_RESTORER 0x04000000
|
||||
|
||||
#define TARGET_SIGHUP 1
|
||||
#define TARGET_SIGINT 2
|
||||
#define TARGET_SIGQUIT 3
|
||||
#define TARGET_SIGILL 4
|
||||
#define TARGET_SIGTRAP 5
|
||||
#define TARGET_SIGABRT 6
|
||||
#define TARGET_SIGIOT 6
|
||||
#define TARGET_SIGBUS 7
|
||||
#define TARGET_SIGFPE 8
|
||||
#define TARGET_SIGKILL 9
|
||||
#define TARGET_SIGUSR1 10
|
||||
#define TARGET_SIGSEGV 11
|
||||
#define TARGET_SIGUSR2 12
|
||||
#define TARGET_SIGPIPE 13
|
||||
#define TARGET_SIGALRM 14
|
||||
#define TARGET_SIGTERM 15
|
||||
#define TARGET_SIGSTKFLT 16
|
||||
#define TARGET_SIGCHLD 17
|
||||
#define TARGET_SIGCONT 18
|
||||
#define TARGET_SIGSTOP 19
|
||||
#define TARGET_SIGTSTP 20
|
||||
#define TARGET_SIGTTIN 21
|
||||
#define TARGET_SIGTTOU 22
|
||||
#define TARGET_SIGURG 23
|
||||
#define TARGET_SIGXCPU 24
|
||||
#define TARGET_SIGXFSZ 25
|
||||
#define TARGET_SIGVTALRM 26
|
||||
#define TARGET_SIGPROF 27
|
||||
#define TARGET_SIGWINCH 28
|
||||
#define TARGET_SIGIO 29
|
||||
#define TARGET_SIGPWR 30
|
||||
#define TARGET_SIGSYS 31
|
||||
#define TARGET_SIGRTMIN 32
|
||||
|
||||
#define TARGET_SIG_BLOCK 0 /* for blocking signals */
|
||||
#define TARGET_SIG_UNBLOCK 1 /* for unblocking signals */
|
||||
#define TARGET_SIG_SETMASK 2 /* for setting the signal mask */
|
||||
#endif
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef ALPHA_TARGET_CPU_H
|
||||
#define ALPHA_TARGET_CPU_H
|
||||
#ifndef HPPA_TARGET_CPU_H
|
||||
#define HPPA_TARGET_CPU_H
|
||||
|
||||
static inline void cpu_clone_regs(CPUHPPAState *env, target_ulong newsp)
|
||||
{
|
||||
|
@ -36,4 +36,8 @@ static inline void cpu_set_tls(CPUHPPAState *env, target_ulong newtls)
|
|||
env->cr[27] = newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUHPPAState *state)
|
||||
{
|
||||
return state->gr[30];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef HPPA_TARGET_FCNTL_H
|
||||
#define HPPA_TARGET_FCNTL_H
|
||||
|
||||
#define TARGET_O_NONBLOCK 000200004 /* HPUX has separate NDELAY & NONBLOCK */
|
||||
#define TARGET_O_APPEND 000000010
|
||||
#define TARGET_O_CREAT 000000400 /* not fcntl */
|
||||
#define TARGET_O_EXCL 000002000 /* not fcntl */
|
||||
#define TARGET_O_NOCTTY 000400000 /* not fcntl */
|
||||
#define TARGET_O_DSYNC 001000000
|
||||
#define TARGET_O_LARGEFILE 000004000
|
||||
#define TARGET_O_DIRECTORY 000010000 /* must be a directory */
|
||||
#define TARGET_O_NOFOLLOW 000000200 /* don't follow links */
|
||||
#define TARGET_O_NOATIME 004000000
|
||||
#define TARGET_O_CLOEXEC 010000000
|
||||
#define TARGET___O_SYNC 000100000
|
||||
#define TARGET_O_PATH 020000000
|
||||
|
||||
#define TARGET_F_RDLCK 1
|
||||
#define TARGET_F_WRLCK 2
|
||||
#define TARGET_F_UNLCK 3
|
||||
|
||||
#define TARGET_F_GETLK64 8 /* using 'struct flock64' */
|
||||
#define TARGET_F_SETLK64 9
|
||||
#define TARGET_F_SETLKW64 10
|
||||
|
||||
#define TARGET_F_GETLK 5
|
||||
#define TARGET_F_SETLK 6
|
||||
#define TARGET_F_SETLKW 7
|
||||
#define TARGET_F_GETOWN 11 /* for sockets. */
|
||||
#define TARGET_F_SETOWN 12 /* for sockets. */
|
||||
#define TARGET_F_SETSIG 13 /* for sockets. */
|
||||
#define TARGET_F_GETSIG 14 /* for sockets. */
|
||||
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,7 +1,43 @@
|
|||
#ifndef HPPA_TARGET_SIGNAL_H
|
||||
#define HPPA_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
#define TARGET_SIGHUP 1
|
||||
#define TARGET_SIGINT 2
|
||||
#define TARGET_SIGQUIT 3
|
||||
#define TARGET_SIGILL 4
|
||||
#define TARGET_SIGTRAP 5
|
||||
#define TARGET_SIGABRT 6
|
||||
#define TARGET_SIGIOT 6
|
||||
#define TARGET_SIGSTKFLT 7
|
||||
#define TARGET_SIGFPE 8
|
||||
#define TARGET_SIGKILL 9
|
||||
#define TARGET_SIGBUS 10
|
||||
#define TARGET_SIGSEGV 11
|
||||
#define TARGET_SIGXCPU 12
|
||||
#define TARGET_SIGPIPE 13
|
||||
#define TARGET_SIGALRM 14
|
||||
#define TARGET_SIGTERM 15
|
||||
#define TARGET_SIGUSR1 16
|
||||
#define TARGET_SIGUSR2 17
|
||||
#define TARGET_SIGCHLD 18
|
||||
#define TARGET_SIGPWR 19
|
||||
#define TARGET_SIGVTALRM 20
|
||||
#define TARGET_SIGPROF 21
|
||||
#define TARGET_SIGIO 22
|
||||
#define TARGET_SIGPOLL TARGET_SIGIO
|
||||
#define TARGET_SIGWINCH 23
|
||||
#define TARGET_SIGSTOP 24
|
||||
#define TARGET_SIGTSTP 25
|
||||
#define TARGET_SIGCONT 26
|
||||
#define TARGET_SIGTTIN 27
|
||||
#define TARGET_SIGTTOU 28
|
||||
#define TARGET_SIGURG 29
|
||||
#define TARGET_SIGXFSZ 30
|
||||
#define TARGET_SIGSYS 31
|
||||
|
||||
#define TARGET_SIG_BLOCK 0
|
||||
#define TARGET_SIG_UNBLOCK 1
|
||||
#define TARGET_SIG_SETMASK 2
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
|
@ -18,11 +54,15 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_SS_ONSTACK 1
|
||||
#define TARGET_SS_DISABLE 2
|
||||
|
||||
#define TARGET_SA_ONSTACK 0x00000001
|
||||
#define TARGET_SA_RESETHAND 0x00000004
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000008
|
||||
#define TARGET_SA_SIGINFO 0x00000010
|
||||
#define TARGET_SA_NODEFER 0x00000020
|
||||
#define TARGET_SA_RESTART 0x00000040
|
||||
#define TARGET_SA_NOCLDWAIT 0x00000080
|
||||
|
||||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUHPPAState *state)
|
||||
{
|
||||
return state->gr[30];
|
||||
}
|
||||
#endif /* HPPA_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -45,4 +45,8 @@ static inline void cpu_set_tls(CPUX86State *env, target_ulong newtls)
|
|||
}
|
||||
#endif /* defined(TARGET_ABI32) */
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUX86State *state)
|
||||
{
|
||||
return state->regs[R_ESP];
|
||||
}
|
||||
#endif /* I386_TARGET_CPU_H */
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef I386_TARGET_FCNTL_H
|
||||
#define I386_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef I386_TARGET_SIGNAL_H
|
||||
#define I386_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -21,10 +19,7 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUX86State *state)
|
||||
{
|
||||
return state->regs[R_ESP];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
#endif /* I386_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -37,4 +37,8 @@ static inline void cpu_set_tls(CPUM68KState *env, target_ulong newtls)
|
|||
ts->tp_value = newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUM68KState *state)
|
||||
{
|
||||
return state->aregs[7];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef M68K_TARGET_FCNTL_H
|
||||
#define M68K_TARGET_FCNTL_H
|
||||
|
||||
#define TARGET_O_DIRECTORY 040000 /* must be a directory */
|
||||
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
|
||||
#define TARGET_O_DIRECT 0200000 /* direct disk access hint */
|
||||
#define TARGET_O_LARGEFILE 0400000
|
||||
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef M68K_TARGET_SIGNAL_H
|
||||
#define M68K_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -21,10 +19,7 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUM68KState *state)
|
||||
{
|
||||
return state->aregs[7];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
#endif /* M68K_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -32,4 +32,8 @@ static inline void cpu_set_tls(CPUMBState *env, target_ulong newtls)
|
|||
env->regs[21] = newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUMBState *state)
|
||||
{
|
||||
return state->regs[1];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef MICROBLAZE_TARGET_FCNTL_H
|
||||
#define MICROBLAZE_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef MICROBLAZE_TARGET_SIGNAL_H
|
||||
#define MICROBLAZE_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -21,10 +19,7 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUMBState *state)
|
||||
{
|
||||
return state->regs[1];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
#endif /* MICROBLAZE_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -33,4 +33,8 @@ static inline void cpu_set_tls(CPUMIPSState *env, target_ulong newtls)
|
|||
env->active_tc.CP0_UserLocal = newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUMIPSState *state)
|
||||
{
|
||||
return state->active_tc.gpr[29];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef MIPS_TARGET_FCNTL_H
|
||||
#define MIPS_TARGET_FCNTL_H
|
||||
|
||||
#define TARGET_O_APPEND 0x0008
|
||||
#define TARGET_O_DSYNC 0x0010
|
||||
#define TARGET_O_NONBLOCK 0x0080
|
||||
#define TARGET_O_CREAT 0x0100 /* not fcntl */
|
||||
#define TARGET_O_TRUNC 0x0200 /* not fcntl */
|
||||
#define TARGET_O_EXCL 0x0400 /* not fcntl */
|
||||
#define TARGET_O_NOCTTY 0x0800 /* not fcntl */
|
||||
#define TARGET_FASYNC 0x1000 /* fcntl, for BSD compatibility */
|
||||
#define TARGET_O_LARGEFILE 0x2000 /* allow large file opens */
|
||||
#define TARGET___O_SYNC 0x4000
|
||||
#define TARGET_O_DIRECT 0x8000 /* direct disk access hint */
|
||||
|
||||
#define TARGET_F_GETLK 14
|
||||
#define TARGET_F_SETLK 6
|
||||
#define TARGET_F_SETLKW 7
|
||||
|
||||
#define TARGET_F_SETOWN 24 /* for sockets. */
|
||||
#define TARGET_F_GETOWN 23 /* for sockets. */
|
||||
|
||||
#define TARGET_ARCH_FLOCK_PAD abi_long pad[4];
|
||||
#define TARGET_ARCH_FLOCK64_PAD
|
||||
|
||||
#define TARGET_F_GETLK64 33 /* using 'struct flock64' */
|
||||
#define TARGET_F_SETLK64 34
|
||||
#define TARGET_F_SETLKW64 35
|
||||
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,7 +1,46 @@
|
|||
#ifndef MIPS_TARGET_SIGNAL_H
|
||||
#define MIPS_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
#define TARGET_SIGHUP 1 /* Hangup (POSIX). */
|
||||
#define TARGET_SIGINT 2 /* Interrupt (ANSI). */
|
||||
#define TARGET_SIGQUIT 3 /* Quit (POSIX). */
|
||||
#define TARGET_SIGILL 4 /* Illegal instruction (ANSI). */
|
||||
#define TARGET_SIGTRAP 5 /* Trace trap (POSIX). */
|
||||
#define TARGET_SIGIOT 6 /* IOT trap (4.2 BSD). */
|
||||
#define TARGET_SIGABRT TARGET_SIGIOT /* Abort (ANSI). */
|
||||
#define TARGET_SIGEMT 7
|
||||
#define TARGET_SIGSTKFLT 7 /* XXX: incorrect */
|
||||
#define TARGET_SIGFPE 8 /* Floating-point exception (ANSI). */
|
||||
#define TARGET_SIGKILL 9 /* Kill, unblockable (POSIX). */
|
||||
#define TARGET_SIGBUS 10 /* BUS error (4.2 BSD). */
|
||||
#define TARGET_SIGSEGV 11 /* Segmentation violation (ANSI). */
|
||||
#define TARGET_SIGSYS 12
|
||||
#define TARGET_SIGPIPE 13 /* Broken pipe (POSIX). */
|
||||
#define TARGET_SIGALRM 14 /* Alarm clock (POSIX). */
|
||||
#define TARGET_SIGTERM 15 /* Termination (ANSI). */
|
||||
#define TARGET_SIGUSR1 16 /* User-defined signal 1 (POSIX). */
|
||||
#define TARGET_SIGUSR2 17 /* User-defined signal 2 (POSIX). */
|
||||
#define TARGET_SIGCHLD 18 /* Child status has changed (POSIX). */
|
||||
#define TARGET_SIGCLD TARGET_SIGCHLD /* Same as TARGET_SIGCHLD (System V). */
|
||||
#define TARGET_SIGPWR 19 /* Power failure restart (System V). */
|
||||
#define TARGET_SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */
|
||||
#define TARGET_SIGURG 21 /* Urgent condition on socket (4.2 BSD). */
|
||||
#define TARGET_SIGIO 22 /* I/O now possible (4.2 BSD). */
|
||||
#define TARGET_SIGPOLL TARGET_SIGIO /* Pollable event occurred (System V). */
|
||||
#define TARGET_SIGSTOP 23 /* Stop, unblockable (POSIX). */
|
||||
#define TARGET_SIGTSTP 24 /* Keyboard stop (POSIX). */
|
||||
#define TARGET_SIGCONT 25 /* Continue (POSIX). */
|
||||
#define TARGET_SIGTTIN 26 /* Background read from tty (POSIX). */
|
||||
#define TARGET_SIGTTOU 27 /* Background write to tty (POSIX). */
|
||||
#define TARGET_SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */
|
||||
#define TARGET_SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */
|
||||
#define TARGET_SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */
|
||||
#define TARGET_SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */
|
||||
#define TARGET_SIGRTMIN 32
|
||||
|
||||
#define TARGET_SIG_BLOCK 1 /* for blocking signals */
|
||||
#define TARGET_SIG_UNBLOCK 2 /* for unblocking signals */
|
||||
#define TARGET_SIG_SETMASK 3 /* for setting the signal mask */
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
|
@ -18,14 +57,18 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_SS_ONSTACK 1
|
||||
#define TARGET_SS_DISABLE 2
|
||||
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000001
|
||||
#define TARGET_SA_NOCLDWAIT 0x00010000
|
||||
#define TARGET_SA_SIGINFO 0x00000008
|
||||
#define TARGET_SA_ONSTACK 0x08000000
|
||||
#define TARGET_SA_NODEFER 0x40000000
|
||||
#define TARGET_SA_RESTART 0x10000000
|
||||
#define TARGET_SA_RESETHAND 0x80000000
|
||||
#define TARGET_SA_RESTORER 0x04000000 /* Only for O32 */
|
||||
|
||||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUMIPSState *state)
|
||||
{
|
||||
return state->active_tc.gpr[29];
|
||||
}
|
||||
|
||||
#if defined(TARGET_ABI_MIPSO32)
|
||||
/* compare linux/arch/mips/kernel/signal.c:setup_frame() */
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
#include "../mips/target_fcntl.h"
|
|
@ -1,7 +1,46 @@
|
|||
#ifndef MIPS64_TARGET_SIGNAL_H
|
||||
#define MIPS64_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
#define TARGET_SIGHUP 1 /* Hangup (POSIX). */
|
||||
#define TARGET_SIGINT 2 /* Interrupt (ANSI). */
|
||||
#define TARGET_SIGQUIT 3 /* Quit (POSIX). */
|
||||
#define TARGET_SIGILL 4 /* Illegal instruction (ANSI). */
|
||||
#define TARGET_SIGTRAP 5 /* Trace trap (POSIX). */
|
||||
#define TARGET_SIGIOT 6 /* IOT trap (4.2 BSD). */
|
||||
#define TARGET_SIGABRT TARGET_SIGIOT /* Abort (ANSI). */
|
||||
#define TARGET_SIGEMT 7
|
||||
#define TARGET_SIGSTKFLT 7 /* XXX: incorrect */
|
||||
#define TARGET_SIGFPE 8 /* Floating-point exception (ANSI). */
|
||||
#define TARGET_SIGKILL 9 /* Kill, unblockable (POSIX). */
|
||||
#define TARGET_SIGBUS 10 /* BUS error (4.2 BSD). */
|
||||
#define TARGET_SIGSEGV 11 /* Segmentation violation (ANSI). */
|
||||
#define TARGET_SIGSYS 12
|
||||
#define TARGET_SIGPIPE 13 /* Broken pipe (POSIX). */
|
||||
#define TARGET_SIGALRM 14 /* Alarm clock (POSIX). */
|
||||
#define TARGET_SIGTERM 15 /* Termination (ANSI). */
|
||||
#define TARGET_SIGUSR1 16 /* User-defined signal 1 (POSIX). */
|
||||
#define TARGET_SIGUSR2 17 /* User-defined signal 2 (POSIX). */
|
||||
#define TARGET_SIGCHLD 18 /* Child status has changed (POSIX). */
|
||||
#define TARGET_SIGCLD TARGET_SIGCHLD /* Same as TARGET_SIGCHLD (System V). */
|
||||
#define TARGET_SIGPWR 19 /* Power failure restart (System V). */
|
||||
#define TARGET_SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */
|
||||
#define TARGET_SIGURG 21 /* Urgent condition on socket (4.2 BSD). */
|
||||
#define TARGET_SIGIO 22 /* I/O now possible (4.2 BSD). */
|
||||
#define TARGET_SIGPOLL TARGET_SIGIO /* Pollable event occurred (System V). */
|
||||
#define TARGET_SIGSTOP 23 /* Stop, unblockable (POSIX). */
|
||||
#define TARGET_SIGTSTP 24 /* Keyboard stop (POSIX). */
|
||||
#define TARGET_SIGCONT 25 /* Continue (POSIX). */
|
||||
#define TARGET_SIGTTIN 26 /* Background read from tty (POSIX). */
|
||||
#define TARGET_SIGTTOU 27 /* Background write to tty (POSIX). */
|
||||
#define TARGET_SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */
|
||||
#define TARGET_SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */
|
||||
#define TARGET_SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */
|
||||
#define TARGET_SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */
|
||||
#define TARGET_SIGRTMIN 32
|
||||
|
||||
#define TARGET_SIG_BLOCK 1 /* for blocking signals */
|
||||
#define TARGET_SIG_UNBLOCK 2 /* for unblocking signals */
|
||||
#define TARGET_SIG_SETMASK 3 /* for setting the signal mask */
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
|
@ -18,11 +57,15 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_SS_ONSTACK 1
|
||||
#define TARGET_SS_DISABLE 2
|
||||
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000001
|
||||
#define TARGET_SA_NOCLDWAIT 0x00010000
|
||||
#define TARGET_SA_SIGINFO 0x00000008
|
||||
#define TARGET_SA_ONSTACK 0x08000000
|
||||
#define TARGET_SA_NODEFER 0x40000000
|
||||
#define TARGET_SA_RESTART 0x10000000
|
||||
#define TARGET_SA_RESETHAND 0x80000000
|
||||
|
||||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUMIPSState *state)
|
||||
{
|
||||
return state->active_tc.gpr[29];
|
||||
}
|
||||
#endif /* MIPS64_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -36,4 +36,8 @@ static inline void cpu_set_tls(CPUNios2State *env, target_ulong newtls)
|
|||
*/
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUNios2State *state)
|
||||
{
|
||||
return state->regs[R_SP];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef NIOS2_TARGET_FCNTL_H
|
||||
#define NIOS2_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef TARGET_SIGNAL_H
|
||||
#define TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -18,8 +16,6 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUNios2State *state)
|
||||
{
|
||||
return state->regs[R_SP];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#endif /* TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -33,4 +33,8 @@ static inline void cpu_set_tls(CPUOpenRISCState *env, target_ulong newtls)
|
|||
cpu_set_gpr(env, 10, newtls);
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUOpenRISCState *state)
|
||||
{
|
||||
return cpu_get_gpr(state, 1);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef OPENRISC_TARGET_FCNTL_H
|
||||
#define OPENRISC_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef OPENRISC_TARGET_SIGNAL_H
|
||||
#define OPENRISC_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -15,11 +13,17 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_SS_ONSTACK 1
|
||||
#define TARGET_SS_DISABLE 2
|
||||
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000001
|
||||
#define TARGET_SA_NOCLDWAIT 0x00000002
|
||||
#define TARGET_SA_SIGINFO 0x00000004
|
||||
#define TARGET_SA_ONSTACK 0x08000000
|
||||
#define TARGET_SA_RESTART 0x10000000
|
||||
#define TARGET_SA_NODEFER 0x40000000
|
||||
#define TARGET_SA_RESETHAND 0x80000000
|
||||
|
||||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUOpenRISCState *state)
|
||||
{
|
||||
return cpu_get_gpr(state, 1);
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#endif /* OPENRISC_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -47,5 +47,8 @@ static inline uint32_t get_ppc64_abi(struct image_info *infop)
|
|||
return infop->elf_flags & EF_PPC64_ABI;
|
||||
}
|
||||
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUPPCState *state)
|
||||
{
|
||||
return state->gpr[1];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef PPC_TARGET_FCNTL_H
|
||||
#define PPC_TARGET_FCNTL_H
|
||||
|
||||
#define TARGET_O_DIRECTORY 040000 /* must be a directory */
|
||||
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
|
||||
#define TARGET_O_LARGEFILE 0200000
|
||||
#define TARGET_O_DIRECT 0400000 /* direct disk access hint */
|
||||
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef PPC_TARGET_SIGNAL_H
|
||||
#define PPC_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -21,10 +19,7 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUPPCState *state)
|
||||
{
|
||||
return state->gpr[1];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#if !defined(TARGET_PPC64)
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
|
|
|
@ -623,7 +623,6 @@ static inline void *lock_user_string(abi_ulong guest_addr)
|
|||
* above, so include them last.
|
||||
*/
|
||||
#include "target_cpu.h"
|
||||
#include "target_signal.h"
|
||||
#include "target_structs.h"
|
||||
|
||||
#endif /* QEMU_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -15,4 +15,8 @@ static inline void cpu_set_tls(CPURISCVState *env, target_ulong newtls)
|
|||
env->gpr[xTP] = newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPURISCVState *state)
|
||||
{
|
||||
return state->gpr[xSP];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef RISCV_TARGET_FCNTL_H
|
||||
#define RISCV_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef TARGET_SIGNAL_H
|
||||
#define TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
abi_ulong ss_sp;
|
||||
abi_int ss_flags;
|
||||
|
@ -15,8 +13,6 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPURISCVState *state)
|
||||
{
|
||||
return state->gpr[xSP];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#endif /* TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -36,4 +36,8 @@ static inline void cpu_set_tls(CPUS390XState *env, target_ulong newtls)
|
|||
env->aregs[1] = newtls & 0xffffffffULL;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUS390XState *state)
|
||||
{
|
||||
return state->regs[15];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef S390X_TARGET_FCNTL_H
|
||||
#define S390X_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef S390X_TARGET_SIGNAL_H
|
||||
#define S390X_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
abi_ulong ss_sp;
|
||||
int ss_flags;
|
||||
|
@ -18,10 +16,7 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUS390XState *state)
|
||||
{
|
||||
return state->regs[15];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
#endif /* S390X_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -32,4 +32,8 @@ static inline void cpu_set_tls(CPUSH4State *env, target_ulong newtls)
|
|||
env->gbr = newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUSH4State *state)
|
||||
{
|
||||
return state->gregs[15];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef SH4_TARGET_FCNTL_H
|
||||
#define SH4_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef SH4_TARGET_SIGNAL_H
|
||||
#define SH4_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -21,10 +19,7 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUSH4State *state)
|
||||
{
|
||||
return state->gregs[15];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
#endif /* SH4_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
|
||||
#include "qemu.h"
|
||||
#include "qemu-common.h"
|
||||
#include "target_signal.h"
|
||||
#include "trace.h"
|
||||
#include "signal-common.h"
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -41,4 +41,15 @@ static inline void cpu_set_tls(CPUSPARCState *env, target_ulong newtls)
|
|||
env->gregs[7] = newtls;
|
||||
}
|
||||
|
||||
#ifndef UREG_I6
|
||||
#define UREG_I6 6
|
||||
#endif
|
||||
#ifndef UREG_FP
|
||||
#define UREG_FP UREG_I6
|
||||
#endif
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUSPARCState *state)
|
||||
{
|
||||
return state->regwptr[UREG_FP];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef SPARC_TARGET_FCNTL_H
|
||||
#define SPARC_TARGET_FCNTL_H
|
||||
|
||||
#define TARGET_O_APPEND 0x0008
|
||||
#define TARGET_FASYNC 0x0040 /* fcntl, for BSD compatibility */
|
||||
#define TARGET_O_CREAT 0x0200 /* not fcntl */
|
||||
#define TARGET_O_TRUNC 0x0400 /* not fcntl */
|
||||
#define TARGET_O_EXCL 0x0800 /* not fcntl */
|
||||
#define TARGET_O_DSYNC 0x2000
|
||||
#define TARGET_O_NONBLOCK 0x4000
|
||||
# ifdef TARGET_SPARC64
|
||||
# define TARGET_O_NDELAY 0x0004
|
||||
# else
|
||||
# define TARGET_O_NDELAY (0x0004 | TARGET_O_NONBLOCK)
|
||||
# endif
|
||||
#define TARGET_O_NOCTTY 0x8000 /* not fcntl */
|
||||
#define TARGET_O_LARGEFILE 0x40000
|
||||
#define TARGET_O_DIRECT 0x100000 /* direct disk access hint */
|
||||
#define TARGET_O_NOATIME 0x200000
|
||||
#define TARGET_O_CLOEXEC 0x400000
|
||||
#define TARGET___O_SYNC 0x800000
|
||||
#define TARGET_O_PATH 0x1000000
|
||||
#define TARGET___O_TMPFILE 0x2000000
|
||||
|
||||
#define TARGET_F_RDLCK 1
|
||||
#define TARGET_F_WRLCK 2
|
||||
#define TARGET_F_UNLCK 3
|
||||
#define TARGET_F_GETOWN 5 /* for sockets. */
|
||||
#define TARGET_F_SETOWN 6 /* for sockets. */
|
||||
#define TARGET_F_GETLK 7
|
||||
#define TARGET_F_SETLK 8
|
||||
#define TARGET_F_SETLKW 9
|
||||
|
||||
#define TARGET_ARCH_FLOCK_PAD abi_short __unused;
|
||||
#define TARGET_ARCH_FLOCK64_PAD abi_short __unused;
|
||||
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,7 +1,43 @@
|
|||
#ifndef SPARC_TARGET_SIGNAL_H
|
||||
#define SPARC_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
#define TARGET_SIGHUP 1
|
||||
#define TARGET_SIGINT 2
|
||||
#define TARGET_SIGQUIT 3
|
||||
#define TARGET_SIGILL 4
|
||||
#define TARGET_SIGTRAP 5
|
||||
#define TARGET_SIGABRT 6
|
||||
#define TARGET_SIGIOT 6
|
||||
#define TARGET_SIGSTKFLT 7 /* actually EMT */
|
||||
#define TARGET_SIGFPE 8
|
||||
#define TARGET_SIGKILL 9
|
||||
#define TARGET_SIGBUS 10
|
||||
#define TARGET_SIGSEGV 11
|
||||
#define TARGET_SIGSYS 12
|
||||
#define TARGET_SIGPIPE 13
|
||||
#define TARGET_SIGALRM 14
|
||||
#define TARGET_SIGTERM 15
|
||||
#define TARGET_SIGURG 16
|
||||
#define TARGET_SIGSTOP 17
|
||||
#define TARGET_SIGTSTP 18
|
||||
#define TARGET_SIGCONT 19
|
||||
#define TARGET_SIGCHLD 20
|
||||
#define TARGET_SIGTTIN 21
|
||||
#define TARGET_SIGTTOU 22
|
||||
#define TARGET_SIGIO 23
|
||||
#define TARGET_SIGXCPU 24
|
||||
#define TARGET_SIGXFSZ 25
|
||||
#define TARGET_SIGVTALRM 26
|
||||
#define TARGET_SIGPROF 27
|
||||
#define TARGET_SIGWINCH 28
|
||||
#define TARGET_SIGPWR 29
|
||||
#define TARGET_SIGUSR1 30
|
||||
#define TARGET_SIGUSR2 31
|
||||
#define TARGET_SIGRTMIN 32
|
||||
|
||||
#define TARGET_SIG_BLOCK 0x01 /* for blocking signals */
|
||||
#define TARGET_SIG_UNBLOCK 0x02 /* for unblocking signals */
|
||||
#define TARGET_SIG_SETMASK 0x04 /* for setting the signal mask */
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
|
@ -18,20 +54,18 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_SS_ONSTACK 1
|
||||
#define TARGET_SS_DISABLE 2
|
||||
|
||||
#define TARGET_SA_NOCLDSTOP 8u
|
||||
#define TARGET_SA_NOCLDWAIT 0x100u
|
||||
#define TARGET_SA_SIGINFO 0x200u
|
||||
#define TARGET_SA_ONSTACK 1u
|
||||
#define TARGET_SA_RESTART 2u
|
||||
#define TARGET_SA_NODEFER 0x20u
|
||||
#define TARGET_SA_RESETHAND 4u
|
||||
#define TARGET_ARCH_HAS_SA_RESTORER 1
|
||||
#define TARGET_ARCH_HAS_KA_RESTORER 1
|
||||
|
||||
#define TARGET_MINSIGSTKSZ 4096
|
||||
#define TARGET_SIGSTKSZ 16384
|
||||
|
||||
#ifndef UREG_I6
|
||||
#define UREG_I6 6
|
||||
#endif
|
||||
#ifndef UREG_FP
|
||||
#define UREG_FP UREG_I6
|
||||
#endif
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUSPARCState *state)
|
||||
{
|
||||
return state->regwptr[UREG_FP];
|
||||
}
|
||||
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
#endif /* SPARC_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -16,5 +16,4 @@
|
|||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#define SPARC_TARGET_SIGNAL_H /* to only include sparc64/target_signal.h */
|
||||
#include "../sparc/signal.c"
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
#include "../sparc/target_fcntl.h"
|
|
@ -1,37 +1 @@
|
|||
#ifndef SPARC64_TARGET_SIGNAL_H
|
||||
#define SPARC64_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
abi_ulong ss_sp;
|
||||
abi_long ss_flags;
|
||||
abi_ulong ss_size;
|
||||
} target_stack_t;
|
||||
|
||||
|
||||
/*
|
||||
* sigaltstack controls
|
||||
*/
|
||||
#define TARGET_SS_ONSTACK 1
|
||||
#define TARGET_SS_DISABLE 2
|
||||
|
||||
#define TARGET_MINSIGSTKSZ 4096
|
||||
#define TARGET_SIGSTKSZ 16384
|
||||
|
||||
#ifndef UREG_I6
|
||||
#define UREG_I6 6
|
||||
#endif
|
||||
#ifndef UREG_FP
|
||||
#define UREG_FP UREG_I6
|
||||
#endif
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUSPARCState *state)
|
||||
{
|
||||
return state->regwptr[UREG_FP];
|
||||
}
|
||||
|
||||
#define TARGET_ARCH_HAS_SETUP_FRAME
|
||||
#endif /* SPARC64_TARGET_SIGNAL_H */
|
||||
#include "../sparc/target_signal.h"
|
||||
|
|
|
@ -10156,7 +10156,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
if (!is_error(ret)) {
|
||||
/* Overwrite the native machine name with whatever is being
|
||||
emulated. */
|
||||
strcpy (buf->machine, cpu_to_uname_machine(cpu_env));
|
||||
g_strlcpy(buf->machine, cpu_to_uname_machine(cpu_env),
|
||||
sizeof(buf->machine));
|
||||
/* Allow the user to override the reported release. */
|
||||
if (qemu_uname_release && *qemu_uname_release) {
|
||||
g_strlcpy(buf->release, qemu_uname_release,
|
||||
|
|
|
@ -418,279 +418,12 @@ struct target_sigaction;
|
|||
int do_sigaction(int sig, const struct target_sigaction *act,
|
||||
struct target_sigaction *oact);
|
||||
|
||||
#if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC) \
|
||||
|| defined(TARGET_PPC) || defined(TARGET_MIPS) || defined(TARGET_SH4) \
|
||||
|| defined(TARGET_M68K) || defined(TARGET_ALPHA) || defined(TARGET_CRIS) \
|
||||
|| defined(TARGET_MICROBLAZE) \
|
||||
|| defined(TARGET_S390X) || defined(TARGET_OPENRISC) \
|
||||
|| defined(TARGET_TILEGX) || defined(TARGET_HPPA) || defined(TARGET_NIOS2) \
|
||||
|| defined(TARGET_RISCV) || defined(TARGET_XTENSA)
|
||||
|
||||
#if defined(TARGET_SPARC)
|
||||
#define TARGET_SA_NOCLDSTOP 8u
|
||||
#define TARGET_SA_NOCLDWAIT 0x100u
|
||||
#define TARGET_SA_SIGINFO 0x200u
|
||||
#define TARGET_SA_ONSTACK 1u
|
||||
#define TARGET_SA_RESTART 2u
|
||||
#define TARGET_SA_NODEFER 0x20u
|
||||
#define TARGET_SA_RESETHAND 4u
|
||||
#define TARGET_ARCH_HAS_SA_RESTORER 1
|
||||
#define TARGET_ARCH_HAS_KA_RESTORER 1
|
||||
#elif defined(TARGET_MIPS)
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000001
|
||||
#define TARGET_SA_NOCLDWAIT 0x00010000
|
||||
#define TARGET_SA_SIGINFO 0x00000008
|
||||
#define TARGET_SA_ONSTACK 0x08000000
|
||||
#define TARGET_SA_NODEFER 0x40000000
|
||||
#define TARGET_SA_RESTART 0x10000000
|
||||
#define TARGET_SA_RESETHAND 0x80000000
|
||||
#if !defined(TARGET_ABI_MIPSN32) && !defined(TARGET_ABI_MIPSN64)
|
||||
#define TARGET_SA_RESTORER 0x04000000 /* Only for O32 */
|
||||
#endif
|
||||
#elif defined(TARGET_OPENRISC)
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000001
|
||||
#define TARGET_SA_NOCLDWAIT 0x00000002
|
||||
#define TARGET_SA_SIGINFO 0x00000004
|
||||
#define TARGET_SA_ONSTACK 0x08000000
|
||||
#define TARGET_SA_RESTART 0x10000000
|
||||
#define TARGET_SA_NODEFER 0x40000000
|
||||
#define TARGET_SA_RESETHAND 0x80000000
|
||||
#elif defined(TARGET_ALPHA)
|
||||
#define TARGET_SA_ONSTACK 0x00000001
|
||||
#define TARGET_SA_RESTART 0x00000002
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000004
|
||||
#define TARGET_SA_NODEFER 0x00000008
|
||||
#define TARGET_SA_RESETHAND 0x00000010
|
||||
#define TARGET_SA_NOCLDWAIT 0x00000020 /* not supported yet */
|
||||
#define TARGET_SA_SIGINFO 0x00000040
|
||||
#elif defined(TARGET_HPPA)
|
||||
#define TARGET_SA_ONSTACK 0x00000001
|
||||
#define TARGET_SA_RESETHAND 0x00000004
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000008
|
||||
#define TARGET_SA_SIGINFO 0x00000010
|
||||
#define TARGET_SA_NODEFER 0x00000020
|
||||
#define TARGET_SA_RESTART 0x00000040
|
||||
#define TARGET_SA_NOCLDWAIT 0x00000080
|
||||
#else
|
||||
#define TARGET_SA_NOCLDSTOP 0x00000001
|
||||
#define TARGET_SA_NOCLDWAIT 0x00000002 /* not supported yet */
|
||||
#define TARGET_SA_SIGINFO 0x00000004
|
||||
#define TARGET_SA_ONSTACK 0x08000000
|
||||
#define TARGET_SA_RESTART 0x10000000
|
||||
#define TARGET_SA_NODEFER 0x40000000
|
||||
#define TARGET_SA_RESETHAND 0x80000000
|
||||
#define TARGET_SA_RESTORER 0x04000000
|
||||
#endif
|
||||
#include "target_signal.h"
|
||||
|
||||
#ifdef TARGET_SA_RESTORER
|
||||
#define TARGET_ARCH_HAS_SA_RESTORER 1
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_ALPHA)
|
||||
|
||||
#define TARGET_SIGHUP 1
|
||||
#define TARGET_SIGINT 2
|
||||
#define TARGET_SIGQUIT 3
|
||||
#define TARGET_SIGILL 4
|
||||
#define TARGET_SIGTRAP 5
|
||||
#define TARGET_SIGABRT 6
|
||||
#define TARGET_SIGSTKFLT 7 /* actually SIGEMT */
|
||||
#define TARGET_SIGFPE 8
|
||||
#define TARGET_SIGKILL 9
|
||||
#define TARGET_SIGBUS 10
|
||||
#define TARGET_SIGSEGV 11
|
||||
#define TARGET_SIGSYS 12
|
||||
#define TARGET_SIGPIPE 13
|
||||
#define TARGET_SIGALRM 14
|
||||
#define TARGET_SIGTERM 15
|
||||
#define TARGET_SIGURG 16
|
||||
#define TARGET_SIGSTOP 17
|
||||
#define TARGET_SIGTSTP 18
|
||||
#define TARGET_SIGCONT 19
|
||||
#define TARGET_SIGCHLD 20
|
||||
#define TARGET_SIGTTIN 21
|
||||
#define TARGET_SIGTTOU 22
|
||||
#define TARGET_SIGIO 23
|
||||
#define TARGET_SIGXCPU 24
|
||||
#define TARGET_SIGXFSZ 25
|
||||
#define TARGET_SIGVTALRM 26
|
||||
#define TARGET_SIGPROF 27
|
||||
#define TARGET_SIGWINCH 28
|
||||
#define TARGET_SIGPWR 29 /* actually SIGINFO */
|
||||
#define TARGET_SIGUSR1 30
|
||||
#define TARGET_SIGUSR2 31
|
||||
#define TARGET_SIGRTMIN 32
|
||||
|
||||
#define TARGET_SIG_BLOCK 1
|
||||
#define TARGET_SIG_UNBLOCK 2
|
||||
#define TARGET_SIG_SETMASK 3
|
||||
|
||||
#elif defined(TARGET_SPARC)
|
||||
|
||||
#define TARGET_SIGHUP 1
|
||||
#define TARGET_SIGINT 2
|
||||
#define TARGET_SIGQUIT 3
|
||||
#define TARGET_SIGILL 4
|
||||
#define TARGET_SIGTRAP 5
|
||||
#define TARGET_SIGABRT 6
|
||||
#define TARGET_SIGIOT 6
|
||||
#define TARGET_SIGSTKFLT 7 /* actually EMT */
|
||||
#define TARGET_SIGFPE 8
|
||||
#define TARGET_SIGKILL 9
|
||||
#define TARGET_SIGBUS 10
|
||||
#define TARGET_SIGSEGV 11
|
||||
#define TARGET_SIGSYS 12
|
||||
#define TARGET_SIGPIPE 13
|
||||
#define TARGET_SIGALRM 14
|
||||
#define TARGET_SIGTERM 15
|
||||
#define TARGET_SIGURG 16
|
||||
#define TARGET_SIGSTOP 17
|
||||
#define TARGET_SIGTSTP 18
|
||||
#define TARGET_SIGCONT 19
|
||||
#define TARGET_SIGCHLD 20
|
||||
#define TARGET_SIGTTIN 21
|
||||
#define TARGET_SIGTTOU 22
|
||||
#define TARGET_SIGIO 23
|
||||
#define TARGET_SIGXCPU 24
|
||||
#define TARGET_SIGXFSZ 25
|
||||
#define TARGET_SIGVTALRM 26
|
||||
#define TARGET_SIGPROF 27
|
||||
#define TARGET_SIGWINCH 28
|
||||
#define TARGET_SIGPWR 29
|
||||
#define TARGET_SIGUSR1 30
|
||||
#define TARGET_SIGUSR2 31
|
||||
#define TARGET_SIGRTMIN 32
|
||||
|
||||
#define TARGET_SIG_BLOCK 0x01 /* for blocking signals */
|
||||
#define TARGET_SIG_UNBLOCK 0x02 /* for unblocking signals */
|
||||
#define TARGET_SIG_SETMASK 0x04 /* for setting the signal mask */
|
||||
|
||||
#elif defined(TARGET_MIPS)
|
||||
|
||||
#define TARGET_SIGHUP 1 /* Hangup (POSIX). */
|
||||
#define TARGET_SIGINT 2 /* Interrupt (ANSI). */
|
||||
#define TARGET_SIGQUIT 3 /* Quit (POSIX). */
|
||||
#define TARGET_SIGILL 4 /* Illegal instruction (ANSI). */
|
||||
#define TARGET_SIGTRAP 5 /* Trace trap (POSIX). */
|
||||
#define TARGET_SIGIOT 6 /* IOT trap (4.2 BSD). */
|
||||
#define TARGET_SIGABRT TARGET_SIGIOT /* Abort (ANSI). */
|
||||
#define TARGET_SIGEMT 7
|
||||
#define TARGET_SIGSTKFLT 7 /* XXX: incorrect */
|
||||
#define TARGET_SIGFPE 8 /* Floating-point exception (ANSI). */
|
||||
#define TARGET_SIGKILL 9 /* Kill, unblockable (POSIX). */
|
||||
#define TARGET_SIGBUS 10 /* BUS error (4.2 BSD). */
|
||||
#define TARGET_SIGSEGV 11 /* Segmentation violation (ANSI). */
|
||||
#define TARGET_SIGSYS 12
|
||||
#define TARGET_SIGPIPE 13 /* Broken pipe (POSIX). */
|
||||
#define TARGET_SIGALRM 14 /* Alarm clock (POSIX). */
|
||||
#define TARGET_SIGTERM 15 /* Termination (ANSI). */
|
||||
#define TARGET_SIGUSR1 16 /* User-defined signal 1 (POSIX). */
|
||||
#define TARGET_SIGUSR2 17 /* User-defined signal 2 (POSIX). */
|
||||
#define TARGET_SIGCHLD 18 /* Child status has changed (POSIX). */
|
||||
#define TARGET_SIGCLD TARGET_SIGCHLD /* Same as TARGET_SIGCHLD (System V). */
|
||||
#define TARGET_SIGPWR 19 /* Power failure restart (System V). */
|
||||
#define TARGET_SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */
|
||||
#define TARGET_SIGURG 21 /* Urgent condition on socket (4.2 BSD). */
|
||||
#define TARGET_SIGIO 22 /* I/O now possible (4.2 BSD). */
|
||||
#define TARGET_SIGPOLL TARGET_SIGIO /* Pollable event occurred (System V). */
|
||||
#define TARGET_SIGSTOP 23 /* Stop, unblockable (POSIX). */
|
||||
#define TARGET_SIGTSTP 24 /* Keyboard stop (POSIX). */
|
||||
#define TARGET_SIGCONT 25 /* Continue (POSIX). */
|
||||
#define TARGET_SIGTTIN 26 /* Background read from tty (POSIX). */
|
||||
#define TARGET_SIGTTOU 27 /* Background write to tty (POSIX). */
|
||||
#define TARGET_SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */
|
||||
#define TARGET_SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */
|
||||
#define TARGET_SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */
|
||||
#define TARGET_SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */
|
||||
#define TARGET_SIGRTMIN 32
|
||||
|
||||
#define TARGET_SIG_BLOCK 1 /* for blocking signals */
|
||||
#define TARGET_SIG_UNBLOCK 2 /* for unblocking signals */
|
||||
#define TARGET_SIG_SETMASK 3 /* for setting the signal mask */
|
||||
|
||||
#elif defined(TARGET_HPPA)
|
||||
|
||||
#define TARGET_SIGHUP 1
|
||||
#define TARGET_SIGINT 2
|
||||
#define TARGET_SIGQUIT 3
|
||||
#define TARGET_SIGILL 4
|
||||
#define TARGET_SIGTRAP 5
|
||||
#define TARGET_SIGABRT 6
|
||||
#define TARGET_SIGIOT 6
|
||||
#define TARGET_SIGSTKFLT 7
|
||||
#define TARGET_SIGFPE 8
|
||||
#define TARGET_SIGKILL 9
|
||||
#define TARGET_SIGBUS 10
|
||||
#define TARGET_SIGSEGV 11
|
||||
#define TARGET_SIGXCPU 12
|
||||
#define TARGET_SIGPIPE 13
|
||||
#define TARGET_SIGALRM 14
|
||||
#define TARGET_SIGTERM 15
|
||||
#define TARGET_SIGUSR1 16
|
||||
#define TARGET_SIGUSR2 17
|
||||
#define TARGET_SIGCHLD 18
|
||||
#define TARGET_SIGPWR 19
|
||||
#define TARGET_SIGVTALRM 20
|
||||
#define TARGET_SIGPROF 21
|
||||
#define TARGET_SIGIO 22
|
||||
#define TARGET_SIGPOLL TARGET_SIGIO
|
||||
#define TARGET_SIGWINCH 23
|
||||
#define TARGET_SIGSTOP 24
|
||||
#define TARGET_SIGTSTP 25
|
||||
#define TARGET_SIGCONT 26
|
||||
#define TARGET_SIGTTIN 27
|
||||
#define TARGET_SIGTTOU 28
|
||||
#define TARGET_SIGURG 29
|
||||
#define TARGET_SIGXFSZ 30
|
||||
#define TARGET_SIGSYS 31
|
||||
|
||||
#define TARGET_SIG_BLOCK 0
|
||||
#define TARGET_SIG_UNBLOCK 1
|
||||
#define TARGET_SIG_SETMASK 2
|
||||
|
||||
#else
|
||||
|
||||
/* OpenRISC Using the general signals */
|
||||
#define TARGET_SIGHUP 1
|
||||
#define TARGET_SIGINT 2
|
||||
#define TARGET_SIGQUIT 3
|
||||
#define TARGET_SIGILL 4
|
||||
#define TARGET_SIGTRAP 5
|
||||
#define TARGET_SIGABRT 6
|
||||
#define TARGET_SIGIOT 6
|
||||
#define TARGET_SIGBUS 7
|
||||
#define TARGET_SIGFPE 8
|
||||
#define TARGET_SIGKILL 9
|
||||
#define TARGET_SIGUSR1 10
|
||||
#define TARGET_SIGSEGV 11
|
||||
#define TARGET_SIGUSR2 12
|
||||
#define TARGET_SIGPIPE 13
|
||||
#define TARGET_SIGALRM 14
|
||||
#define TARGET_SIGTERM 15
|
||||
#define TARGET_SIGSTKFLT 16
|
||||
#define TARGET_SIGCHLD 17
|
||||
#define TARGET_SIGCONT 18
|
||||
#define TARGET_SIGSTOP 19
|
||||
#define TARGET_SIGTSTP 20
|
||||
#define TARGET_SIGTTIN 21
|
||||
#define TARGET_SIGTTOU 22
|
||||
#define TARGET_SIGURG 23
|
||||
#define TARGET_SIGXCPU 24
|
||||
#define TARGET_SIGXFSZ 25
|
||||
#define TARGET_SIGVTALRM 26
|
||||
#define TARGET_SIGPROF 27
|
||||
#define TARGET_SIGWINCH 28
|
||||
#define TARGET_SIGIO 29
|
||||
#define TARGET_SIGPWR 30
|
||||
#define TARGET_SIGSYS 31
|
||||
#define TARGET_SIGRTMIN 32
|
||||
|
||||
#define TARGET_SIG_BLOCK 0 /* for blocking signals */
|
||||
#define TARGET_SIG_UNBLOCK 1 /* for unblocking signals */
|
||||
#define TARGET_SIG_SETMASK 2 /* for setting the signal mask */
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_ALPHA)
|
||||
struct target_old_sigaction {
|
||||
abi_ulong _sa_handler;
|
||||
|
@ -925,8 +658,6 @@ typedef struct target_siginfo {
|
|||
#define TARGET_TRAP_BRANCH (3) /* process taken branch trap */
|
||||
#define TARGET_TRAP_HWBKPT (4) /* hardware breakpoint/watchpoint */
|
||||
|
||||
#endif /* defined(TARGET_I386) || defined(TARGET_ARM) */
|
||||
|
||||
struct target_rlimit {
|
||||
abi_ulong rlim_cur;
|
||||
abi_ulong rlim_max;
|
||||
|
@ -2407,93 +2138,6 @@ struct target_statfs64 {
|
|||
};
|
||||
#endif
|
||||
|
||||
|
||||
#define TARGET_F_DUPFD 0 /* dup */
|
||||
#define TARGET_F_GETFD 1 /* get close_on_exec */
|
||||
#define TARGET_F_SETFD 2 /* set/clear close_on_exec */
|
||||
#define TARGET_F_GETFL 3 /* get file->f_flags */
|
||||
#define TARGET_F_SETFL 4 /* set file->f_flags */
|
||||
|
||||
#if defined(TARGET_ALPHA)
|
||||
#define TARGET_F_GETLK 7
|
||||
#define TARGET_F_SETLK 8
|
||||
#define TARGET_F_SETLKW 9
|
||||
#define TARGET_F_SETOWN 5 /* for sockets. */
|
||||
#define TARGET_F_GETOWN 6 /* for sockets. */
|
||||
|
||||
#define TARGET_F_RDLCK 1
|
||||
#define TARGET_F_WRLCK 2
|
||||
#define TARGET_F_UNLCK 8
|
||||
#define TARGET_F_EXLCK 16
|
||||
#define TARGET_F_SHLCK 32
|
||||
#elif defined(TARGET_MIPS)
|
||||
#define TARGET_F_GETLK 14
|
||||
#define TARGET_F_SETLK 6
|
||||
#define TARGET_F_SETLKW 7
|
||||
#define TARGET_F_SETOWN 24 /* for sockets. */
|
||||
#define TARGET_F_GETOWN 23 /* for sockets. */
|
||||
#elif defined(TARGET_HPPA)
|
||||
#define TARGET_F_RDLCK 1
|
||||
#define TARGET_F_WRLCK 2
|
||||
#define TARGET_F_UNLCK 3
|
||||
#define TARGET_F_GETLK 5
|
||||
#define TARGET_F_SETLK 6
|
||||
#define TARGET_F_SETLKW 7
|
||||
#define TARGET_F_GETOWN 11 /* for sockets. */
|
||||
#define TARGET_F_SETOWN 12 /* for sockets. */
|
||||
#elif defined(TARGET_SPARC)
|
||||
#define TARGET_F_RDLCK 1
|
||||
#define TARGET_F_WRLCK 2
|
||||
#define TARGET_F_UNLCK 3
|
||||
#define TARGET_F_GETOWN 5 /* for sockets. */
|
||||
#define TARGET_F_SETOWN 6 /* for sockets. */
|
||||
#define TARGET_F_GETLK 7
|
||||
#define TARGET_F_SETLK 8
|
||||
#define TARGET_F_SETLKW 9
|
||||
#else
|
||||
#define TARGET_F_GETLK 5
|
||||
#define TARGET_F_SETLK 6
|
||||
#define TARGET_F_SETLKW 7
|
||||
#define TARGET_F_SETOWN 8 /* for sockets. */
|
||||
#define TARGET_F_GETOWN 9 /* for sockets. */
|
||||
#endif
|
||||
#define TARGET_F_SETOWN_EX 15
|
||||
#define TARGET_F_GETOWN_EX 16
|
||||
|
||||
#ifndef TARGET_F_RDLCK
|
||||
#define TARGET_F_RDLCK 0
|
||||
#define TARGET_F_WRLCK 1
|
||||
#define TARGET_F_UNLCK 2
|
||||
#endif
|
||||
|
||||
#ifndef TARGET_F_EXLCK
|
||||
#define TARGET_F_EXLCK 4
|
||||
#define TARGET_F_SHLCK 8
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(TARGET_HPPA)
|
||||
#define TARGET_F_SETSIG 13 /* for sockets. */
|
||||
#define TARGET_F_GETSIG 14 /* for sockets. */
|
||||
#else
|
||||
#define TARGET_F_SETSIG 10 /* for sockets. */
|
||||
#define TARGET_F_GETSIG 11 /* for sockets. */
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_MIPS)
|
||||
#define TARGET_F_GETLK64 33 /* using 'struct flock64' */
|
||||
#define TARGET_F_SETLK64 34
|
||||
#define TARGET_F_SETLKW64 35
|
||||
#elif defined(TARGET_HPPA)
|
||||
#define TARGET_F_GETLK64 8 /* using 'struct flock64' */
|
||||
#define TARGET_F_SETLK64 9
|
||||
#define TARGET_F_SETLKW64 10
|
||||
#else
|
||||
#define TARGET_F_GETLK64 12 /* using 'struct flock64' */
|
||||
#define TARGET_F_SETLK64 13
|
||||
#define TARGET_F_SETLKW64 14
|
||||
#endif
|
||||
|
||||
#define TARGET_F_LINUX_SPECIFIC_BASE 1024
|
||||
#define TARGET_F_SETLEASE (TARGET_F_LINUX_SPECIFIC_BASE + 0)
|
||||
#define TARGET_F_GETLEASE (TARGET_F_LINUX_SPECIFIC_BASE + 1)
|
||||
|
@ -2502,183 +2146,7 @@ struct target_statfs64 {
|
|||
#define TARGET_F_GETPIPE_SZ (TARGET_F_LINUX_SPECIFIC_BASE + 8)
|
||||
#define TARGET_F_NOTIFY (TARGET_F_LINUX_SPECIFIC_BASE+2)
|
||||
|
||||
#if defined(TARGET_ALPHA)
|
||||
#define TARGET_O_NONBLOCK 04
|
||||
#define TARGET_O_APPEND 010
|
||||
#define TARGET_O_CREAT 01000 /* not fcntl */
|
||||
#define TARGET_O_TRUNC 02000 /* not fcntl */
|
||||
#define TARGET_O_EXCL 04000 /* not fcntl */
|
||||
#define TARGET_O_NOCTTY 010000 /* not fcntl */
|
||||
#define TARGET_O_DSYNC 040000
|
||||
#define TARGET_O_LARGEFILE 0 /* not necessary, always 64-bit */
|
||||
#define TARGET_O_DIRECTORY 0100000 /* must be a directory */
|
||||
#define TARGET_O_NOFOLLOW 0200000 /* don't follow links */
|
||||
#define TARGET_O_DIRECT 02000000 /* direct disk access hint */
|
||||
#define TARGET_O_NOATIME 04000000
|
||||
#define TARGET_O_CLOEXEC 010000000
|
||||
#define TARGET___O_SYNC 020000000
|
||||
#define TARGET_O_PATH 040000000
|
||||
#elif defined(TARGET_HPPA)
|
||||
#define TARGET_O_NONBLOCK 000200004 /* HPUX has separate NDELAY & NONBLOCK */
|
||||
#define TARGET_O_APPEND 000000010
|
||||
#define TARGET_O_CREAT 000000400 /* not fcntl */
|
||||
#define TARGET_O_EXCL 000002000 /* not fcntl */
|
||||
#define TARGET_O_NOCTTY 000400000 /* not fcntl */
|
||||
#define TARGET_O_DSYNC 001000000
|
||||
#define TARGET_O_LARGEFILE 000004000
|
||||
#define TARGET_O_DIRECTORY 000010000 /* must be a directory */
|
||||
#define TARGET_O_NOFOLLOW 000000200 /* don't follow links */
|
||||
#define TARGET_O_NOATIME 004000000
|
||||
#define TARGET_O_CLOEXEC 010000000
|
||||
#define TARGET___O_SYNC 000100000
|
||||
#define TARGET_O_PATH 020000000
|
||||
#elif defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_AARCH64)
|
||||
#define TARGET_O_DIRECTORY 040000 /* must be a directory */
|
||||
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
|
||||
#define TARGET_O_DIRECT 0200000 /* direct disk access hint */
|
||||
#define TARGET_O_LARGEFILE 0400000
|
||||
#elif defined(TARGET_MIPS)
|
||||
#define TARGET_O_APPEND 0x0008
|
||||
#define TARGET_O_DSYNC 0x0010
|
||||
#define TARGET_O_NONBLOCK 0x0080
|
||||
#define TARGET_O_CREAT 0x0100 /* not fcntl */
|
||||
#define TARGET_O_TRUNC 0x0200 /* not fcntl */
|
||||
#define TARGET_O_EXCL 0x0400 /* not fcntl */
|
||||
#define TARGET_O_NOCTTY 0x0800 /* not fcntl */
|
||||
#define TARGET_FASYNC 0x1000 /* fcntl, for BSD compatibility */
|
||||
#define TARGET_O_LARGEFILE 0x2000 /* allow large file opens */
|
||||
#define TARGET___O_SYNC 0x4000
|
||||
#define TARGET_O_DIRECT 0x8000 /* direct disk access hint */
|
||||
#elif defined (TARGET_PPC)
|
||||
#define TARGET_O_DIRECTORY 040000 /* must be a directory */
|
||||
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
|
||||
#define TARGET_O_LARGEFILE 0200000
|
||||
#define TARGET_O_DIRECT 0400000 /* direct disk access hint */
|
||||
#elif defined (TARGET_SPARC)
|
||||
#define TARGET_O_APPEND 0x0008
|
||||
#define TARGET_FASYNC 0x0040 /* fcntl, for BSD compatibility */
|
||||
#define TARGET_O_CREAT 0x0200 /* not fcntl */
|
||||
#define TARGET_O_TRUNC 0x0400 /* not fcntl */
|
||||
#define TARGET_O_EXCL 0x0800 /* not fcntl */
|
||||
#define TARGET_O_DSYNC 0x2000
|
||||
#define TARGET_O_NONBLOCK 0x4000
|
||||
# ifdef TARGET_SPARC64
|
||||
# define TARGET_O_NDELAY 0x0004
|
||||
# else
|
||||
# define TARGET_O_NDELAY (0x0004 | TARGET_O_NONBLOCK)
|
||||
# endif
|
||||
#define TARGET_O_NOCTTY 0x8000 /* not fcntl */
|
||||
#define TARGET_O_LARGEFILE 0x40000
|
||||
#define TARGET_O_DIRECT 0x100000 /* direct disk access hint */
|
||||
#define TARGET_O_NOATIME 0x200000
|
||||
#define TARGET_O_CLOEXEC 0x400000
|
||||
#define TARGET___O_SYNC 0x800000
|
||||
#define TARGET_O_PATH 0x1000000
|
||||
#define TARGET___O_TMPFILE 0x2000000
|
||||
#endif
|
||||
|
||||
/* <asm-generic/fcntl.h> values follow. */
|
||||
#define TARGET_O_ACCMODE 0003
|
||||
#define TARGET_O_RDONLY 00
|
||||
#define TARGET_O_WRONLY 01
|
||||
#define TARGET_O_RDWR 02
|
||||
#ifndef TARGET_O_CREAT
|
||||
#define TARGET_O_CREAT 0100 /* not fcntl */
|
||||
#endif
|
||||
#ifndef TARGET_O_EXCL
|
||||
#define TARGET_O_EXCL 0200 /* not fcntl */
|
||||
#endif
|
||||
#ifndef TARGET_O_NOCTTY
|
||||
#define TARGET_O_NOCTTY 0400 /* not fcntl */
|
||||
#endif
|
||||
#ifndef TARGET_O_TRUNC
|
||||
#define TARGET_O_TRUNC 01000 /* not fcntl */
|
||||
#endif
|
||||
#ifndef TARGET_O_APPEND
|
||||
#define TARGET_O_APPEND 02000
|
||||
#endif
|
||||
#ifndef TARGET_O_NONBLOCK
|
||||
#define TARGET_O_NONBLOCK 04000
|
||||
#endif
|
||||
#ifndef TARGET_O_DSYNC
|
||||
#define TARGET_O_DSYNC 010000
|
||||
#endif
|
||||
#ifndef TARGET_FASYNC
|
||||
#define TARGET_FASYNC 020000 /* fcntl, for BSD compatibility */
|
||||
#endif
|
||||
#ifndef TARGET_O_DIRECT
|
||||
#define TARGET_O_DIRECT 040000 /* direct disk access hint */
|
||||
#endif
|
||||
#ifndef TARGET_O_LARGEFILE
|
||||
#define TARGET_O_LARGEFILE 0100000
|
||||
#endif
|
||||
#ifndef TARGET_O_DIRECTORY
|
||||
#define TARGET_O_DIRECTORY 0200000 /* must be a directory */
|
||||
#endif
|
||||
#ifndef TARGET_O_NOFOLLOW
|
||||
#define TARGET_O_NOFOLLOW 0400000 /* don't follow links */
|
||||
#endif
|
||||
#ifndef TARGET_O_NOATIME
|
||||
#define TARGET_O_NOATIME 01000000
|
||||
#endif
|
||||
#ifndef TARGET_O_CLOEXEC
|
||||
#define TARGET_O_CLOEXEC 02000000
|
||||
#endif
|
||||
#ifndef TARGET___O_SYNC
|
||||
#define TARGET___O_SYNC 04000000
|
||||
#endif
|
||||
#ifndef TARGET_O_PATH
|
||||
#define TARGET_O_PATH 010000000
|
||||
#endif
|
||||
#ifndef TARGET___O_TMPFILE
|
||||
#define TARGET___O_TMPFILE 020000000
|
||||
#endif
|
||||
#ifndef TARGET_O_TMPFILE
|
||||
#define TARGET_O_TMPFILE (TARGET___O_TMPFILE | TARGET_O_DIRECTORY)
|
||||
#endif
|
||||
#ifndef TARGET_O_NDELAY
|
||||
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
|
||||
#endif
|
||||
#ifndef TARGET_O_SYNC
|
||||
#define TARGET_O_SYNC (TARGET___O_SYNC | TARGET_O_DSYNC)
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_SPARC)
|
||||
#define TARGET_ARCH_FLOCK_PAD abi_short __unused;
|
||||
#define TARGET_ARCH_FLOCK64_PAD abi_short __unused;
|
||||
#elif defined(TARGET_MIPS)
|
||||
#define TARGET_ARCH_FLOCK_PAD abi_long pad[4];
|
||||
#define TARGET_ARCH_FLOCK64_PAD
|
||||
#else
|
||||
#define TARGET_ARCH_FLOCK_PAD
|
||||
#define TARGET_ARCH_FLOCK64_PAD
|
||||
#endif
|
||||
|
||||
struct target_flock {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
abi_long l_start;
|
||||
abi_long l_len;
|
||||
#if defined(TARGET_MIPS)
|
||||
abi_long l_sysid;
|
||||
#endif
|
||||
int l_pid;
|
||||
TARGET_ARCH_FLOCK_PAD
|
||||
};
|
||||
|
||||
struct target_flock64 {
|
||||
abi_short l_type;
|
||||
abi_short l_whence;
|
||||
abi_llong l_start;
|
||||
abi_llong l_len;
|
||||
abi_int l_pid;
|
||||
TARGET_ARCH_FLOCK64_PAD
|
||||
};
|
||||
|
||||
struct target_f_owner_ex {
|
||||
int type; /* Owner type of ID. */
|
||||
int pid; /* ID of owner. */
|
||||
};
|
||||
#include "target_fcntl.h"
|
||||
|
||||
/* soundcard defines */
|
||||
/* XXX: convert them all to arch independent entries */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -32,4 +32,8 @@ static inline void cpu_set_tls(CPUTLGState *env, target_ulong newtls)
|
|||
env->regs[TILEGX_R_TP] = newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUTLGState *state)
|
||||
{
|
||||
return state->regs[TILEGX_R_SP];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef TILEGX_TARGET_FCNTL_H
|
||||
#define TILEGX_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef TILEGX_TARGET_SIGNAL_H
|
||||
#define TILEGX_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -20,8 +18,6 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUTLGState *state)
|
||||
{
|
||||
return state->regs[TILEGX_R_SP];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#endif /* TILEGX_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef X86_64_TARGET_FCNTL_H
|
||||
#define X86_64_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef X86_64_TARGET_SIGNAL_H
|
||||
#define X86_64_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -21,8 +19,6 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUX86State *state)
|
||||
{
|
||||
return state->regs[R_ESP];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#endif /* X86_64_TARGET_SIGNAL_H */
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu.h"
|
||||
#include "target_signal.h"
|
||||
#include "signal-common.h"
|
||||
#include "linux-user/trace.h"
|
||||
|
||||
|
|
|
@ -19,4 +19,8 @@ static inline void cpu_set_tls(CPUXtensaState *env, target_ulong newtls)
|
|||
env->uregs[THREADPTR] = newtls;
|
||||
}
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUXtensaState *state)
|
||||
{
|
||||
return state->regs[1];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef XTENSA_TARGET_FCNTL_H
|
||||
#define XTENSA_TARGET_FCNTL_H
|
||||
#include "../generic/fcntl.h"
|
||||
#endif
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef XTENSA_TARGET_SIGNAL_H
|
||||
#define XTENSA_TARGET_SIGNAL_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
/* this struct defines a stack used during syscall handling */
|
||||
|
||||
typedef struct target_sigaltstack {
|
||||
|
@ -20,8 +18,6 @@ typedef struct target_sigaltstack {
|
|||
#define TARGET_MINSIGSTKSZ 2048
|
||||
#define TARGET_SIGSTKSZ 8192
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUXtensaState *state)
|
||||
{
|
||||
return state->regs[1];
|
||||
}
|
||||
#include "../generic/signal.h"
|
||||
|
||||
#endif
|
||||
|
|
|
@ -67,7 +67,9 @@ uint64_t helper_tick_get_count(CPUSPARCState *env, void *opaque, int mem_idx)
|
|||
|
||||
return cpu_tick_get_count(timer);
|
||||
#else
|
||||
return 0;
|
||||
/* In user-mode, QEMU_CLOCK_VIRTUAL doesn't exist.
|
||||
Just pass through the host cpu clock ticks. */
|
||||
return cpu_get_host_ticks();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue