linux-user: Rename TARGET_ERESTARTSYS to QEMU_ERESTARTSYS
This value is fully internal to qemu, and so is not a TARGET define. We use this as an extra marker for both host and target errno. Reviewed-by: Warner Losh <imp@bsdimp.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
0a7e01904d
commit
af254a2792
@ -99,7 +99,7 @@ void cpu_loop(CPUARMState *env)
|
|||||||
env->xregs[4],
|
env->xregs[4],
|
||||||
env->xregs[5],
|
env->xregs[5],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->pc -= 4;
|
env->pc -= 4;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
env->xregs[0] = ret;
|
env->xregs[0] = ret;
|
||||||
|
@ -98,7 +98,7 @@ void cpu_loop(CPUAlphaState *env)
|
|||||||
env->ir[IR_A2], env->ir[IR_A3],
|
env->ir[IR_A2], env->ir[IR_A3],
|
||||||
env->ir[IR_A4], env->ir[IR_A5],
|
env->ir[IR_A4], env->ir[IR_A5],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (sysret == -TARGET_ERESTARTSYS) {
|
if (sysret == -QEMU_ERESTARTSYS) {
|
||||||
env->pc -= 4;
|
env->pc -= 4;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -407,7 +407,7 @@ void cpu_loop(CPUARMState *env)
|
|||||||
env->regs[4],
|
env->regs[4],
|
||||||
env->regs[5],
|
env->regs[5],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->regs[15] -= env->thumb ? 2 : 4;
|
env->regs[15] -= env->thumb ? 2 : 4;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
env->regs[0] = ret;
|
env->regs[0] = ret;
|
||||||
|
@ -50,7 +50,7 @@ void cpu_loop(CPUCRISState *env)
|
|||||||
env->pregs[7],
|
env->pregs[7],
|
||||||
env->pregs[11],
|
env->pregs[11],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->pc -= 2;
|
env->pc -= 2;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
env->regs[10] = ret;
|
env->regs[10] = ret;
|
||||||
|
@ -153,7 +153,7 @@
|
|||||||
* after handling any pending signals. They match with the ones the guest
|
* after handling any pending signals. They match with the ones the guest
|
||||||
* kernel uses for the same purpose.
|
* kernel uses for the same purpose.
|
||||||
*/
|
*/
|
||||||
#define TARGET_ERESTARTSYS 512 /* Restart system call (if SA_RESTART) */
|
#define QEMU_ERESTARTSYS 512 /* Restart system call (if SA_RESTART) */
|
||||||
|
|
||||||
/* QEMU internal, not visible to the guest. This is returned by the
|
/* QEMU internal, not visible to the guest. This is returned by the
|
||||||
* do_sigreturn() code after a successful sigreturn syscall, to indicate
|
* do_sigreturn() code after a successful sigreturn syscall, to indicate
|
||||||
|
@ -55,7 +55,7 @@ void cpu_loop(CPUHexagonState *env)
|
|||||||
env->gpr[4],
|
env->gpr[4],
|
||||||
env->gpr[5],
|
env->gpr[5],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->gpr[HEX_REG_PC] -= 4;
|
env->gpr[HEX_REG_PC] -= 4;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
env->gpr[0] = ret;
|
env->gpr[0] = ret;
|
||||||
|
@ -70,8 +70,7 @@ safe_syscall_end:
|
|||||||
b safe_syscall_set_errno_tail
|
b safe_syscall_set_errno_tail
|
||||||
|
|
||||||
/* code path when we didn't execute the syscall */
|
/* code path when we didn't execute the syscall */
|
||||||
2: mov w0, #TARGET_ERESTARTSYS
|
2: mov w0, #QEMU_ERESTARTSYS
|
||||||
b safe_syscall_set_errno_tail
|
b safe_syscall_set_errno_tail
|
||||||
|
|
||||||
.cfi_endproc
|
.cfi_endproc
|
||||||
.size safe_syscall_base, .-safe_syscall_base
|
.size safe_syscall_base, .-safe_syscall_base
|
||||||
|
@ -81,7 +81,7 @@ safe_syscall_end:
|
|||||||
pop { r4, r5, r6, r7, r8, pc }
|
pop { r4, r5, r6, r7, r8, pc }
|
||||||
|
|
||||||
/* code path when we didn't execute the syscall */
|
/* code path when we didn't execute the syscall */
|
||||||
2: mov r0, #TARGET_ERESTARTSYS
|
2: mov r0, #QEMU_ERESTARTSYS
|
||||||
|
|
||||||
/* code path setting errno */
|
/* code path setting errno */
|
||||||
1: pop { r4, r5, r6, r7, r8, lr }
|
1: pop { r4, r5, r6, r7, r8, lr }
|
||||||
|
@ -94,7 +94,7 @@ safe_syscall_end:
|
|||||||
jmp 1f
|
jmp 1f
|
||||||
|
|
||||||
/* code path when we didn't execute the syscall */
|
/* code path when we didn't execute the syscall */
|
||||||
2: mov $TARGET_ERESTARTSYS, %eax
|
2: mov $QEMU_ERESTARTSYS, %eax
|
||||||
|
|
||||||
/* code path setting errno */
|
/* code path setting errno */
|
||||||
1: pop %ebx
|
1: pop %ebx
|
||||||
|
@ -127,7 +127,7 @@ safe_syscall_end:
|
|||||||
PTR_ADDIU sp, sp, FRAME
|
PTR_ADDIU sp, sp, FRAME
|
||||||
.cfi_adjust_cfa_offset -FRAME
|
.cfi_adjust_cfa_offset -FRAME
|
||||||
.cfi_restore s0
|
.cfi_restore s0
|
||||||
li v0, TARGET_ERESTARTSYS
|
li v0, QEMU_ERESTARTSYS
|
||||||
|
|
||||||
/* code path setting errno */
|
/* code path setting errno */
|
||||||
/*
|
/*
|
||||||
|
@ -78,7 +78,7 @@ safe_syscall_end:
|
|||||||
|
|
||||||
/* code path when we didn't execute the syscall */
|
/* code path when we didn't execute the syscall */
|
||||||
2: ld 14, 16(1) /* restore r14 */
|
2: ld 14, 16(1) /* restore r14 */
|
||||||
addi 3, 0, TARGET_ERESTARTSYS
|
addi 3, 0, QEMU_ERESTARTSYS
|
||||||
|
|
||||||
/* code path setting errno */
|
/* code path setting errno */
|
||||||
1: b safe_syscall_set_errno_tail
|
1: b safe_syscall_set_errno_tail
|
||||||
|
@ -72,7 +72,7 @@ safe_syscall_end:
|
|||||||
j safe_syscall_set_errno_tail
|
j safe_syscall_set_errno_tail
|
||||||
|
|
||||||
/* code path when we didn't execute the syscall */
|
/* code path when we didn't execute the syscall */
|
||||||
2: li a0, TARGET_ERESTARTSYS
|
2: li a0, QEMU_ERESTARTSYS
|
||||||
j safe_syscall_set_errno_tail
|
j safe_syscall_set_errno_tail
|
||||||
|
|
||||||
.cfi_endproc
|
.cfi_endproc
|
||||||
|
@ -91,7 +91,7 @@ safe_syscall_end:
|
|||||||
2: lg %r15,0(%r15) /* load back chain */
|
2: lg %r15,0(%r15) /* load back chain */
|
||||||
.cfi_adjust_cfa_offset -160
|
.cfi_adjust_cfa_offset -160
|
||||||
lmg %r6,%r15,48(%r15) /* load saved registers */
|
lmg %r6,%r15,48(%r15) /* load saved registers */
|
||||||
lghi %r2, TARGET_ERESTARTSYS
|
lghi %r2, QEMU_ERESTARTSYS
|
||||||
jg safe_syscall_set_errno_tail
|
jg safe_syscall_set_errno_tail
|
||||||
|
|
||||||
.cfi_endproc
|
.cfi_endproc
|
||||||
|
@ -78,7 +78,7 @@ safe_syscall_end:
|
|||||||
nop
|
nop
|
||||||
|
|
||||||
/* code path when we didn't execute the syscall */
|
/* code path when we didn't execute the syscall */
|
||||||
2: set TARGET_ERESTARTSYS, %o0
|
2: set QEMU_ERESTARTSYS, %o0
|
||||||
|
|
||||||
/* code path setting errno */
|
/* code path setting errno */
|
||||||
1: mov %o7, %g1
|
1: mov %o7, %g1
|
||||||
|
@ -82,7 +82,7 @@ safe_syscall_end:
|
|||||||
jmp 1f
|
jmp 1f
|
||||||
|
|
||||||
/* code path when we didn't execute the syscall */
|
/* code path when we didn't execute the syscall */
|
||||||
2: mov $TARGET_ERESTARTSYS, %eax
|
2: mov $QEMU_ERESTARTSYS, %eax
|
||||||
|
|
||||||
/* code path setting errno */
|
/* code path setting errno */
|
||||||
1: pop %rbp
|
1: pop %rbp
|
||||||
|
@ -133,7 +133,7 @@ void cpu_loop(CPUHPPAState *env)
|
|||||||
env->iaoq_f = env->gr[31];
|
env->iaoq_f = env->gr[31];
|
||||||
env->iaoq_b = env->gr[31] + 4;
|
env->iaoq_b = env->gr[31] + 4;
|
||||||
break;
|
break;
|
||||||
case -TARGET_ERESTARTSYS:
|
case -QEMU_ERESTARTSYS:
|
||||||
case -TARGET_QEMU_ESIGRETURN:
|
case -TARGET_QEMU_ESIGRETURN:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -180,7 +180,7 @@ static void emulate_vsyscall(CPUX86State *env)
|
|||||||
ret = do_syscall(env, syscall, env->regs[R_EDI], env->regs[R_ESI],
|
ret = do_syscall(env, syscall, env->regs[R_EDI], env->regs[R_ESI],
|
||||||
env->regs[R_EDX], env->regs[10], env->regs[8],
|
env->regs[R_EDX], env->regs[10], env->regs[8],
|
||||||
env->regs[9], 0, 0);
|
env->regs[9], 0, 0);
|
||||||
g_assert(ret != -TARGET_ERESTARTSYS);
|
g_assert(ret != -QEMU_ERESTARTSYS);
|
||||||
g_assert(ret != -TARGET_QEMU_ESIGRETURN);
|
g_assert(ret != -TARGET_QEMU_ESIGRETURN);
|
||||||
if (ret == -TARGET_EFAULT) {
|
if (ret == -TARGET_EFAULT) {
|
||||||
goto sigsegv;
|
goto sigsegv;
|
||||||
@ -223,7 +223,7 @@ void cpu_loop(CPUX86State *env)
|
|||||||
env->regs[R_EDI],
|
env->regs[R_EDI],
|
||||||
env->regs[R_EBP],
|
env->regs[R_EBP],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->eip -= 2;
|
env->eip -= 2;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
env->regs[R_EAX] = ret;
|
env->regs[R_EAX] = ret;
|
||||||
@ -241,7 +241,7 @@ void cpu_loop(CPUX86State *env)
|
|||||||
env->regs[8],
|
env->regs[8],
|
||||||
env->regs[9],
|
env->regs[9],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->eip -= 2;
|
env->eip -= 2;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
env->regs[R_EAX] = ret;
|
env->regs[R_EAX] = ret;
|
||||||
|
@ -80,7 +80,7 @@ void cpu_loop(CPUM68KState *env)
|
|||||||
env->dregs[5],
|
env->dregs[5],
|
||||||
env->aregs[0],
|
env->aregs[0],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->pc -= 2;
|
env->pc -= 2;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
env->dregs[0] = ret;
|
env->dregs[0] = ret;
|
||||||
|
@ -53,7 +53,7 @@ void cpu_loop(CPUMBState *env)
|
|||||||
env->regs[9],
|
env->regs[9],
|
||||||
env->regs[10],
|
env->regs[10],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
/* Wind back to before the syscall. */
|
/* Wind back to before the syscall. */
|
||||||
env->pc -= 4;
|
env->pc -= 4;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
|
@ -141,7 +141,7 @@ done_syscall:
|
|||||||
env->active_tc.gpr[8], env->active_tc.gpr[9],
|
env->active_tc.gpr[8], env->active_tc.gpr[9],
|
||||||
env->active_tc.gpr[10], env->active_tc.gpr[11]);
|
env->active_tc.gpr[10], env->active_tc.gpr[11]);
|
||||||
# endif /* O32 */
|
# endif /* O32 */
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->active_tc.PC -= 4;
|
env->active_tc.PC -= 4;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ void cpu_loop(CPUOpenRISCState *env)
|
|||||||
cpu_get_gpr(env, 6),
|
cpu_get_gpr(env, 6),
|
||||||
cpu_get_gpr(env, 7),
|
cpu_get_gpr(env, 7),
|
||||||
cpu_get_gpr(env, 8), 0, 0);
|
cpu_get_gpr(env, 8), 0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->pc -= 4;
|
env->pc -= 4;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
cpu_set_gpr(env, 11, ret);
|
cpu_set_gpr(env, 11, ret);
|
||||||
|
@ -428,7 +428,7 @@ void cpu_loop(CPUPPCState *env)
|
|||||||
ret = do_syscall(env, env->gpr[0], env->gpr[3], env->gpr[4],
|
ret = do_syscall(env, env->gpr[0], env->gpr[3], env->gpr[4],
|
||||||
env->gpr[5], env->gpr[6], env->gpr[7],
|
env->gpr[5], env->gpr[6], env->gpr[7],
|
||||||
env->gpr[8], 0, 0);
|
env->gpr[8], 0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->nip -= 4;
|
env->nip -= 4;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ void cpu_loop(CPURISCVState *env)
|
|||||||
env->gpr[xA5],
|
env->gpr[xA5],
|
||||||
0, 0);
|
0, 0);
|
||||||
}
|
}
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->pc -= 4;
|
env->pc -= 4;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
env->gpr[xA0] = ret;
|
env->gpr[xA0] = ret;
|
||||||
|
@ -83,7 +83,7 @@ void cpu_loop(CPUS390XState *env)
|
|||||||
ret = do_syscall(env, n, env->regs[2], env->regs[3],
|
ret = do_syscall(env, n, env->regs[2], env->regs[3],
|
||||||
env->regs[4], env->regs[5],
|
env->regs[4], env->regs[5],
|
||||||
env->regs[6], env->regs[7], 0, 0);
|
env->regs[6], env->regs[7], 0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->psw.addr -= env->int_svc_ilen;
|
env->psw.addr -= env->int_svc_ilen;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
env->regs[2] = ret;
|
env->regs[2] = ret;
|
||||||
|
@ -25,10 +25,10 @@
|
|||||||
*
|
*
|
||||||
* Call a system call if guest signal not pending.
|
* Call a system call if guest signal not pending.
|
||||||
* This has the same API as the libc syscall() function, except that it
|
* This has the same API as the libc syscall() function, except that it
|
||||||
* may return -1 with errno == TARGET_ERESTARTSYS if a signal was pending.
|
* may return -1 with errno == QEMU_ERESTARTSYS if a signal was pending.
|
||||||
*
|
*
|
||||||
* Returns: the system call result, or -1 with an error code in errno
|
* Returns: the system call result, or -1 with an error code in errno
|
||||||
* (Errnos are host errnos; we rely on TARGET_ERESTARTSYS not clashing
|
* (Errnos are host errnos; we rely on QEMU_ERESTARTSYS not clashing
|
||||||
* with any of the host errno values.)
|
* with any of the host errno values.)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -81,7 +81,7 @@
|
|||||||
* which are only technically blocking (ie which we know in practice won't
|
* which are only technically blocking (ie which we know in practice won't
|
||||||
* stay in the host kernel indefinitely) it's OK to use libc if necessary.
|
* stay in the host kernel indefinitely) it's OK to use libc if necessary.
|
||||||
* You must be able to cope with backing out correctly if some safe_syscall
|
* You must be able to cope with backing out correctly if some safe_syscall
|
||||||
* you make in the implementation returns either -TARGET_ERESTARTSYS or
|
* you make in the implementation returns either -QEMU_ERESTARTSYS or
|
||||||
* EINTR though.)
|
* EINTR though.)
|
||||||
*
|
*
|
||||||
* block_signals() cannot be used for interruptible syscalls.
|
* block_signals() cannot be used for interruptible syscalls.
|
||||||
@ -94,7 +94,7 @@
|
|||||||
* handler checks the interrupted host PC against the addresse of that
|
* handler checks the interrupted host PC against the addresse of that
|
||||||
* known section. If the PC is before or at the address of the syscall
|
* known section. If the PC is before or at the address of the syscall
|
||||||
* instruction then we change the PC to point at a "return
|
* instruction then we change the PC to point at a "return
|
||||||
* -TARGET_ERESTARTSYS" code path instead, and then exit the signal handler
|
* -QEMU_ERESTARTSYS" code path instead, and then exit the signal handler
|
||||||
* (causing the safe_syscall() call to immediately return that value).
|
* (causing the safe_syscall() call to immediately return that value).
|
||||||
* Then in the main.c loop if we see this magic return value we adjust
|
* Then in the main.c loop if we see this magic return value we adjust
|
||||||
* the guest PC to wind it back to before the system call, and invoke
|
* the guest PC to wind it back to before the system call, and invoke
|
||||||
|
@ -50,7 +50,7 @@ void cpu_loop(CPUSH4State *env)
|
|||||||
env->gregs[0],
|
env->gregs[0],
|
||||||
env->gregs[1],
|
env->gregs[1],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS) {
|
if (ret == -QEMU_ERESTARTSYS) {
|
||||||
env->pc -= 2;
|
env->pc -= 2;
|
||||||
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
} else if (ret != -TARGET_QEMU_ESIGRETURN) {
|
||||||
env->gregs[0] = ret;
|
env->gregs[0] = ret;
|
||||||
|
@ -76,7 +76,7 @@ abi_long do_swapcontext(CPUArchState *env, abi_ulong uold_ctx,
|
|||||||
* Block all signals, and arrange that the signal mask is returned to
|
* Block all signals, and arrange that the signal mask is returned to
|
||||||
* its correct value for the guest before we resume execution of guest code.
|
* its correct value for the guest before we resume execution of guest code.
|
||||||
* If this function returns non-zero, then the caller should immediately
|
* If this function returns non-zero, then the caller should immediately
|
||||||
* return -TARGET_ERESTARTSYS to the main loop, which will take the pending
|
* return -QEMU_ERESTARTSYS to the main loop, which will take the pending
|
||||||
* signal and restart execution of the syscall.
|
* signal and restart execution of the syscall.
|
||||||
* If block_signals() returns zero, then the caller can continue with
|
* If block_signals() returns zero, then the caller can continue with
|
||||||
* emulation of the system call knowing that no signals can be taken
|
* emulation of the system call knowing that no signals can be taken
|
||||||
|
@ -213,7 +213,7 @@ int block_signals(void)
|
|||||||
|
|
||||||
/* Wrapper for sigprocmask function
|
/* Wrapper for sigprocmask function
|
||||||
* Emulates a sigprocmask in a safe way for the guest. Note that set and oldset
|
* Emulates a sigprocmask in a safe way for the guest. Note that set and oldset
|
||||||
* are host signal set, not guest ones. Returns -TARGET_ERESTARTSYS if
|
* are host signal set, not guest ones. Returns -QEMU_ERESTARTSYS if
|
||||||
* a signal was already pending and the syscall must be restarted, or
|
* a signal was already pending and the syscall must be restarted, or
|
||||||
* 0 on success.
|
* 0 on success.
|
||||||
* If set is NULL, this is guaranteed not to fail.
|
* If set is NULL, this is guaranteed not to fail.
|
||||||
@ -230,7 +230,7 @@ int do_sigprocmask(int how, const sigset_t *set, sigset_t *oldset)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (block_signals()) {
|
if (block_signals()) {
|
||||||
return -TARGET_ERESTARTSYS;
|
return -QEMU_ERESTARTSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (how) {
|
switch (how) {
|
||||||
@ -985,7 +985,7 @@ int do_sigaction(int sig, const struct target_sigaction *act,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (block_signals()) {
|
if (block_signals()) {
|
||||||
return -TARGET_ERESTARTSYS;
|
return -QEMU_ERESTARTSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
k = &sigact_table[sig - 1];
|
k = &sigact_table[sig - 1];
|
||||||
|
@ -181,7 +181,7 @@ void cpu_loop (CPUSPARCState *env)
|
|||||||
env->regwptr[2], env->regwptr[3],
|
env->regwptr[2], env->regwptr[3],
|
||||||
env->regwptr[4], env->regwptr[5],
|
env->regwptr[4], env->regwptr[5],
|
||||||
0, 0);
|
0, 0);
|
||||||
if (ret == -TARGET_ERESTARTSYS || ret == -TARGET_QEMU_ESIGRETURN) {
|
if (ret == -QEMU_ERESTARTSYS || ret == -TARGET_QEMU_ESIGRETURN) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((abi_ulong)ret >= (abi_ulong)(-515)) {
|
if ((abi_ulong)ret >= (abi_ulong)(-515)) {
|
||||||
|
@ -547,7 +547,7 @@ static inline abi_long get_errno(abi_long ret)
|
|||||||
|
|
||||||
const char *target_strerror(int err)
|
const char *target_strerror(int err)
|
||||||
{
|
{
|
||||||
if (err == TARGET_ERESTARTSYS) {
|
if (err == QEMU_ERESTARTSYS) {
|
||||||
return "To be restarted";
|
return "To be restarted";
|
||||||
}
|
}
|
||||||
if (err == TARGET_QEMU_ESIGRETURN) {
|
if (err == TARGET_QEMU_ESIGRETURN) {
|
||||||
@ -6458,7 +6458,7 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (block_signals()) {
|
if (block_signals()) {
|
||||||
return -TARGET_ERESTARTSYS;
|
return -QEMU_ERESTARTSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
fork_start();
|
fork_start();
|
||||||
@ -8328,7 +8328,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
|||||||
Do thread termination if we have more then one thread. */
|
Do thread termination if we have more then one thread. */
|
||||||
|
|
||||||
if (block_signals()) {
|
if (block_signals()) {
|
||||||
return -TARGET_ERESTARTSYS;
|
return -QEMU_ERESTARTSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_mutex_lock(&clone_lock);
|
pthread_mutex_lock(&clone_lock);
|
||||||
@ -9317,7 +9317,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
|||||||
#endif
|
#endif
|
||||||
ret = get_errno(safe_rt_sigsuspend(&ts->sigsuspend_mask,
|
ret = get_errno(safe_rt_sigsuspend(&ts->sigsuspend_mask,
|
||||||
SIGSET_T_SIZE));
|
SIGSET_T_SIZE));
|
||||||
if (ret != -TARGET_ERESTARTSYS) {
|
if (ret != -QEMU_ERESTARTSYS) {
|
||||||
ts->in_sigsuspend = 1;
|
ts->in_sigsuspend = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -9336,7 +9336,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
|||||||
unlock_user(p, arg1, 0);
|
unlock_user(p, arg1, 0);
|
||||||
ret = get_errno(safe_rt_sigsuspend(&ts->sigsuspend_mask,
|
ret = get_errno(safe_rt_sigsuspend(&ts->sigsuspend_mask,
|
||||||
SIGSET_T_SIZE));
|
SIGSET_T_SIZE));
|
||||||
if (ret != -TARGET_ERESTARTSYS) {
|
if (ret != -QEMU_ERESTARTSYS) {
|
||||||
ts->in_sigsuspend = 1;
|
ts->in_sigsuspend = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -9452,13 +9452,13 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
|||||||
#ifdef TARGET_NR_sigreturn
|
#ifdef TARGET_NR_sigreturn
|
||||||
case TARGET_NR_sigreturn:
|
case TARGET_NR_sigreturn:
|
||||||
if (block_signals()) {
|
if (block_signals()) {
|
||||||
return -TARGET_ERESTARTSYS;
|
return -QEMU_ERESTARTSYS;
|
||||||
}
|
}
|
||||||
return do_sigreturn(cpu_env);
|
return do_sigreturn(cpu_env);
|
||||||
#endif
|
#endif
|
||||||
case TARGET_NR_rt_sigreturn:
|
case TARGET_NR_rt_sigreturn:
|
||||||
if (block_signals()) {
|
if (block_signals()) {
|
||||||
return -TARGET_ERESTARTSYS;
|
return -QEMU_ERESTARTSYS;
|
||||||
}
|
}
|
||||||
return do_rt_sigreturn(cpu_env);
|
return do_rt_sigreturn(cpu_env);
|
||||||
case TARGET_NR_sethostname:
|
case TARGET_NR_sethostname:
|
||||||
@ -13145,7 +13145,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||||||
static bool flag;
|
static bool flag;
|
||||||
flag = !flag;
|
flag = !flag;
|
||||||
if (flag) {
|
if (flag) {
|
||||||
return -TARGET_ERESTARTSYS;
|
return -QEMU_ERESTARTSYS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -184,7 +184,7 @@ void cpu_loop(CPUXtensaState *env)
|
|||||||
env->regs[2] = ret;
|
env->regs[2] = ret;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case -TARGET_ERESTARTSYS:
|
case -QEMU_ERESTARTSYS:
|
||||||
env->pc -= 3;
|
env->pc -= 3;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user