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
        
@@ -102,11 +102,11 @@
      segments, each containing several note entries as described below.  The
      note entry header and core file note type (n_type) definitions are
      contained in <sys/elf.h>.  The first NOTE segment exists for binary
      compatibility with old programs that deal with core files.  It contains
      structures defined in <sys/old_procfs.h>.  New programs should recognize
-     and skip this BNOTE segment, advancing instead to the new NOTE segment.
+     and skip this NOTE segment, advancing instead to the new NOTE segment.
      The old NOTE segment is deleted from core files in a future release.
 
      The old NOTE segment contains the following entries.  Each has entry name
      CORE and presents the contents of a system structure:
 
@@ -136,11 +136,11 @@
                    interest to a debugger from the operating system, such as
                    the general registers, signal dispositions, state, reason
                    for stopping, process-ID, and so forth.  The prstatus_t
                    structure is defined in <sys/old_procfs.h>.
 
-     prfpregset_t  n_type: NT_PRFPREG.  This entry is present only if the BLWP
+     prfpregset_t  n_type: NT_PRFPREG.  This entry is present only if the LWP
                    used the floating-point hardware.  It contains the
                    floating-point registers.  The prfpregset_t structure is
                    defined in <sys/procfs_isa.h>.
 
      gwindows_t    n_type: NT_GWINDOWS.  This entry is present only on a SPARC
@@ -147,14 +147,17 @@
                    machine and only if the system was unable to flush all of
                    the register windows to the stack.  It contains all of the
                    unspilled register windows.  The gwindows_t structure is
                    defined in <sys/regset.h>.
 
-     prxregset_t   n_type: NT_PRXREG.  This entry is present only if the
-                   machine has extra register state associated with it.  It
-                   contains the extra register state.  The prxregset_t
-                   structure is defined in sys/procfs_isa.h.
+     prxregset_t   n_type: NT_PRXREG.  This entry is no longer included in
+                   core files, but is of historical note because in the past
+                   it was included on SPARC-based systems.  While since then
+                   the prxregset_t and extended register sets have been
+                   defined on other architectures, they do not emit this in
+                   the old note section because there is no binary
+                   compatibility.
 
      The new NOTE segment contains the following entries.  Each has entry name
      CORE and presents the contents of a system structure:
 
      psinfo_t     n_type: NT_PSINFO.  This structure contains information of
@@ -289,11 +292,16 @@
                   defined in <sys/regset.h>.
 
      prxregset_t  n_type: NT_PRXREG.  This entry is present only if the
                   machine has extra register state associated with it.  It
                   contains the extra register state.  The prxregset_t
-                  structure is defined in <sys/procfs_isa.h>.
+                  structure is defined in <sys/procfs_isa.h>; however
+                  applications should include <procfs.h> to get access to it.
+                  On most architectures the prxregset_t is opaque and is made
+                  up of multiple structures because it can vary in length.
+                  proc(5) discusses the structure of the extended register set
+                  for each supported architecture.
 
      asrset_t     asrset_t n_type: NT_ASRS.  This entry is present only on a
                   SPARC V9 machine and only if the process is a 64-bit
                   process.  It contains the ancillary state registers for the
                   LWP.  The asrset_t asrset_t structure is defined in
@@ -318,6 +326,6 @@
      elfdump(1), gcore(1), mdb(1), proc(1), ps(1), getrlimit(2), setrlimit(2),
      setuid(2), sysinfo(2), uname(2), upanic(2), getzoneid(3C),
      getzonenamebyid(3C), elf(3ELF), signal.h(3HEAD), a.out(5), proc(5),
      security-flags(7), zones(7), coreadm(8)
 
-illumos                         August 3, 2021                         illumos
+illumos                        January 24, 2023                        illumos