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); |
tasktask of interest, must be blocked
regs
task_pt_regs of task
errornegative 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.