Name

syscall_set_return_value — change the return value of a traced system call

Synopsis

void syscall_set_return_value (struct task_struct * task,
 struct pt_regs * regs,
 int error,
 long val);
 

Arguments

task

task of interest, must be blocked

regs

task_pt_regs of task

error

negative error code, or zero to indicate success

val

user return value if error is zero

Description

This changes the results of the system call that user mode will see. If error is zero, the user sees a successful system call with a return value of val. If error is nonzero, it's a negated errno code; the user sees a failed system call with this errno code.

It's only valid to call this when task is stopped for tracing on exit from a system call, due to TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT.