diff options
Diffstat (limited to 'include/asm-generic/syscall.h')
-rw-r--r-- | include/asm-generic/syscall.h | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/include/asm-generic/syscall.h b/include/asm-generic/syscall.h index 0c938a4354f6..b88239e9efe4 100644 --- a/include/asm-generic/syscall.h +++ b/include/asm-generic/syscall.h | |||
@@ -105,41 +105,30 @@ void syscall_set_return_value(struct task_struct *task, struct pt_regs *regs, | |||
105 | * syscall_get_arguments - extract system call parameter values | 105 | * syscall_get_arguments - extract system call parameter values |
106 | * @task: task of interest, must be blocked | 106 | * @task: task of interest, must be blocked |
107 | * @regs: task_pt_regs() of @task | 107 | * @regs: task_pt_regs() of @task |
108 | * @i: argument index [0,5] | ||
109 | * @n: number of arguments; n+i must be [1,6]. | ||
110 | * @args: array filled with argument values | 108 | * @args: array filled with argument values |
111 | * | 109 | * |
112 | * Fetches @n arguments to the system call starting with the @i'th argument | 110 | * Fetches 6 arguments to the system call. First argument is stored in |
113 | * (from 0 through 5). Argument @i is stored in @args[0], and so on. | 111 | * @args[0], and so on. |
114 | * An arch inline version is probably optimal when @i and @n are constants. | ||
115 | * | 112 | * |
116 | * It's only valid to call this when @task is stopped for tracing on | 113 | * It's only valid to call this when @task is stopped for tracing on |
117 | * entry to a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT. | 114 | * entry to a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT. |
118 | * It's invalid to call this with @i + @n > 6; we only support system calls | ||
119 | * taking up to 6 arguments. | ||
120 | */ | 115 | */ |
121 | void syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, | 116 | void syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, |
122 | unsigned int i, unsigned int n, unsigned long *args); | 117 | unsigned long *args); |
123 | 118 | ||
124 | /** | 119 | /** |
125 | * syscall_set_arguments - change system call parameter value | 120 | * syscall_set_arguments - change system call parameter value |
126 | * @task: task of interest, must be in system call entry tracing | 121 | * @task: task of interest, must be in system call entry tracing |
127 | * @regs: task_pt_regs() of @task | 122 | * @regs: task_pt_regs() of @task |
128 | * @i: argument index [0,5] | ||
129 | * @n: number of arguments; n+i must be [1,6]. | ||
130 | * @args: array of argument values to store | 123 | * @args: array of argument values to store |
131 | * | 124 | * |
132 | * Changes @n arguments to the system call starting with the @i'th argument. | 125 | * Changes 6 arguments to the system call. |
133 | * Argument @i gets value @args[0], and so on. | 126 | * The first argument gets value @args[0], and so on. |
134 | * An arch inline version is probably optimal when @i and @n are constants. | ||
135 | * | 127 | * |
136 | * It's only valid to call this when @task is stopped for tracing on | 128 | * It's only valid to call this when @task is stopped for tracing on |
137 | * entry to a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT. | 129 | * entry to a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT. |
138 | * It's invalid to call this with @i + @n > 6; we only support system calls | ||
139 | * taking up to 6 arguments. | ||
140 | */ | 130 | */ |
141 | void syscall_set_arguments(struct task_struct *task, struct pt_regs *regs, | 131 | void syscall_set_arguments(struct task_struct *task, struct pt_regs *regs, |
142 | unsigned int i, unsigned int n, | ||
143 | const unsigned long *args); | 132 | const unsigned long *args); |
144 | 133 | ||
145 | /** | 134 | /** |