syscall_set_return_value — change the return value of a traced system call
void syscall_set_return_value ( | struct task_struct * task, |
struct pt_regs * regs, | |
int error, | |
long val) ; |
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
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
.