PLWP_GETASRS(3PROC) Process Control Library Functions PLWP_GETASRS(3PROC)
NAME
Plwp_getasrs,
Plwp_setasrs - get and set SPARCv9 ancillary state
registers
LIBRARY
Process Control Library (libproc, -lproc)
SYNOPSIS
#include <libproc.h> int Plwp_getasrs(
struct ps_prochandle *P,
lwpid_t lwpid,
asrset_t asrs);
int Plwp_setasrs(
struct ps_prochandle *P,
lwpid_t lwpid,
const asrset_t asrs);
DESCRIPTION
The
Plwp_getasrs() and
Plwp_setasrs() functions get and set the
ancillary thread-specific register set of the thread
lwpid in the
process handle
P.
The ancillary state registers are only present on 64-bit
SPARCv9 processes. They contain information that is specific to the platform
and are not included in the information obtained through functions such
as
Plwp_getregs(3PROC),
Plwp_getfpregs(3PROC), and
Plwp_getxregs(3PROC).
The
Plwp_getasrs() function reads the ancillary registers into
asrs,
while the
Plwp_setasrs() sets the thread's ancillary registers to the
values provided by
asrs.
Processes should be stopped prior to obtaining the register state of
individual threads. Processes may be stopped with
Pstop(3PROC).
The
asrset_t structure is described in
proc(5).
One may not set the register values of a process that is not an active
process, e.g. a process handle that refers to a file or a core file.
RETURN VALUES
Upon successful completion, the
Plwp_getasrs() and
Plwp_setasrs()
functions return
0 and get or set the register state. Otherwise,
-1 is
returned and
errno is set to indicate the error.
ERRORS
For a full list of possible errors see the
DIAGNOSTICS section in
proc(5).
The
Plwp_getasrs() and
Plwp_setasrs() function will fail if:
ENODATA The process handle
P does not have any ancillary
register state information.
EBUSY The process handle
P refers to a live process and it
is not stopped.
ENOENT The process handle
P refers to a live process and
there is no thread with id
lwpid or it is not a
64-bit SPARCv9 process.
EINVAL The process handle
P refers to a core file and there
is no thread with id
lwpid.
ARCHITECTURE
The
Plwp_getasrs() and
Plwp_setasrs() functions are only available on
64-bit
SPARCv9 platforms.
INTERFACE STABILITY
UncommittedMT-LEVEL See
LOCKING in
libproc(3LIB).
SEE ALSO
libproc(3LIB),
Plwp_getfpregs(3PROC),
Plwp_getregs(3PROC),
Plwp_setregs(3PROC),
Pstop(3PROC),
proc(5)illumos February 21, 2023 illumos