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


 137            Preopen                       Pxcreate
 138 
 139    Process interrogation and manipulation
 140      The following routines obtain information about a process and allow
 141      manipulation of the process itself.
 142 
 143            Paddr_to_ctf                  Paddr_to_loadobj
 144            Paddr_to_map                  Paddr_to_text_map
 145            Pasfd                         Pclearfault
 146            Pclearsig                     Pcontent
 147            Pcred                         Pctlfd
 148            Pdelbkpt                      Pdelwapt
 149            Pdstop                        Pexecname
 150            Pfault                        Pfgcore
 151            Pgcore                        Pgetareg
 152            Pgetauxval                    Pgetauxvec
 153            Pgetenv                       Pisprocdir
 154            Pissyscall_prev               Plmid
 155            Plmid_to_loadobj              Plmid_to_map
 156            Plookup_by_addr               Plookup_by_name
 157            Plwp_alt_stack                Plwp_getfpregs
 158            Plwp_getname                  Plwp_getpsinfo
 159            Plwp_getregs                  Plwp_getspymaster
 160            Plwp_main_stack               Plwp_setfpregs
 161            Plwp_setregs                  Plwp_stack
 162            Pname_to_ctf                  Pname_to_loadobj
 163            Pname_to_map                  Pobjname
 164            Pobjname_resolved             Pplatform
 165            Ppltdest                      Ppriv
 166            Ppsinfo                       Pputareg
 167            Prd_agent                     Pread
 168            Pread_string                  Preset_maps
 169            Psetbkpt                      Psecflags
 170            Psetcred                      Psetfault
 171            Psetflags                     Psetpriv
 172            Psetrun                       Psetsignal
 173            Psetsysentry                  Psetsysexit
 174            Psetwapt                      Psetzoneid
 175            Psignal                       Pstate
 176            Pstatus                       Pstop
 177            Pstopstatus                   Psync
 178            Psysentry                     Psysexit
 179            Puname                        Pupanic
 180            Pupanic_free                  Punsetflags
 181            Pupdate_maps                  Pupdate_syms
 182            Pwait                         Pwrite
 183            Pxecbkpt                      Pxecwapt
 184            Pxlookup_by_addr              Pxlookup_by_addr_resolved
 185            Pxlookup_by_name              Pzonename
 186            Pzonepath                     Pzoneroot
 187 
 188    Thread interrogation and manipulation
 189      The following routines obtain information about a thread and allow
 190      manipulation of the thread itself.
 191 
 192            Lalt_stack                    Lclearfault
 193            Lclearsig                     Lctlfd
 194            Ldstop                        Lgetareg
 195            Lmain_stack                   Lprochandle
 196            Lpsinfo                       Lputareg
 197            Lsetrun                       Lstack



 198            Lstate                        Lstatus
 199            Lstop                         Lsync
 200            Lwait                         Lxecbkpt
 201            Lxecwapt
 202 








 203    System Call Injection
 204      The following routines are used to inject specific system calls and have
 205      them run in the context of a process.
 206 
 207            pr_access                     pr_close
 208            pr_creat                      pr_door_info
 209            pr_exit                       pr_fcntl
 210            pr_fstat                      pr_fstat64
 211            pr_fstatvfs                   pr_getitimer
 212            pr_getpeername                pr_getpeerucred
 213            pr_getprojid                  pr_getrctl
 214            pr_getrlimit                  pr_getrlimit64
 215            pr_getsockname                pr_getsockopt
 216            pr_gettaskid                  pr_getzoneid
 217            pr_ioctl                      pr_link
 218            pr_llseek                     pr_lseek
 219            pr_lstat                      pr_lstat64
 220            pr_memcntl                    pr_meminfo
 221            pr_mmap                       pr_munmap
 222            pr_open                       pr_processor_bind


 253            proc_get_priv                 proc_get_psinfo
 254            proc_get_status               proc_get_initstdio
 255            proc_lwp_in_set               proc_lwp_range_valid
 256            proc_signame                  proc_sigset2str
 257            proc_str2content              proc_str2flt
 258            proc_str2fltset               proc_str2sig
 259            proc_str2sigset               proc_str2sys
 260            proc_str2sysset               proc_sysname
 261            proc_sysset2str               proc_unctrl_psinfo
 262 
 263    x86 Specific Routines
 264      The following routines are specific to the x86, 32-bit and 64-bit,
 265      versions of the libproc library.
 266 
 267            Pldt                          proc_get_ldt
 268 
 269    SPARC specific Routines
 270      The following functions are specific to the SPARC, 32-bit and 64-bit,
 271      versions of the libproc library.
 272 
 273            Plwp_getgwindows              Plwp_getxregs
 274            Plwp_setxregs
 275 
 276      The following functions are specific to the 64-bit SPARC version of the
 277      libproc library.
 278 
 279            Plwp_getasrs                  Plwp_setasrs
 280 
 281 PROCESS STATES
 282      Every process handle that exists in libproc has a state.  In some cases,
 283      such as for core files, these states are static.  In other cases, such as
 284      handles that correspond to a running process or a created process, these
 285      states are dynamic and change based on actions taken in the library.  The
 286      state can be obtained with the Pstate(3PROC) function.
 287 
 288      The various states are:
 289 
 290            PS_RUN        An actively running process.  This may be a process
 291                          that was obtained by creating it with functions such
 292                          as Pcreate(3PROC) or by grabbing an existing process
 293                          such as Pgrab(3PROC).
 294 


 765 
 766      Perror_printf(3PROC), proc_arg_grab(3PROC), proc_arg_psinfo(3PROC),
 767      proc_arg_xgrab(3PROC), proc_arg_xpsinfo(3PROC), proc_content2str(3PROC),
 768      proc_dmodelname(3PROC), proc_finistdio(3PROC), proc_fltname(3PROC),
 769      proc_fltset2str(3PROC), proc_flushstdio(3PROC), proc_get_auxv(3PROC),
 770      proc_get_cred(3PROC), proc_get_fdinfo(3PROC), proc_get_priv(3PROC),
 771      proc_get_psinfo(3PROC), proc_get_status(3PROC), proc_initstdio(3PROC),
 772      proc_lwp_in_set(3PROC), proc_lwp_range_valid(3PROC), proc_signame(3PROC),
 773      proc_sigset2str(3PROC), proc_str2content(3PROC), proc_str2flt(3PROC),
 774      proc_str2fltset(3PROC), proc_str2sig(3PROC), proc_str2sigset(3PROC),
 775      proc_str2sys(3PROC), proc_str2sysset(3PROC), proc_sysname(3PROC),
 776      proc_sysset2str(3PROC), proc_unctrl_psinfo(3PROC),
 777      proc_fdinfowalk(3PROC), proc_fdwalk(3PROC), proc_walk(3PROC)
 778 
 779      Pldt(3PROC), proc_get_ldt(3PROC),
 780 
 781      Plwp_getgwindows(3PROC), Plwp_getxregs(3PROC), Plwp_setxregs(3PROC),
 782 
 783      Plwp_getasrs(3PROC), Plwp_setasrs(3PROC)
 784 
 785 illumos                         March 10, 2023                         illumos


 137            Preopen                       Pxcreate
 138 
 139    Process interrogation and manipulation
 140      The following routines obtain information about a process and allow
 141      manipulation of the process itself.
 142 
 143            Paddr_to_ctf                  Paddr_to_loadobj
 144            Paddr_to_map                  Paddr_to_text_map
 145            Pasfd                         Pclearfault
 146            Pclearsig                     Pcontent
 147            Pcred                         Pctlfd
 148            Pdelbkpt                      Pdelwapt
 149            Pdstop                        Pexecname
 150            Pfault                        Pfgcore
 151            Pgcore                        Pgetareg
 152            Pgetauxval                    Pgetauxvec
 153            Pgetenv                       Pisprocdir
 154            Pissyscall_prev               Plmid
 155            Plmid_to_loadobj              Plmid_to_map
 156            Plookup_by_addr               Plookup_by_name





 157            Pname_to_ctf                  Pname_to_loadobj
 158            Pname_to_map                  Pobjname
 159            Pobjname_resolved             Pplatform
 160            Ppltdest                      Ppriv
 161            Ppsinfo                       Pputareg
 162            Prd_agent                     Pread
 163            Pread_string                  Preset_maps
 164            Psetbkpt                      Psecflags
 165            Psetcred                      Psetfault
 166            Psetflags                     Psetpriv
 167            Psetrun                       Psetsignal
 168            Psetsysentry                  Psetsysexit
 169            Psetwapt                      Psetzoneid
 170            Psignal                       Pstate
 171            Pstatus                       Pstop
 172            Pstopstatus                   Psync
 173            Psysentry                     Psysexit
 174            Puname                        Pupanic
 175            Pupanic_free                  Punsetflags
 176            Pupdate_maps                  Pupdate_syms
 177            Pwait                         Pwrite
 178            Pxecbkpt                      Pxecwapt
 179            Pxlookup_by_addr              Pxlookup_by_addr_resolved
 180            Pxlookup_by_name              Pzonename
 181            Pzonepath                     Pzoneroot
 182 
 183    Thread interrogation and manipulation
 184      The following routines obtain information about a thread and allow
 185      manipulation of the thread itself.
 186 
 187            Lalt_stack                    Lclearfault
 188            Lclearsig                     Lctlfd
 189            Ldstop                        Lgetareg
 190            Lgetfpregs                    Lgetregs
 191            Lgetxregs                     Lmain_stack
 192            Lprochandle                   Lpsinfo
 193            Lputareg                      Lsetrun
 194            Lsetfpregs                    Lsetregs
 195            Lsetxregs                     Lstack
 196            Lstate                        Lstatus
 197            Lstop                         Lsync
 198            Lwait                         Lxecbkpt
 199            Lxecwapt
 200 
 201            Plwp_alt_stack                Plwp_freexregs
 202            Plwp_getfpregs                Plwp_getname
 203            Plwp_getpsinfo                Plwp_getregs
 204            Plwp_getspymaster             Plwp_main_stack
 205            Plwp_getxregs                 Plwp_setfpregs
 206            Plwp_setregs                  Plwp_setxregs
 207            Plwp_stack
 208 
 209    System Call Injection
 210      The following routines are used to inject specific system calls and have
 211      them run in the context of a process.
 212 
 213            pr_access                     pr_close
 214            pr_creat                      pr_door_info
 215            pr_exit                       pr_fcntl
 216            pr_fstat                      pr_fstat64
 217            pr_fstatvfs                   pr_getitimer
 218            pr_getpeername                pr_getpeerucred
 219            pr_getprojid                  pr_getrctl
 220            pr_getrlimit                  pr_getrlimit64
 221            pr_getsockname                pr_getsockopt
 222            pr_gettaskid                  pr_getzoneid
 223            pr_ioctl                      pr_link
 224            pr_llseek                     pr_lseek
 225            pr_lstat                      pr_lstat64
 226            pr_memcntl                    pr_meminfo
 227            pr_mmap                       pr_munmap
 228            pr_open                       pr_processor_bind


 259            proc_get_priv                 proc_get_psinfo
 260            proc_get_status               proc_get_initstdio
 261            proc_lwp_in_set               proc_lwp_range_valid
 262            proc_signame                  proc_sigset2str
 263            proc_str2content              proc_str2flt
 264            proc_str2fltset               proc_str2sig
 265            proc_str2sigset               proc_str2sys
 266            proc_str2sysset               proc_sysname
 267            proc_sysset2str               proc_unctrl_psinfo
 268 
 269    x86 Specific Routines
 270      The following routines are specific to the x86, 32-bit and 64-bit,
 271      versions of the libproc library.
 272 
 273            Pldt                          proc_get_ldt
 274 
 275    SPARC specific Routines
 276      The following functions are specific to the SPARC, 32-bit and 64-bit,
 277      versions of the libproc library.
 278 
 279            Plwp_getgwindows

 280 
 281      The following functions are specific to the 64-bit SPARC version of the
 282      libproc library.
 283 
 284            Plwp_getasrs                  Plwp_setasrs
 285 
 286 PROCESS STATES
 287      Every process handle that exists in libproc has a state.  In some cases,
 288      such as for core files, these states are static.  In other cases, such as
 289      handles that correspond to a running process or a created process, these
 290      states are dynamic and change based on actions taken in the library.  The
 291      state can be obtained with the Pstate(3PROC) function.
 292 
 293      The various states are:
 294 
 295            PS_RUN        An actively running process.  This may be a process
 296                          that was obtained by creating it with functions such
 297                          as Pcreate(3PROC) or by grabbing an existing process
 298                          such as Pgrab(3PROC).
 299 


 770 
 771      Perror_printf(3PROC), proc_arg_grab(3PROC), proc_arg_psinfo(3PROC),
 772      proc_arg_xgrab(3PROC), proc_arg_xpsinfo(3PROC), proc_content2str(3PROC),
 773      proc_dmodelname(3PROC), proc_finistdio(3PROC), proc_fltname(3PROC),
 774      proc_fltset2str(3PROC), proc_flushstdio(3PROC), proc_get_auxv(3PROC),
 775      proc_get_cred(3PROC), proc_get_fdinfo(3PROC), proc_get_priv(3PROC),
 776      proc_get_psinfo(3PROC), proc_get_status(3PROC), proc_initstdio(3PROC),
 777      proc_lwp_in_set(3PROC), proc_lwp_range_valid(3PROC), proc_signame(3PROC),
 778      proc_sigset2str(3PROC), proc_str2content(3PROC), proc_str2flt(3PROC),
 779      proc_str2fltset(3PROC), proc_str2sig(3PROC), proc_str2sigset(3PROC),
 780      proc_str2sys(3PROC), proc_str2sysset(3PROC), proc_sysname(3PROC),
 781      proc_sysset2str(3PROC), proc_unctrl_psinfo(3PROC),
 782      proc_fdinfowalk(3PROC), proc_fdwalk(3PROC), proc_walk(3PROC)
 783 
 784      Pldt(3PROC), proc_get_ldt(3PROC),
 785 
 786      Plwp_getgwindows(3PROC), Plwp_getxregs(3PROC), Plwp_setxregs(3PROC),
 787 
 788      Plwp_getasrs(3PROC), Plwp_setasrs(3PROC)
 789 
 790 illumos                         March 20, 2023                         illumos