143051d27SRobert Mustacchi.\"
243051d27SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
343051d27SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
443051d27SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
543051d27SRobert Mustacchi.\" 1.0 of the CDDL.
643051d27SRobert Mustacchi.\"
743051d27SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
843051d27SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
943051d27SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
1043051d27SRobert Mustacchi.\"
1143051d27SRobert Mustacchi.\"
1243051d27SRobert Mustacchi.\" Copyright 2015 Joyent, Inc.
1343051d27SRobert Mustacchi.\"
14*80683875SPeter Tribble.Dd February 21, 2023
1543051d27SRobert Mustacchi.Dt PLWP_GETASRS 3PROC
1643051d27SRobert Mustacchi.Os
1743051d27SRobert Mustacchi.Sh NAME
1843051d27SRobert Mustacchi.Nm Plwp_getasrs ,
1943051d27SRobert Mustacchi.Nm Plwp_setasrs
2043051d27SRobert Mustacchi.Nd get and set SPARCv9 ancillary state registers
21ab618543SJohn Levon.Sh LIBRARY
2243051d27SRobert Mustacchi.Lb libproc
23ab618543SJohn Levon.Sh SYNOPSIS
2443051d27SRobert Mustacchi.In libproc.h
2543051d27SRobert Mustacchi.Ft int
2643051d27SRobert Mustacchi.Fo Plwp_getasrs
2743051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
2843051d27SRobert Mustacchi.Fa "lwpid_t lwpid"
2943051d27SRobert Mustacchi.Fa "asrset_t asrs"
3043051d27SRobert Mustacchi.Fc
3143051d27SRobert Mustacchi.Ft int
3243051d27SRobert Mustacchi.Fo Plwp_setasrs
3343051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
3443051d27SRobert Mustacchi.Fa "lwpid_t lwpid"
3543051d27SRobert Mustacchi.Fa "const asrset_t asrs"
3643051d27SRobert Mustacchi.Fc
3743051d27SRobert Mustacchi.Sh DESCRIPTION
3843051d27SRobert MustacchiThe
3943051d27SRobert Mustacchi.Fn Plwp_getasrs
4043051d27SRobert Mustacchiand
4143051d27SRobert Mustacchi.Fn Plwp_setasrs
4243051d27SRobert Mustacchifunctions get and set the ancillary thread-specific register set of the
4343051d27SRobert Mustacchithread
4443051d27SRobert Mustacchi.Fa lwpid
4543051d27SRobert Mustacchiin the process handle
4643051d27SRobert Mustacchi.Fa P .
4743051d27SRobert Mustacchi.Pp
4843051d27SRobert MustacchiThe ancillary state registers are only present on 64-bit
4943051d27SRobert Mustacchi.Sy SPARCv9
5072d3dbb9SYuri Pankovprocesses.
5172d3dbb9SYuri PankovThey contain information that is specific to the platform and are not included
5272d3dbb9SYuri Pankovin the information obtained through functions such as
5343051d27SRobert Mustacchi.Xr Plwp_getregs 3PROC ,
5443051d27SRobert Mustacchi.Xr Plwp_getfpregs 3PROC ,
5543051d27SRobert Mustacchiand
5643051d27SRobert Mustacchi.Xr Plwp_getxregs 3PROC .
5743051d27SRobert Mustacchi.Pp
5872d3dbb9SYuri PankovThe
5972d3dbb9SYuri Pankov.Fn Plwp_getasrs
6043051d27SRobert Mustacchifunction reads the ancillary registers into
6143051d27SRobert Mustacchi.Fa asrs ,
6243051d27SRobert Mustacchiwhile the
6343051d27SRobert Mustacchi.Fn Plwp_setasrs
6443051d27SRobert Mustacchisets the thread's ancillary registers to the values provided by
6543051d27SRobert Mustacchi.Fa asrs .
6643051d27SRobert Mustacchi.Pp
6743051d27SRobert MustacchiProcesses should be stopped prior to obtaining the register state of
6872d3dbb9SYuri Pankovindividual threads.
6972d3dbb9SYuri PankovProcesses may be stopped with
7043051d27SRobert Mustacchi.Xr Pstop 3PROC .
7143051d27SRobert Mustacchi.Pp
7243051d27SRobert MustacchiThe
7343051d27SRobert Mustacchi.Sy asrset_t
7443051d27SRobert Mustacchistructure is described in
75bbf21555SRichard Lowe.Xr proc 5 .
7643051d27SRobert Mustacchi.Pp
7743051d27SRobert MustacchiOne may not set the register values of a process that is not an active
7843051d27SRobert Mustacchiprocess, e.g. a process handle that refers to a file or a core file.
7943051d27SRobert Mustacchi.Sh RETURN VALUES
8043051d27SRobert MustacchiUpon successful completion, the
8143051d27SRobert Mustacchi.Fn Plwp_getasrs
8243051d27SRobert Mustacchiand
8343051d27SRobert Mustacchi.Fn Plwp_setasrs
8443051d27SRobert Mustacchifunctions return
8543051d27SRobert Mustacchi.Sy 0
8672d3dbb9SYuri Pankovand get or set the register state.
8772d3dbb9SYuri PankovOtherwise,
8843051d27SRobert Mustacchi.Sy -1
8943051d27SRobert Mustacchiis returned and
9043051d27SRobert Mustacchi.Sy errno
9143051d27SRobert Mustacchiis set to indicate the error.
9243051d27SRobert Mustacchi.Sh ERRORS
9343051d27SRobert MustacchiFor a full list of possible errors see the
9443051d27SRobert Mustacchi.Sy DIAGNOSTICS
9543051d27SRobert Mustacchisection in
96bbf21555SRichard Lowe.Xr proc 5 .
9743051d27SRobert Mustacchi.Pp
9843051d27SRobert MustacchiThe
9943051d27SRobert Mustacchi.Fn Plwp_getasrs
10043051d27SRobert Mustacchiand
10143051d27SRobert Mustacchi.Fn Plwp_setasrs
10243051d27SRobert Mustacchifunction will fail if:
10343051d27SRobert Mustacchi.Bl -tag -width Er
10443051d27SRobert Mustacchi.It Er ENODATA
10543051d27SRobert MustacchiThe process handle
10643051d27SRobert Mustacchi.Fa P
10743051d27SRobert Mustacchidoes not have any ancillary register state information.
10843051d27SRobert Mustacchi.It Er EBUSY
10943051d27SRobert MustacchiThe process handle
11043051d27SRobert Mustacchi.Fa P
11143051d27SRobert Mustacchirefers to a live process and it is not stopped.
11243051d27SRobert Mustacchi.It Er ENOENT
11343051d27SRobert MustacchiThe process handle
11443051d27SRobert Mustacchi.Fa P
11543051d27SRobert Mustacchirefers to a live process and there is no thread with id
11643051d27SRobert Mustacchi.Fa lwpid
11743051d27SRobert Mustacchior it is not a 64-bit SPARCv9 process.
11843051d27SRobert Mustacchi.It Er EINVAL
11943051d27SRobert MustacchiThe process handle
12043051d27SRobert Mustacchi.Fa P
12143051d27SRobert Mustacchirefers to a core file and there is no thread with id
12243051d27SRobert Mustacchi.Fa lwpid .
12343051d27SRobert Mustacchi.El
12443051d27SRobert Mustacchi.Sh ARCHITECTURE
12543051d27SRobert MustacchiThe
12643051d27SRobert Mustacchi.Fn Plwp_getasrs
12743051d27SRobert Mustacchiand
12843051d27SRobert Mustacchi.Fn Plwp_setasrs
12943051d27SRobert Mustacchifunctions are only available on
13043051d27SRobert Mustacchi64-bit
13143051d27SRobert Mustacchi.Sy SPARCv9
13243051d27SRobert Mustacchiplatforms.
13343051d27SRobert Mustacchi.Sh INTERFACE STABILITY
13443051d27SRobert Mustacchi.Sy Uncommitted
13543051d27SRobert Mustacchi.Sh MT-LEVEL
13643051d27SRobert MustacchiSee
13743051d27SRobert Mustacchi.Sy LOCKING
13843051d27SRobert Mustacchiin
13943051d27SRobert Mustacchi.Xr libproc 3LIB .
14043051d27SRobert Mustacchi.Sh SEE ALSO
14143051d27SRobert Mustacchi.Xr libproc 3LIB ,
14243051d27SRobert Mustacchi.Xr Plwp_getfpregs 3PROC ,
14343051d27SRobert Mustacchi.Xr Plwp_getregs 3PROC ,
14443051d27SRobert Mustacchi.Xr Plwp_setregs 3PROC ,
14543051d27SRobert Mustacchi.Xr Pstop 3PROC ,
146bbf21555SRichard Lowe.Xr proc 5
147