|
@@ -1612,16 +1612,16 @@ static abi_long do_pipe(CPUArchState *cpu_env, abi_ulong pipedes,
|
|
pipe syscall, but didn't replicate this into the pipe2 syscall. */
|
|
pipe syscall, but didn't replicate this into the pipe2 syscall. */
|
|
if (!is_pipe2) {
|
|
if (!is_pipe2) {
|
|
#if defined(TARGET_ALPHA)
|
|
#if defined(TARGET_ALPHA)
|
|
- ((CPUAlphaState *)cpu_env)->ir[IR_A4] = host_pipe[1];
|
|
|
|
|
|
+ cpu_env->ir[IR_A4] = host_pipe[1];
|
|
return host_pipe[0];
|
|
return host_pipe[0];
|
|
#elif defined(TARGET_MIPS)
|
|
#elif defined(TARGET_MIPS)
|
|
- ((CPUMIPSState*)cpu_env)->active_tc.gpr[3] = host_pipe[1];
|
|
|
|
|
|
+ cpu_env->active_tc.gpr[3] = host_pipe[1];
|
|
return host_pipe[0];
|
|
return host_pipe[0];
|
|
#elif defined(TARGET_SH4)
|
|
#elif defined(TARGET_SH4)
|
|
- ((CPUSH4State*)cpu_env)->gregs[1] = host_pipe[1];
|
|
|
|
|
|
+ cpu_env->gregs[1] = host_pipe[1];
|
|
return host_pipe[0];
|
|
return host_pipe[0];
|
|
#elif defined(TARGET_SPARC)
|
|
#elif defined(TARGET_SPARC)
|
|
- ((CPUSPARCState*)cpu_env)->regwptr[1] = host_pipe[1];
|
|
|
|
|
|
+ cpu_env->regwptr[1] = host_pipe[1];
|
|
return host_pipe[0];
|
|
return host_pipe[0];
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
@@ -7566,7 +7566,7 @@ static inline abi_long host_to_target_stat64(CPUArchState *cpu_env,
|
|
struct stat *host_st)
|
|
struct stat *host_st)
|
|
{
|
|
{
|
|
#if defined(TARGET_ARM) && defined(TARGET_ABI32)
|
|
#if defined(TARGET_ARM) && defined(TARGET_ABI32)
|
|
- if (((CPUARMState *)cpu_env)->eabi) {
|
|
|
|
|
|
+ if (cpu_env->eabi) {
|
|
struct target_eabi_stat64 *target_st;
|
|
struct target_eabi_stat64 *target_st;
|
|
|
|
|
|
if (!lock_user_struct(VERIFY_WRITE, target_st, target_addr, 0))
|
|
if (!lock_user_struct(VERIFY_WRITE, target_st, target_addr, 0))
|
|
@@ -7965,7 +7965,7 @@ int host_to_target_waitstatus(int status)
|
|
|
|
|
|
static int open_self_cmdline(CPUArchState *cpu_env, int fd)
|
|
static int open_self_cmdline(CPUArchState *cpu_env, int fd)
|
|
{
|
|
{
|
|
- CPUState *cpu = env_cpu((CPUArchState *)cpu_env);
|
|
|
|
|
|
+ CPUState *cpu = env_cpu(cpu_env);
|
|
struct linux_binprm *bprm = ((TaskState *)cpu->opaque)->bprm;
|
|
struct linux_binprm *bprm = ((TaskState *)cpu->opaque)->bprm;
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -7982,7 +7982,7 @@ static int open_self_cmdline(CPUArchState *cpu_env, int fd)
|
|
|
|
|
|
static int open_self_maps(CPUArchState *cpu_env, int fd)
|
|
static int open_self_maps(CPUArchState *cpu_env, int fd)
|
|
{
|
|
{
|
|
- CPUState *cpu = env_cpu((CPUArchState *)cpu_env);
|
|
|
|
|
|
+ CPUState *cpu = env_cpu(cpu_env);
|
|
TaskState *ts = cpu->opaque;
|
|
TaskState *ts = cpu->opaque;
|
|
GSList *map_info = read_self_maps();
|
|
GSList *map_info = read_self_maps();
|
|
GSList *s;
|
|
GSList *s;
|
|
@@ -8044,7 +8044,7 @@ static int open_self_maps(CPUArchState *cpu_env, int fd)
|
|
|
|
|
|
static int open_self_stat(CPUArchState *cpu_env, int fd)
|
|
static int open_self_stat(CPUArchState *cpu_env, int fd)
|
|
{
|
|
{
|
|
- CPUState *cpu = env_cpu((CPUArchState *)cpu_env);
|
|
|
|
|
|
+ CPUState *cpu = env_cpu(cpu_env);
|
|
TaskState *ts = cpu->opaque;
|
|
TaskState *ts = cpu->opaque;
|
|
g_autoptr(GString) buf = g_string_new(NULL);
|
|
g_autoptr(GString) buf = g_string_new(NULL);
|
|
int i;
|
|
int i;
|
|
@@ -8082,7 +8082,7 @@ static int open_self_stat(CPUArchState *cpu_env, int fd)
|
|
|
|
|
|
static int open_self_auxv(CPUArchState *cpu_env, int fd)
|
|
static int open_self_auxv(CPUArchState *cpu_env, int fd)
|
|
{
|
|
{
|
|
- CPUState *cpu = env_cpu((CPUArchState *)cpu_env);
|
|
|
|
|
|
+ CPUState *cpu = env_cpu(cpu_env);
|
|
TaskState *ts = cpu->opaque;
|
|
TaskState *ts = cpu->opaque;
|
|
abi_ulong auxv = ts->info->saved_auxv;
|
|
abi_ulong auxv = ts->info->saved_auxv;
|
|
abi_ulong len = ts->info->auxv_len;
|
|
abi_ulong len = ts->info->auxv_len;
|
|
@@ -8892,7 +8892,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
|
|
#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
|
|
/* Alpha specific */
|
|
/* Alpha specific */
|
|
case TARGET_NR_getxpid:
|
|
case TARGET_NR_getxpid:
|
|
- ((CPUAlphaState *)cpu_env)->ir[IR_A4] = getppid();
|
|
|
|
|
|
+ cpu_env->ir[IR_A4] = getppid();
|
|
return get_errno(getpid());
|
|
return get_errno(getpid());
|
|
#endif
|
|
#endif
|
|
#ifdef TARGET_NR_getpid
|
|
#ifdef TARGET_NR_getpid
|
|
@@ -9415,7 +9415,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
if (!is_error(ret)) {
|
|
if (!is_error(ret)) {
|
|
host_to_target_old_sigset(&mask, &oldset);
|
|
host_to_target_old_sigset(&mask, &oldset);
|
|
ret = mask;
|
|
ret = mask;
|
|
- ((CPUAlphaState *)cpu_env)->ir[IR_V0] = 0; /* force no error */
|
|
|
|
|
|
+ cpu_env->ir[IR_V0] = 0; /* force no error */
|
|
}
|
|
}
|
|
#else
|
|
#else
|
|
sigset_t set, oldset, *set_ptr;
|
|
sigset_t set, oldset, *set_ptr;
|
|
@@ -10035,7 +10035,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
}
|
|
}
|
|
#ifdef TARGET_ALPHA
|
|
#ifdef TARGET_ALPHA
|
|
/* Return value is the unbiased priority. Signal no error. */
|
|
/* Return value is the unbiased priority. Signal no error. */
|
|
- ((CPUAlphaState *)cpu_env)->ir[IR_V0] = 0;
|
|
|
|
|
|
+ cpu_env->ir[IR_V0] = 0;
|
|
#else
|
|
#else
|
|
/* Return value is a biased priority to avoid negative numbers. */
|
|
/* Return value is a biased priority to avoid negative numbers. */
|
|
ret = 20 - ret;
|
|
ret = 20 - ret;
|
|
@@ -11415,7 +11415,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
{
|
|
{
|
|
uid_t euid;
|
|
uid_t euid;
|
|
euid=geteuid();
|
|
euid=geteuid();
|
|
- ((CPUAlphaState *)cpu_env)->ir[IR_A4]=euid;
|
|
|
|
|
|
+ cpu_env->ir[IR_A4]=euid;
|
|
}
|
|
}
|
|
return get_errno(getuid());
|
|
return get_errno(getuid());
|
|
#endif
|
|
#endif
|
|
@@ -11425,7 +11425,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
{
|
|
{
|
|
uid_t egid;
|
|
uid_t egid;
|
|
egid=getegid();
|
|
egid=getegid();
|
|
- ((CPUAlphaState *)cpu_env)->ir[IR_A4]=egid;
|
|
|
|
|
|
+ cpu_env->ir[IR_A4]=egid;
|
|
}
|
|
}
|
|
return get_errno(getgid());
|
|
return get_errno(getgid());
|
|
#endif
|
|
#endif
|
|
@@ -11437,7 +11437,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
case TARGET_GSI_IEEE_FP_CONTROL:
|
|
case TARGET_GSI_IEEE_FP_CONTROL:
|
|
{
|
|
{
|
|
uint64_t fpcr = cpu_alpha_load_fpcr(cpu_env);
|
|
uint64_t fpcr = cpu_alpha_load_fpcr(cpu_env);
|
|
- uint64_t swcr = ((CPUAlphaState *)cpu_env)->swcr;
|
|
|
|
|
|
+ uint64_t swcr = cpu_env->swcr;
|
|
|
|
|
|
swcr &= ~SWCR_STATUS_MASK;
|
|
swcr &= ~SWCR_STATUS_MASK;
|
|
swcr |= (fpcr >> 35) & SWCR_STATUS_MASK;
|
|
swcr |= (fpcr >> 35) & SWCR_STATUS_MASK;
|
|
@@ -11479,8 +11479,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
* could be queried. Therefore, we store the status
|
|
* could be queried. Therefore, we store the status
|
|
* bits only in FPCR.
|
|
* bits only in FPCR.
|
|
*/
|
|
*/
|
|
- ((CPUAlphaState *)cpu_env)->swcr
|
|
|
|
- = swcr & (SWCR_TRAP_ENABLE_MASK | SWCR_MAP_MASK);
|
|
|
|
|
|
+ cpu_env->swcr = swcr & (SWCR_TRAP_ENABLE_MASK | SWCR_MAP_MASK);
|
|
|
|
|
|
fpcr = cpu_alpha_load_fpcr(cpu_env);
|
|
fpcr = cpu_alpha_load_fpcr(cpu_env);
|
|
fpcr &= ((uint64_t)FPCR_DYN_MASK << 32);
|
|
fpcr &= ((uint64_t)FPCR_DYN_MASK << 32);
|
|
@@ -11504,7 +11503,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
fex = alpha_ieee_fpcr_to_swcr(fpcr);
|
|
fex = alpha_ieee_fpcr_to_swcr(fpcr);
|
|
fex = exc & ~fex;
|
|
fex = exc & ~fex;
|
|
fex >>= SWCR_STATUS_TO_EXCSUM_SHIFT;
|
|
fex >>= SWCR_STATUS_TO_EXCSUM_SHIFT;
|
|
- fex &= ((CPUArchState *)cpu_env)->swcr;
|
|
|
|
|
|
+ fex &= (cpu_env)->swcr;
|
|
|
|
|
|
/* Update the hardware fpcr. */
|
|
/* Update the hardware fpcr. */
|
|
fpcr |= alpha_ieee_swcr_to_fpcr(exc);
|
|
fpcr |= alpha_ieee_swcr_to_fpcr(exc);
|
|
@@ -11536,9 +11535,8 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
info.si_signo = SIGFPE;
|
|
info.si_signo = SIGFPE;
|
|
info.si_errno = 0;
|
|
info.si_errno = 0;
|
|
info.si_code = si_code;
|
|
info.si_code = si_code;
|
|
- info._sifields._sigfault._addr
|
|
|
|
- = ((CPUArchState *)cpu_env)->pc;
|
|
|
|
- queue_signal((CPUArchState *)cpu_env, info.si_signo,
|
|
|
|
|
|
+ info._sifields._sigfault._addr = (cpu_env)->pc;
|
|
|
|
+ queue_signal(cpu_env, info.si_signo,
|
|
QEMU_SI_FAULT, &info);
|
|
QEMU_SI_FAULT, &info);
|
|
}
|
|
}
|
|
ret = 0;
|
|
ret = 0;
|
|
@@ -11824,7 +11822,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
to_flock64_fn *copyto = copy_to_user_flock64;
|
|
to_flock64_fn *copyto = copy_to_user_flock64;
|
|
|
|
|
|
#ifdef TARGET_ARM
|
|
#ifdef TARGET_ARM
|
|
- if (!((CPUARMState *)cpu_env)->eabi) {
|
|
|
|
|
|
+ if (!cpu_env->eabi) {
|
|
copyfrom = copy_from_user_oabi_flock64;
|
|
copyfrom = copy_from_user_oabi_flock64;
|
|
copyto = copy_to_user_oabi_flock64;
|
|
copyto = copy_to_user_oabi_flock64;
|
|
}
|
|
}
|
|
@@ -12052,13 +12050,13 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
#ifdef TARGET_NR_set_thread_area
|
|
#ifdef TARGET_NR_set_thread_area
|
|
case TARGET_NR_set_thread_area:
|
|
case TARGET_NR_set_thread_area:
|
|
#if defined(TARGET_MIPS)
|
|
#if defined(TARGET_MIPS)
|
|
- ((CPUMIPSState *) cpu_env)->active_tc.CP0_UserLocal = arg1;
|
|
|
|
|
|
+ cpu_env->active_tc.CP0_UserLocal = arg1;
|
|
return 0;
|
|
return 0;
|
|
#elif defined(TARGET_CRIS)
|
|
#elif defined(TARGET_CRIS)
|
|
if (arg1 & 0xff)
|
|
if (arg1 & 0xff)
|
|
ret = -TARGET_EINVAL;
|
|
ret = -TARGET_EINVAL;
|
|
else {
|
|
else {
|
|
- ((CPUCRISState *) cpu_env)->pregs[PR_PID] = arg1;
|
|
|
|
|
|
+ cpu_env->pregs[PR_PID] = arg1;
|
|
ret = 0;
|
|
ret = 0;
|
|
}
|
|
}
|
|
return ret;
|
|
return ret;
|
|
@@ -12785,8 +12783,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|
info.si_errno = 0;
|
|
info.si_errno = 0;
|
|
info.si_code = TARGET_SEGV_MAPERR;
|
|
info.si_code = TARGET_SEGV_MAPERR;
|
|
info._sifields._sigfault._addr = arg6;
|
|
info._sifields._sigfault._addr = arg6;
|
|
- queue_signal((CPUArchState *)cpu_env, info.si_signo,
|
|
|
|
- QEMU_SI_FAULT, &info);
|
|
|
|
|
|
+ queue_signal(cpu_env, info.si_signo, QEMU_SI_FAULT, &info);
|
|
ret = 0xdeadbeef;
|
|
ret = 0xdeadbeef;
|
|
|
|
|
|
}
|
|
}
|