Rechercher une page de manuel
task_current_syscall
Langue: en
Version: May 2009 (fedora - 06/07/09)
Section: 9 (Appels noyau Linux)
Sommaire
NAME
task_current_syscall - Discover what a blocked task is doing.SYNOPSIS
- int task_current_syscall(struct task_struct * target, long * callno, unsigned long args[6], unsigned int maxargs, unsigned long * sp, unsigned long * pc);
ARGUMENTS
target
- thread to examine
callno
- filled with system call number or -1
args[6]
- filled with maxargs system call arguments
maxargs
- number of elements in args to fill
sp
- filled with user stack pointer
pc
- filled with user PC
DESCRIPTION
If target is blocked in a system call, returns zero with *callno set to the the call's number and args filled in with its arguments. Registers not used for system call arguments may not be available and it is not kosher to use struct user_regset calls while the system call is still in progress. Note we may get this result if target has finished its system call but not yet returned to user mode, such as when it's stopped for signal handling or syscall exit tracing.
If target is blocked in the kernel during a fault or exception, returns zero with *callno set to -1 and does not fill in args. If so, it's now safe to examine target using struct user_regset get calls as long as we're sure target won't return to user mode.
Returns -EAGAIN if target does not remain blocked.
Returns -EINVAL if maxargs is too large (maximum is six).
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre