diff options
Diffstat (limited to 'include/linux/ptrace.h')
| -rw-r--r-- | include/linux/ptrace.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h index 22641d5d45df..98b93ca4db06 100644 --- a/include/linux/ptrace.h +++ b/include/linux/ptrace.h | |||
| @@ -94,6 +94,7 @@ extern void ptrace_notify(int exit_code); | |||
| 94 | extern void __ptrace_link(struct task_struct *child, | 94 | extern void __ptrace_link(struct task_struct *child, |
| 95 | struct task_struct *new_parent); | 95 | struct task_struct *new_parent); |
| 96 | extern void __ptrace_unlink(struct task_struct *child); | 96 | extern void __ptrace_unlink(struct task_struct *child); |
| 97 | extern void ptrace_fork(struct task_struct *task, unsigned long clone_flags); | ||
| 97 | #define PTRACE_MODE_READ 1 | 98 | #define PTRACE_MODE_READ 1 |
| 98 | #define PTRACE_MODE_ATTACH 2 | 99 | #define PTRACE_MODE_ATTACH 2 |
| 99 | /* Returns 0 on success, -errno on denial. */ | 100 | /* Returns 0 on success, -errno on denial. */ |
| @@ -313,6 +314,27 @@ static inline void user_enable_block_step(struct task_struct *task) | |||
| 313 | #define arch_ptrace_stop(code, info) do { } while (0) | 314 | #define arch_ptrace_stop(code, info) do { } while (0) |
| 314 | #endif | 315 | #endif |
| 315 | 316 | ||
| 317 | #ifndef arch_ptrace_untrace | ||
| 318 | /* | ||
| 319 | * Do machine-specific work before untracing child. | ||
| 320 | * | ||
| 321 | * This is called for a normal detach as well as from ptrace_exit() | ||
| 322 | * when the tracing task dies. | ||
| 323 | * | ||
| 324 | * Called with write_lock(&tasklist_lock) held. | ||
| 325 | */ | ||
| 326 | #define arch_ptrace_untrace(task) do { } while (0) | ||
| 327 | #endif | ||
| 328 | |||
| 329 | #ifndef arch_ptrace_fork | ||
| 330 | /* | ||
| 331 | * Do machine-specific work to initialize a new task. | ||
| 332 | * | ||
| 333 | * This is called from copy_process(). | ||
| 334 | */ | ||
| 335 | #define arch_ptrace_fork(child, clone_flags) do { } while (0) | ||
| 336 | #endif | ||
| 337 | |||
| 316 | extern int task_current_syscall(struct task_struct *target, long *callno, | 338 | extern int task_current_syscall(struct task_struct *target, long *callno, |
| 317 | unsigned long args[6], unsigned int maxargs, | 339 | unsigned long args[6], unsigned int maxargs, |
| 318 | unsigned long *sp, unsigned long *pc); | 340 | unsigned long *sp, unsigned long *pc); |
