PROC_SERVICE(3PROC) Process Control Library Functions PROC_SERVICE(3PROC)

NAME


proc_service - process service interfaces

SYNOPSIS


#include <proc_service.h>

ps_err_e ps_pdmodel(struct ps_prochandle *ph,
int *data_model);


ps_err_e ps_pglobal_lookup(struct ps_prochandle *ph,
const char *object_name, const char *sym_name,
psaddr_t *sym_addr);


ps_err_e ps_pglobal_sym(struct ps_prochandle *ph,
const char *object_name, const char *sym_name,
ps_sym_t *sym);


ps_err_e ps_pread(struct ps_prochandle *ph, psaddr_t addr,
void *buf, size_t size);


ps_err_e ps_pwrite(struct ps_prochandle *ph, psaddr_t addr,
const void *buf, size_t size);


ps_err_e ps_pdread(struct ps_prochandle *ph, psaddr_t addr,
void *buf, size_t size);


ps_err_e ps_pdwrite(struct ps_prochandle *ph, psaddr_t addr,
const void *buf, size_t size);


ps_err_e ps_ptread(struct ps_prochandle *ph, psaddr_t addr,
void *buf, size_t size);


ps_err_e ps_ptwrite(struct ps_prochandle *ph, psaddr_t addr,
const void *buf, size_t size);


ps_err_e ps_pstop(struct ps_prochandle *ph);


ps_err_e ps_pcontinue(struct ps_prochandle *ph);


ps_err_e ps_lstop(struct ps_prochandle *ph, lwpid_t lwpid);


ps_err_e ps_lcontinue(struct ps_prochandle *ph, lwpid_t lwpid);


ps_err_e ps_lgetregs(struct ps_prochandle *ph, lwpid_t lwpid,
prgregset_t gregset);


ps_err_e ps_lsetregs(struct ps_prochandle *ph, lwpid_t lwpid,
const prgregset_t gregset);


ps_err_e ps_lgetfpregs(struct ps_prochandle *ph, lwpid_t lwpid,
prfpregset_t *fpregset);


ps_err_e ps_lsetfpregs(struct ps_prochandle *ph, lwpid_t lwpid,
const prfpregset_t *fpregset);


ps_err_e ps_pauxv(struct ps_prochandle *ph,
const auxv_t **auxp);


ps_err_e ps_kill(struct ps_prochandle *ph, int sig);


ps_err_e ps_lrolltoaddr(struct ps_prochandle *ph,
lwpid_t lwpid, psaddr_t go_addr, psaddr_t stop_addr);


void ps_plog(const char *fmt);


ps_err_e ps_lgetxregsize(struct ps_prochandle *ph,
lwpid_t lwpid, int *xregsize);


ps_err_e ps_lgetxregs(struct ps_prochandle *ph,
lwpid_t lwpid, caddr_t xregset);


ps_err_e ps_lsetxregs(struct ps_prochandle *ph,
lwpid_t lwpid, caddr_t xregset);


x86
ps_err_e ps_lgetLDT(struct ps_prochandle *ph, lwpid_t lwpid,
struct ssd *ldt);


DESCRIPTION


Every program that links libthread_db or librtld_db must provide a set of
process control primitives that allow libthread_db and librtld_db to
access memory and registers in the target process, to start and to stop
the target process, and to look up symbols in the target process. See
libc_db(3LIB). For information on librtld_db, refer to the Linker and
Libraries Guide.


Refer to the individual reference manual pages that describe these
routines for a functional specification that clients of libthread_db and
librtld_db can use to implement this required interface. The
<proc_service.h> header lists the C declarations of these routines.

FUNCTIONS


ps_pdmodel()
Returns the data model of the target process.


ps_pglobal_lookup()
Looks up the symbol in the symbol table of the
load object in the target process and returns its
address.


ps_pglobal_sym()
Looks up the symbol in the symbol table of the
load object in the target process and returns its
symbol table entry.


ps_pread()
Copies size bytes from the target process to the
controlling process.


ps_pwrite()
Copies size bytes from the controlling process to
the target process.


ps_pdread()
Identical to ps_pread().


ps_pdwrite()
Identical to ps_pwrite().


ps_ptread()
Identical to ps_pread().


ps_ptwrite()
Identical to ps_pwrite().


ps_pstop()
Stops the target process.


ps_pcontinue()
Resumes target process.


ps_lstop()
Stops a single lightweight process ( LWP ) within
the target process.


ps_lcontinue()
Resumes a single LWP within the target process.


ps_lgetregs()
Gets the general registers of the LWP.


ps_lsetregs()
Sets the general registers of the LWP.


ps_lgetfpregs()
Gets the LWP`s floating point register set.


ps_lsetfpregs()
Sets the LWP`s floating point register set.


ps_pauxv()
Returns a pointer to a read-only copy of the
auxiliary vector of the target process.


ps_kill()
Sends signal to target process.


ps_lrolltoaddr()
Rolls the LWP out of a critical section when the
process is stopped.


ps_plog()
Logs a message.

ps_lgetxregsize()
Returns the size of the architecture-dependent extra
state registers.


ps_lgetxregs()
Gets the extra state registers of the LWP.


ps_lsetxregs()
Sets the extra state registers of the LWP.


x86
ps_lgetLDT()
Reads the local descriptor table of the LWP.


ATTRIBUTES


See attributes(7) for description of the following attributes:


+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|MT Level | Safe |
+---------------+-----------------+

SEE ALSO


rtld_db(3EXT), libc_db(3LIB), librtld_db(3LIB), ps_pread(3PROC),
attributes(7)


Linker and Libraries Guide

January 23, 2023 PROC_SERVICE(3PROC)