Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

task_current_syscall(9) [suse man page]

TASK_CURRENT_SYSCALL(9) 					   Machine State					   TASK_CURRENT_SYSCALL(9)

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). Kernel Hackers Manual 2.6. July 2010 TASK_CURRENT_SYSCALL(9)

Check Out this Related Man Page

UTRACE_PREPARE_EXAMI(9) 					  utrace core API					   UTRACE_PREPARE_EXAMI(9)

NAME
utrace_prepare_examine - prepare to examine thread state SYNOPSIS
int utrace_prepare_examine(struct task_struct * target, struct utrace_engine * engine, struct utrace_examiner * exam); ARGUMENTS
target thread of interest, a struct task_struct pointer engine engine pointer returned by utrace_attach_task exam temporary state, a struct utrace_examiner pointer DESCRIPTION
This call prepares to safely examine the thread target using struct user_regset calls, or direct access to thread-synchronous fields. When target is current, this call is superfluous. When target is another thread, it must held stopped via UTRACE_STOP by engine. This call may block the caller until target stays stopped, so it must be called only after the caller is sure target is about to unschedule. This means a zero return from a utrace_control call on engine giving UTRACE_STOP, or a report_quiesce or report_signal callback to engine that used UTRACE_STOP in its return value. Returns -ESRCH if target is dead or -EINVAL if UTRACE_STOP was not used. If target has started running again despite UTRACE_STOP (for SIGKILL or a spurious wakeup), this call returns -EAGAIN. When this call returns zero, it's safe to use struct user_regset calls and task_user_regset_view on target and to examine some of its fields directly. When the examination is complete, a utrace_finish_examine call must follow to check whether it was completed safely. Kernel Hackers Manual 2.6. July 2010 UTRACE_PREPARE_EXAMI(9)
Man Page