Get the current status of a thread in the process associated with the file descriptor.
#include <sys/procfs.h> #define DCMD_PROC_TIDSTATUS32 (__DIOTF(_DCMD_PROC, __PROC_SUBCMD_PROCFS + 7, procfs_status32)) #define DCMD_PROC_TIDSTATUS64 (__DIOTF(_DCMD_PROC, __PROC_SUBCMD_PROCFS + 7, procfs_status64)) #define DCMD_PROC_TIDSTATUS (__DIOTF(_DCMD_PROC, __PROC_SUBCMD_PROCFS + 7, procfs_status))
The arguments to devctl() are:
Argument | Value |
---|---|
filedes | A file descriptor for the process. |
dcmd | DCMD_PROC_TIDSTATUS |
dev_data_ptr | A pointer to a procfs_status structure |
n_bytes | sizeof(procfs_status) |
dev_info_ptr | NULL |
This is a short form of using DCMD_PROC_CURTHREAD to set the current thread, then DCMD_PROC_STATUS to get information about that thread, and then restoring the current thread.
The argument is a pointer to a procfs_status structure (see debug_thread_t in <sys/debug.h>), with the required thread ID specified in the tid field. This structure is filled in with the required information on return. For example:
procfs_status my_status; my_status.tid = 1; devctl( fd, DCMD_PROC_TIDSTATUS, &my_status, sizeof(my_status), NULL);
For more information about the contents of this structure, see Thread information, earlier in this chapter.