Print this page
15254 %ymm registers not restored after signal handler
15367 x86 getfpregs() summons corrupting %xmm ghosts
15333 want x86 /proc xregs support (libc_db, libproc, mdb, etc.)
15336 want libc functions for extended ucontext_t
15334 want ps_lwphandle-specific reg routines
15328 FPU_CW_INIT mistreats reserved bit
15335 i86pc fpu_subr.c isn't really platform-specific
15332 setcontext(2) isn't actually noreturn
15331 need <sys/stdalign.h>
Change-Id: I7060aa86042dfb989f77fc3323c065ea2eafa9ad
Conflicts:
usr/src/uts/common/fs/proc/prcontrol.c
usr/src/uts/intel/os/archdep.c
usr/src/uts/intel/sys/ucontext.h
usr/src/uts/intel/syscall/getcontext.c
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/man/man3proc/ps_lgetregs.3proc.man.txt
+++ new/usr/src/man/man3proc/ps_lgetregs.3proc.man.txt
1 1 PS_LGETREGS(3PROC) Process Control Library Functions PS_LGETREGS(3PROC)
2 2
3 3 NAME
4 4 ps_lgetregs, ps_lsetregs, ps_lgetfpregs, ps_lsetfpregs,
5 5 ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs - routines that access the
6 6 target process register in libthread_db
7 7
8 8 SYNOPSIS
9 9 #include <proc_service.h>
10 10
11 11 ps_err_e ps_lgetregs(struct ps_prochandle *ph, lwpid_t lid,
12 12 prgregset_t gregset);
13 13
14 14
15 15 ps_err_e ps_lsetregs(struct ps_prochandle *ph, lwpid_t lid,
16 16 static prgregset_t gregset);
17 17
18 18
19 19 ps_err_e ps_lgetfpregs(struct ps_prochandle *ph, lwpid_t lid,
20 20 prfpregset_t *fpregs);
21 21
22 22
23 23 ps_err_e ps_lsetfpregs(struct ps_prochandle *ph, lwpid_t lid,
24 24 static prfpregset_t *fpregs);
25 25
26 26
27 27 ps_err_e ps_lgetxregsize(struct ps_prochandle *ph, lwpid_t lid,
28 28 int *xregsize);
29 29
30 30
31 31 ps_err_e ps_lgetxregs(struct ps_prochandle *ph, lwpid_t lid,
32 32 caddr_t xregset);
33 33
34 34
35 35 ps_err_e ps_lsetxregs(struct ps_prochandle *ph, lwpid_t lid,
36 36 caddr_t xregset);
37 37
|
↓ open down ↓ |
37 lines elided |
↑ open up ↑ |
38 38
39 39 DESCRIPTION
40 40 ps_lgetregs(), ps_lsetregs(), ps_lgetfpregs(), ps_lsetfpregs(),
41 41 ps_lgetxregsize(), ps_lgetxregs(), ps_lsetxregs() read and write
42 42 register sets from lightweight processes (LWPs) within the target
43 43 process identified by ph. ps_lgetregs() gets the general registers of
44 44 the LWP identified by lid, and ps_lsetregs() sets them. ps_lgetfpregs()
45 45 gets the LWP's floating point register set, while ps_lsetfpregs() sets
46 46 it.
47 47
48 - SPARC Only
49 - ps_lgetxregsize(), ps_lgetxregs(), and ps_lsetxregs() are SPARC-
50 - specific. They do not need to be defined by a controlling process on
51 - non-SPARC architecture. ps_lgetxregsize() returns in *xregsize the size
52 - of the architecture-dependent extra state registers. ps_lgetxregs()
53 - gets the extra state registers, and ps_lsetxregs() sets them.
48 + ps_lgetxregsize(), ps_lgetxregs(), and ps_lsetxregs() are used to get
49 + and set the extended register set. Support for an extended register set
50 + depends on the instruction-set archicture. On platforms without support
51 + for these, controlling processes wlil still need to define them;
52 + however, they are allowed to simply return errors.
54 53
54 + ps_lgetxregsize() returns in *xregsize the size of the architecture-
55 + dependent extra state registers. ps_lgetxregs() gets the extra state
56 + registers, and ps_lsetxregs() sets them. When getting the registers,
57 + the size of xregset must be at least the size returned by
58 + ps_lgetxregsize().
59 +
55 60 RETURN VALUES
56 61 PS_OK
57 62 The call returned successfully.
58 63
59 64
60 - PS_NOFPREGS
65 + PS_NOFREGS
61 66 Floating point registers are neither available for this
62 67 architecture nor for this process.
63 68
64 69
65 70 PS_NOXREGS
66 71 Extra state registers are not available on this
67 72 architecture.
68 73
69 74
70 75 PS_ERR
71 76 The function did not return successfully.
72 77
73 78
74 79 ATTRIBUTES
75 80 See attributes(7) for description of the following attributes:
76 81
77 82
78 83
|
↓ open down ↓ |
8 lines elided |
↑ open up ↑ |
79 84
80 85 +---------------+-----------------+
81 86 |ATTRIBUTE TYPE | ATTRIBUTE VALUE |
82 87 +---------------+-----------------+
83 88 |MT Level | Safe |
84 89 +---------------+-----------------+
85 90
86 91 SEE ALSO
87 92 libc_db(3LIB), proc_service(3PROC), attributes(7), threads(7)
88 93
89 - September 12, 2020 PS_LGETREGS(3PROC)
94 + January 23, 2023 PS_LGETREGS(3PROC)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX