inject processor_bind system call into victim process

Process Control Library (libproc, -lproc)
#include <libproc.h>

pr_processor_bind(struct ps_prochandle *P, idtype_t idtype, id_t id, int processorid, int *obind);

The pr_processor_bind() function injects the processor_bind(2) system call into the target process P by means of the agent LWP. If the process handle P is the value NULL then this will be equivalent to calling processor_bind(2) on the currently running process.

The arguments idtype, id, processorid, and obind have the same meaning as in processor_bind(2). See processor_bind(2) for the full description and purpose of the processor_bind system call and its arguments.

The pr_processor_bind() function only works on active processes. Process handles that correspond to core files, zombie processes, or ELF objects do not support system call injection.

Upon successful completion, the pr_processor_bind() function's return value is that described in processor_bind(2). Otherwise, -1 is returned and errno is set to ENOSYS to indicate that the system call could not be injected.

For the full list of errors see the ERRORS section in processor_bind(2).

The pr_processor_bind() function will fail if:

An error occurred while trying to invoke the agent LWP and inject a system call in the process handle P or the process handle P does not support system call injection.


See LOCKING in libproc(3LIB).

processor_bind(2), libproc(3LIB), proc(5)
May 11, 2016 OmniOS