1 PLWP_GETREGS(3PROC)    Process Control Library Functions   PLWP_GETREGS(3PROC)
   2 
   3 NAME
   4      Plwp_getfpregs, Plwp_setfpregs, Plwp_getregs, Plwp_setregs - get and set
   5      thread registers
   6 
   7 LIBRARY
   8      Process Control Library (libproc, -lproc)
   9 
  10 SYNOPSIS
  11      #include <libproc.h>
  12 
  13      int
  14      Plwp_getfpregs(struct ps_prochandle *P, lwpid_t lwpid,
  15          prfpregset_t *fpregs);
  16 
  17      int
  18      Plwp_setfpregs(struct ps_prochandle *P, lwpid_t lwpid,
  19          const prfpregset_t fpregs);
  20 
  21      int
  22      Plwp_getregs(struct ps_prochandle *P, lwpid_t lwpid, prgregset_t gregs);
  23 
  24      int
  25      Plwp_setregs(struct ps_prochandle *P, lwpid_t lwpid,
  26          const prgregset_t gregs);
  27 
  28 DESCRIPTION
  29      The Plwp_getregs(), Plwp_setregs(), Plwp_getfpregs(), and
  30      Plwp_setfpregs() functions allow one to get and set the general purpose
  31      and floating point registers from the thread lwpid in the process handle
  32      P.
  33 
  34      The Plwp_getfpregs() function updates the structure pointed to by fpregs
  35      with the state and values of the floating point registers of the thread
  36      specified by lwpid.
  37 
  38      The Plwp_setfpregs() function updates the floating point registers of the
  39      thread specified by lwpid to the register state contained in fpregs.
  40 
  41      The Plwp_getregs() function updates the structure pointed to by gregs
  42      with the state and values of the general purpose registers of the thread
  43      specified by lwpid.
  44 
  45      The Plwp_setregs() function updates the general purpose registers of the
  46      thread specified by lwpid to the register state contained in gregs.
  47 
  48      Processes must be stopped before obtaining the register state of
  49      individual threads.  Processes may be stopped with Pstop(3PROC).  The
  50      structures used for registers are described in proc(5) and their
  51      definitions may be found in <procfs.h>.  The definitions of these
  52      structures varies based on the architecture of the system and the running
  53      process.
  54 
  55      One may not set the register values of a process that is not an active
  56      process, e.g. a process handle that refers to a file or a core file.
  57 
  58 RETURN VALUES
  59      Upon successful completion, the Plwp_getregs(), Plwp_setregs(),
  60      Plwp_getfpregs(), and Plwp_setfpregs() functions return 0 and obtain or
  61      set the register state.  Otherwise, -1 is returned, errno is set to
  62      indicate the error, and the register state is not updated nor are the
  63      data pointers changed.
  64 
  65 ERRORS
  66      For a full list of possible errors also see the DIAGNOSTICS section in
  67      proc(5).
  68 
  69      The Plwp_getregs(), Plwp_setregs(), Plwp_getfpregs(), and
  70      Plwp_setfpregs() will fail if:
  71 
  72      EBUSY              The process handle P is not currently stopped.
  73 
  74      ENOENT             There is no thread in P with id lwpid.
  75 
  76 INTERFACE STABILITY
  77      Uncommitted
  78 
  79 MT-LEVEL
  80      See LOCKING in libproc(3LIB).
  81 
  82 SEE ALSO
  83      libproc(3LIB), proc(5)
  84 
  85 illumos                           May 2, 2020                          illumos
  | 
   1 PLWP_GETREGS(3PROC)    Process Control Library Functions   PLWP_GETREGS(3PROC)
   2 
   3 NAME
   4      Plwp_getfpregs, Plwp_setfpregs, Plwp_getregs, Plwp_setregs, Lgetfpregs,
   5      Lsetfpregs, Lgetregs, Lsetregs - get and set thread registers
   6 
   7 LIBRARY
   8      Process Control Library (libproc, -lproc)
   9 
  10 SYNOPSIS
  11      #include <libproc.h>
  12 
  13      int
  14      Plwp_getfpregs(struct ps_prochandle *P, lwpid_t lwpid,
  15          prfpregset_t *fpregs);
  16 
  17      int
  18      Plwp_setfpregs(struct ps_prochandle *P, lwpid_t lwpid,
  19          const prfpregset_t fpregs);
  20 
  21      int
  22      Plwp_getregs(struct ps_prochandle *P, lwpid_t lwpid, prgregset_t gregs);
  23 
  24      int
  25      Plwp_setregs(struct ps_prochandle *P, lwpid_t lwpid,
  26          const prgregset_t gregs);
  27 
  28      int
  29      Lgetfpregs(struct ps_lwphandle *L, prfpregset_t *fpregs);
  30 
  31      int
  32      Lsetfpregs(struct ps_lwphandle *L, const prfpregset_t *fpregs);
  33 
  34      int
  35      Lgetregs(struct ps_lwphandle *L, prgregset_t gregs);
  36 
  37      int
  38      Lsetregs(struct ps_lwphandle *L, const prgregset_t gregs);
  39 
  40 DESCRIPTION
  41      The Plwp_getregs(), Plwp_setregs(), Plwp_getfpregs(), and
  42      Plwp_setfpregs() functions allow one to get and set the general purpose
  43      and floating point registers from the thread lwpid in the process handle
  44      P.
  45 
  46      The Plwp_getfpregs() function updates the structure pointed to by fpregs
  47      with the state and values of the floating point registers of the thread
  48      specified by lwpid.
  49 
  50      The Plwp_setfpregs() function updates the floating point registers of the
  51      thread specified by lwpid to the register state contained in fpregs.
  52 
  53      The Plwp_getregs() function updates the structure pointed to by gregs
  54      with the state and values of the general purpose registers of the thread
  55      specified by lwpid.
  56 
  57      The Plwp_setregs() function updates the general purpose registers of the
  58      thread specified by lwpid to the register state contained in gregs.
  59 
  60      Processes must be stopped before obtaining the register state of
  61      individual threads.  Processes may be stopped with Pstop(3PROC).  The
  62      structures used for registers are described in proc(5) and their
  63      definitions may be found in <procfs.h>.  The definitions of these
  64      structures varies based on the architecture of the system and the running
  65      process.
  66 
  67      One may not set the register values of a process that is not an active
  68      process, e.g. a process handle that refers to a file or a core file.
  69 
  70      The Lgetfpregs(), Lsetfpregs(), Lgetregs(), and Lsetregs() functions
  71      behave in a same way as the corresponding process-handle specific
  72      functions, with the following differences:
  73 
  74      -   Rather than take a specified thread id via lwpid, they operate on the
  75          thread that the thread-handle, L, refers to.
  76 
  77      -   The process-handle functions will require that the entire process is
  78          stopped before performing a set operation.  In these cases, only the
  79          specific thread identified by the handle L must be stopped through a
  80          call to Lstop(3PROC) or similar.  Note, a suspended thread
  81          (thr_suspend(3C)) is not considered stopped for these purposes.
  82 
  83 RETURN VALUES
  84      Upon successful completion, the Plwp_getregs(), Plwp_setregs(),
  85      Plwp_getfpregs(), Plwp_setfpregs(), Lgetfpregs(), Lsetfpregs(),
  86      Lgetregs(), and Lsetregs() functions return 0 and obtain or set the
  87      register state.  Otherwise, -1 is returned, errno is set to indicate the
  88      error, and the register state is not updated nor are the data pointers
  89      changed.
  90 
  91 ERRORS
  92      The implementations of these functions may use standard system and
  93      library calls that can fail.  For a full list of possible errors also see
  94      the DIAGNOSTICS section in proc(5).
  95 
  96      The Plwp_getregs(), Plwp_setregs(), Plwp_getfpregs(), and
  97      Plwp_setfpregs() will fail if:
  98 
  99      EBUSY              The process handle P is not currently stopped.
 100 
 101      ENOENT             There is no thread in P with id lwpid.
 102      The Lgetfpregs(), Lsetfpregs(), Lgetregs(), and Lsetregs() will fail if:
 103 
 104      EBUSY              The thread handle L is not currently stopped.
 105 
 106 INTERFACE STABILITY
 107      Uncommitted
 108 
 109 MT-LEVEL
 110      See LOCKING in libproc(3LIB).
 111 
 112 SEE ALSO
 113      libproc(3LIB), proc(5)
 114 
 115 illumos                        January 19, 2023                        illumos
  |