syscall_set_arguments — change system call parameter value
void syscall_set_arguments ( | struct task_struct * task, |
struct pt_regs * regs, | |
unsigned int i, | |
unsigned int n, | |
const unsigned long * args) ; |
task
task of interest, must be in system call entry tracing
regs
task_pt_regs
of task
i
argument index [0,5]
n
number of arguments; n+i must be [1,6].
args
array of argument values to store
Changes n
arguments to the system call starting with the i
'th argument.
Argument i
gets value args
[0], and so on.
An arch inline version is probably optimal when i
and n
are constants.
It's only valid to call this when task
is stopped for tracing on
entry to a system call, due to TIF_SYSCALL_TRACE
or TIF_SYSCALL_AUDIT
.
It's invalid to call this with i
+ n
> 6; we only support system calls
taking up to 6 arguments.