Current File : //usr/share/man/man3proc/proc_service.3proc
'\" te
.\" Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
.TH proc_service 3PROC "23 April 2014" "SunOS 5.11" "Process Control Library Functions"
.SH NAME
proc_service \- process service interfaces
.SH SYNOPSIS
.LP
.nf
#include <proc_service.h> 

\fBps_err_e\fR \fBps_pdmodel\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBint *\fR\fIdata_model\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_pglobal_lookup\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBconst char *\fR\fIobject_name\fR, \fBconst char *\fR\fIsym_name\fR,
    \fBpsaddr_t *\fR\fIsym_addr\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_pglobal_sym\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBconst char *\fR\fIobject_name\fR, \fBconst char *\fR\fIsym_name\fR,
    \fBps_sym_t *\fR\fIsym\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_pread\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBpsaddr_t\fR \fIaddr\fR,
    \fBvoid *\fR\fIbuf\fR, \fBsize_t\fR \fIsize\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_pwrite\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBpsaddr_t\fR \fIaddr\fR,
    \fBconst void *\fR\fIbuf\fR, \fBsize_t\fR \fIsize\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_pdread\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBpsaddr_t\fR \fIaddr\fR,
    \fBvoid *\fR\fIbuf\fR, \fBsize_t\fR \fIsize\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_pdwrite\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBpsaddr_t\fR \fIaddr\fR,
    \fBconst void *\fR\fIbuf\fR, \fBsize_t\fR \fIsize\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_ptread\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBpsaddr_t\fR \fIaddr\fR,
    \fBvoid *\fR\fIbuf\fR, \fBsize_t\fR \fIsize\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_ptwrite\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBpsaddr_t\fR \fIaddr\fR,
    \fBconst void *\fR\fIbuf\fR, \fBsize_t\fR \fIsize\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_pstop\fR(\fBstruct ps_prochandle *\fR\fIph\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_pcontinue\fR(\fBstruct ps_prochandle *\fR\fIph\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_lstop\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBlwpid_t\fR \fIlwpid\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_lcontinue\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBlwpid_t\fR \fIlwpid\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_lgetregs\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBlwpid_t\fR \fIlwpid\fR,
    \fBprgregset_t\fR \fIgregset\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_lsetregs\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBlwpid_t\fR \fIlwpid\fR,
    \fBconst prgregset_t\fR \fIgregset\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_lgetfpregs\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBlwpid_t\fR \fIlwpid\fR, \fBprfpregset_t *\fR\fIfpregset\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_lsetfpregs\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBlwpid_t\fR \fIlwpid\fR, \fBconst prfpregset_t *\fR\fIfpregset\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_pauxv\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBconst auxv_t **\fR\fIauxp\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_kill\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBint\fR \fIsig\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_lrolltoaddr\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBlwpid_t\fR \fIlwpid\fR, \fBpsaddr_t\fR \fIgo_addr\fR, \fBpsaddr_t\fR \fIstop_addr\fR);
.fi

.LP
.nf
\fBvoid\fR \fBps_plog\fR(\fBconst char *\fR\fIfmt\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_lgetxregsize\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBlwpid_t\fR \fIlwpid\fR, \fBint *\fR\fIxregsize\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_lgetxregs\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBlwpid_t\fR \fIlwpid\fR, \fBcaddr_t\fR \fIxregset\fR);
.fi

.LP
.nf
\fBps_err_e\fR \fBps_lsetxregs\fR(\fBstruct ps_prochandle *\fR\fIph\fR,
    \fBlwpid_t\fR \fIlwpid\fR, \fBcaddr_t\fR \fIxregset\fR);
.fi

.LP
.nf
ps_err_e ps_lgetcxregsize(struct ps_prochandle *\fIph\fR,
    \fBlwpid_t\fR \fIlwpid\fR, int *\fIcxregsize\fR);
.fi

.LP
.nf
ps_err_e ps_lgetcxregs(struct ps_prochandle *\fIph\fR,
    \fBlwpid_t\fR \fIlwpid\fR, caddr_t \fIcxregset\fR);
.fi

.LP
.nf
ps_err_e ps_lsetcxregs(struct ps_prochandle *\fIph\fR,
    \fBlwpid_t\fR \fIlwpid\fR, caddr_t \fIcxregset\fR);
.fi

.SS "x86"
.LP
.nf
\fBps_err_e\fR \fBps_lgetLDT\fR(\fBstruct ps_prochandle *\fR\fIph\fR, \fBlwpid_t\fR \fIlwpid\fR,
    \fBstruct ssd *\fR\fIldt\fR);
.fi

.SH DESCRIPTION
.sp
.LP
Every program that links \fBlibthread_db\fR or \fBlibrtld_db\fR must provide a set of process control primitives that allow \fBlibthread_db\fR and \fBlibrtld_db\fR 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 \fBlibc_db\fR(3LIB). For information on \fBlibrtld_db\fR, refer to \fIRuntime Linker Debugger Interface\fR in \fIOracle Solaris 11.3 Linkers and Libraries         Guide\fR.
.sp
.LP
Refer to the individual reference manual pages that describe these routines for a functional specification that clients of \fBlibthread_db\fR and \fBlibrtld_db\fR can use to implement this required interface. The <\fBproc_service.h\fR> header lists the C declarations of these routines.
.SH FUNCTIONS
.sp
.ne 2
.mk
.na
\fB\fBps_pdmodel()\fR\fR
.ad
.RS 23n
.rt  
Returns the data model of the target process.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_pglobal_lookup()\fR\fR
.ad
.RS 23n
.rt  
Looks up the symbol in the symbol table of the load object in the target process and returns its address.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_pglobal_sym()\fR\fR
.ad
.RS 23n
.rt  
Looks up the symbol in the symbol table of the load object in the target process and returns its symbol table entry.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_pread()\fR\fR
.ad
.RS 23n
.rt  
Copies \fIsize\fR bytes from the target process to the controlling process.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_pwrite()\fR\fR
.ad
.RS 23n
.rt  
Copies \fIsize\fR bytes from the controlling process to the target process.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_pdread()\fR\fR
.ad
.RS 23n
.rt  
Identical to \fBps_pread()\fR. 
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_pdwrite()\fR\fR
.ad
.RS 23n
.rt  
Identical to \fBps_pwrite()\fR. 
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_ptread()\fR\fR
.ad
.RS 23n
.rt  
Identical to \fBps_pread()\fR. 
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_ptwrite()\fR\fR
.ad
.RS 23n
.rt  
Identical to \fBps_pwrite()\fR. 
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_pstop()\fR\fR
.ad
.RS 23n
.rt  
Stops the target process.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_pcontinue()\fR\fR
.ad
.RS 23n
.rt  
Resumes target process.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lstop()\fR\fR
.ad
.RS 23n
.rt  
Stops a single lightweight process ( \fBLWP\fR ) within the target process.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lcontinue()\fR\fR
.ad
.RS 23n
.rt  
Resumes a single \fBLWP\fR within the target process.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lgetregs()\fR\fR
.ad
.RS 23n
.rt  
Gets the general registers of the \fBLWP\fR.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lsetregs()\fR\fR
.ad
.RS 23n
.rt  
Sets the general registers of the \fBLWP\fR.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lgetfpregs()\fR\fR
.ad
.RS 23n
.rt  
Gets the \fBLWP`s\fR floating point register set.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lsetfpregs()\fR\fR
.ad
.RS 23n
.rt  
Sets the \fBLWP`s\fR floating point register set.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_pauxv()\fR\fR
.ad
.RS 23n
.rt  
Returns a pointer to a read-only copy of the target process's auxiliary vector.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_kill()\fR\fR
.ad
.RS 23n
.rt  
Sends signal to target process.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lrolltoaddr()\fR\fR
.ad
.RS 23n
.rt  
Rolls the \fBLWP\fR out of a critical section when the process is stopped.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_plog()\fR\fR
.ad
.RS 23n
.rt  
Logs a message.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lgetxregsize()\fR\fR
.ad
.RS 23n
.rt  
Returns the size of the architecture-dependent extra state registers.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lgetxregs()\fR\fR
.ad
.RS 23n
.rt  
Gets the extra state registers of the \fBLWP\fR.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lsetxregs()\fR\fR
.ad
.RS 23n
.rt  
Sets the extra state registers of the \fBLWP\fR.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lgetcxregsize()\fR\fR
.ad
.RS 23n
.rt  
Returns the size of CPU-specific extended registers.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lgetcxregs()\fR\fR
.ad
.RS 23n
.rt  
Gets CPU-specific extended registers of the LWP.
.RE

.sp
.ne 2
.mk
.na
\fB\fBps_lsetcxregs()\fR\fR
.ad
.RS 23n
.rt  
Sets CPU-specific extended registers of the LWP.
.RE

.SS "x86"
.sp
.ne 2
.mk
.na
\fB\fBps_lgetLDT()\fR\fR
.ad
.RS 16n
.rt  
Reads the local descriptor table of the \fBLWP\fR.
.RE

.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for description of the following attributes:
.sp

.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i) 
lw(2.75i) |lw(2.75i) 
.
ATTRIBUTE TYPEATTRIBUTE VALUE
_
MT LevelSafe
.TE

.SH SEE ALSO
.sp
.LP
\fBlibc_db\fR(3LIB), \fBlibrtld_db\fR(3LIB), \fBps_pread\fR(3PROC), \fBrtld_db\fR(3EXT), \fBattributes\fR(5)
.sp
.LP
\fIOracle Solaris 11.3 Linkers and Libraries         Guide\fR