Name

syscall_set_arguments — change system call parameter value

Synopsis

void syscall_set_arguments (struct task_struct * task,
 struct pt_regs * regs,
 unsigned int i,
 unsigned int n,
 const unsigned long * args);
 

Arguments

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

Description

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.