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:
Peter Maydell 2018-06-05 10:38:33 +01:00
commit 41feb5b955
86 changed files with 914 additions and 723 deletions

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

151
linux-user/generic/fcntl.h Normal file
View File

@ -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

View File

@ -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

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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 */

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1 @@
#include "../mips/target_fcntl.h"

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -23,7 +23,6 @@
#include "qemu.h"
#include "qemu-common.h"
#include "target_signal.h"
#include "trace.h"
#include "signal-common.h"

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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"

View File

@ -0,0 +1 @@
#include "../sparc/target_fcntl.h"

View File

@ -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"

View File

@ -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,

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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

View File

@ -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 */

View File

@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
#include "target_signal.h"
#include "signal-common.h"
#include "linux-user/trace.h"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
}