Perform a ThreadCtl() on another process/thread.
#include <sys/procfs.h> #define DCMD_PROC_THREADCTL __DIOTF(_DCMD_PROC, __PROC_SUBCMD_PROCFS + 27, procfs_threadctl)
The arguments to devctl() are:
Argument | Value |
---|---|
filedes | A file descriptor for the process. |
dcmd | DCMD_PROC_THREADCTL |
dev_data_ptr | A pointer to a procfs_threadctl structure |
n_bytes | sizeof(procfs_threadctl) |
dev_info_ptr | NULL |
The argument is a pointer to a procfs_threadctl structure. For example:
procfs_threadctl tctl; tctl.tid = tid; tctl.cmd = _NTO_TCTL_NAME; tn = (struct _thread_name *)(&tctl.data); tn->name_buf_len = sizeof(tctl.data) - sizeof(*tn); //We can only communicate a maximum buffer size via devctl if( newname_len > tn->name_buf_len || prevname_len > tn->name_buf_len) { return E2BIG; } tn->new_name_len = newname_len; if(newname_len > 0) { memcpy(tn->name_buf, newname, newname_len); } devctl(fd, DCMD_PROC_THREADCTL, &tctl, sizeof(tctl), NULL);