Move get_sp_from_cpustate from cpu.h to target_signal.h.
Enable sigaltstack processing for more architectures. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3253 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
a04e134ad1
commit
198a74de4c
@ -21,4 +21,9 @@ typedef struct target_sigaltstack {
|
|||||||
#define TARGET_MINSIGSTKSZ 4096
|
#define TARGET_MINSIGSTKSZ 4096
|
||||||
#define TARGET_SIGSTKSZ 16384
|
#define TARGET_SIGSTKSZ 16384
|
||||||
|
|
||||||
|
static inline target_ulong get_sp_from_cpustate(CPUAlphaState *state)
|
||||||
|
{
|
||||||
|
return state->ir[IR_SP];
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* TARGET_SIGNAL_H */
|
#endif /* TARGET_SIGNAL_H */
|
||||||
|
@ -21,4 +21,9 @@ typedef struct target_sigaltstack {
|
|||||||
#define TARGET_MINSIGSTKSZ 2048
|
#define TARGET_MINSIGSTKSZ 2048
|
||||||
#define TARGET_SIGSTKSZ 8192
|
#define TARGET_SIGSTKSZ 8192
|
||||||
|
|
||||||
|
static inline target_ulong get_sp_from_cpustate(CPUARMState *state)
|
||||||
|
{
|
||||||
|
return state->regs[13];
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* TARGET_SIGNAL_H */
|
#endif /* TARGET_SIGNAL_H */
|
||||||
|
@ -21,4 +21,9 @@ typedef struct target_sigaltstack {
|
|||||||
#define TARGET_MINSIGSTKSZ 2048
|
#define TARGET_MINSIGSTKSZ 2048
|
||||||
#define TARGET_SIGSTKSZ 8192
|
#define TARGET_SIGSTKSZ 8192
|
||||||
|
|
||||||
|
static inline target_ulong get_sp_from_cpustate(CPUX86State *state)
|
||||||
|
{
|
||||||
|
return state->regs[R_ESP];
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* TARGET_SIGNAL_H */
|
#endif /* TARGET_SIGNAL_H */
|
||||||
|
@ -21,4 +21,9 @@ typedef struct target_sigaltstack {
|
|||||||
#define TARGET_MINSIGSTKSZ 2048
|
#define TARGET_MINSIGSTKSZ 2048
|
||||||
#define TARGET_SIGSTKSZ 8192
|
#define TARGET_SIGSTKSZ 8192
|
||||||
|
|
||||||
|
static inline target_ulong get_sp_from_cpustate(CPUMIPSState *state)
|
||||||
|
{
|
||||||
|
return state->gpr[29][state->current_tc];
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* TARGET_SIGNAL_H */
|
#endif /* TARGET_SIGNAL_H */
|
||||||
|
@ -21,4 +21,9 @@ typedef struct target_sigaltstack {
|
|||||||
#define TARGET_MINSIGSTKSZ 2048
|
#define TARGET_MINSIGSTKSZ 2048
|
||||||
#define TARGET_SIGSTKSZ 8192
|
#define TARGET_SIGSTKSZ 8192
|
||||||
|
|
||||||
|
static inline target_ulong get_sp_from_cpustate(CPUPPCState *state)
|
||||||
|
{
|
||||||
|
return state->gpr[1];
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* TARGET_SIGNAL_H */
|
#endif /* TARGET_SIGNAL_H */
|
||||||
|
@ -21,4 +21,16 @@ typedef struct target_sigaltstack {
|
|||||||
#define TARGET_MINSIGSTKSZ 4096
|
#define TARGET_MINSIGSTKSZ 4096
|
||||||
#define TARGET_SIGSTKSZ 16384
|
#define TARGET_SIGSTKSZ 16384
|
||||||
|
|
||||||
|
#ifndef UREG_I6
|
||||||
|
#define UREG_I6 6
|
||||||
|
#endif
|
||||||
|
#ifndef UREG_FP
|
||||||
|
#define UREG_FP UREG_I6
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static inline target_ulong get_sp_from_cpustate(CPUSPARCState *state)
|
||||||
|
{
|
||||||
|
return state->regwptr[UREG_FP];
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* TARGET_SIGNAL_H */
|
#endif /* TARGET_SIGNAL_H */
|
||||||
|
@ -4318,7 +4318,8 @@ target_long do_syscall(void *cpu_env, int num, target_long arg1,
|
|||||||
case TARGET_NR_capset:
|
case TARGET_NR_capset:
|
||||||
goto unimplemented;
|
goto unimplemented;
|
||||||
case TARGET_NR_sigaltstack:
|
case TARGET_NR_sigaltstack:
|
||||||
#if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC)
|
#if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_MIPS) || \
|
||||||
|
defined(TARGET_SPARC) || defined(TARGET_PPC) || defined(TARGET_ALPHA)
|
||||||
ret = do_sigaltstack((struct target_sigaltstack *)arg1,
|
ret = do_sigaltstack((struct target_sigaltstack *)arg1,
|
||||||
(struct target_sigaltstack *)arg2,
|
(struct target_sigaltstack *)arg2,
|
||||||
get_sp_from_cpustate((CPUState *)cpu_env));
|
get_sp_from_cpustate((CPUState *)cpu_env));
|
||||||
|
@ -397,9 +397,4 @@ void cpu_loop_exit (void);
|
|||||||
void pal_init (CPUState *env);
|
void pal_init (CPUState *env);
|
||||||
void call_pal (CPUState *env, int palcode);
|
void call_pal (CPUState *env, int palcode);
|
||||||
|
|
||||||
static inline target_ulong get_sp_from_cpustate(CPUAlphaState *state)
|
|
||||||
{
|
|
||||||
return state->ir[IR_SP];
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* !defined (__CPU_ALPHA_H__) */
|
#endif /* !defined (__CPU_ALPHA_H__) */
|
||||||
|
@ -300,11 +300,6 @@ void cpu_arm_set_cp_io(CPUARMState *env, int cpnum,
|
|||||||
#define cpu_gen_code cpu_arm_gen_code
|
#define cpu_gen_code cpu_arm_gen_code
|
||||||
#define cpu_signal_handler cpu_arm_signal_handler
|
#define cpu_signal_handler cpu_arm_signal_handler
|
||||||
|
|
||||||
static inline target_ulong get_sp_from_cpustate(CPUARMState *state)
|
|
||||||
{
|
|
||||||
return state->regs[13];
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "cpu-all.h"
|
#include "cpu-all.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -688,11 +688,6 @@ static inline int cpu_get_time_fast(void)
|
|||||||
#define cpu_gen_code cpu_x86_gen_code
|
#define cpu_gen_code cpu_x86_gen_code
|
||||||
#define cpu_signal_handler cpu_x86_signal_handler
|
#define cpu_signal_handler cpu_x86_signal_handler
|
||||||
|
|
||||||
static inline target_ulong get_sp_from_cpustate(CPUX86State *state)
|
|
||||||
{
|
|
||||||
return state->regs[R_ESP];
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "cpu-all.h"
|
#include "cpu-all.h"
|
||||||
|
|
||||||
#include "svm.h"
|
#include "svm.h"
|
||||||
|
@ -548,9 +548,4 @@ CPUMIPSState *cpu_mips_init(void);
|
|||||||
uint32_t cpu_mips_get_clock (void);
|
uint32_t cpu_mips_get_clock (void);
|
||||||
int cpu_mips_signal_handler(int host_signum, void *pinfo, void *puc);
|
int cpu_mips_signal_handler(int host_signum, void *pinfo, void *puc);
|
||||||
|
|
||||||
static inline target_ulong get_sp_from_cpustate(CPUMIPSState *state)
|
|
||||||
{
|
|
||||||
return state->gpr[29][state->current_tc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* !defined (__MIPS_CPU_H__) */
|
#endif /* !defined (__MIPS_CPU_H__) */
|
||||||
|
@ -1146,9 +1146,4 @@ enum {
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static inline target_ulong get_sp_from_cpustate(CPUPPCState *state)
|
|
||||||
{
|
|
||||||
return state->gpr[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* !defined (__CPU_PPC_H__) */
|
#endif /* !defined (__CPU_PPC_H__) */
|
||||||
|
@ -316,18 +316,6 @@ void cpu_check_irqs(CPUSPARCState *env);
|
|||||||
#define cpu_gen_code cpu_sparc_gen_code
|
#define cpu_gen_code cpu_sparc_gen_code
|
||||||
#define cpu_signal_handler cpu_sparc_signal_handler
|
#define cpu_signal_handler cpu_sparc_signal_handler
|
||||||
|
|
||||||
#ifndef UREG_I6
|
|
||||||
#define UREG_I6 6
|
|
||||||
#endif
|
|
||||||
#ifndef UREG_FP
|
|
||||||
#define UREG_FP UREG_I6
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static inline target_ulong get_sp_from_cpustate(CPUSPARCState *state)
|
|
||||||
{
|
|
||||||
return state->regwptr[UREG_FP];
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "cpu-all.h"
|
#include "cpu-all.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user