예제 #1
0
static void
linux_set_syscall_retval(struct thread *td, int error)
{
	struct trapframe *frame = td->td_frame;

	/*
	 * On Linux only %rcx and %r11 values are not preserved across
	 * the syscall.
	 * So, do not clobber %rdx and %r10
	 */
	td->td_retval[1] = frame->tf_rdx;
	frame->tf_r10 = frame->tf_rcx;

	cpu_set_syscall_retval(td, error);

	 /* Restore all registers. */
	set_pcb_flags(td->td_pcb, PCB_FULL_IRET);
}
예제 #2
0
void
ia32_set_syscall_retval(struct thread *td, int error)
{

	cpu_set_syscall_retval(td, error);
}