CT_PR_STATUS_GET_PARAM(3CONTRACT)      Contract Management Library Functions
NAME
       ct_pr_status_get_param, ct_pr_status_get_fatal,
       ct_pr_status_get_members, ct_pr_status_get_contracts,
       ct_pr_status_get_svc_fmri, ct_pr_status_get_svc_aux,
       ct_pr_status_get_svc_ctid, ct_pr_status_get_svc_creator - process
       contract status functions
SYNOPSIS
       cc [ 
flag... ] 
file... 
-D_LARGEFILE64_SOURCE  -lcontract  [ 
library... ]
       #include <libcontract.h>
       #include <sys/contract/process.h>       
int ct_pr_status_get_param(
ct_stathdl_t stathdl, 
uint_t *paramp);       
int ct_pr_status_get_fatal(
ct_stathdl_t stathdl, 
uint_t *eventsp);       
int ct_pr_status_get_members(
ct_stathdl_t stathdl,            
pid_t **pidpp, 
uint_t *n);       
int ct_pr_status_get_contracts(
ct_stathdl_t stathdl,            
ctid_t **idpp, 
uint_t *n);       
int ct_pr_status_get_svc_fmri(
ct_stathdl_t stathdl, 
char **fmri);       
int ct_pr_status_get_svc_aux(
ct_stathdl_t stathdl, 
char **aux);       
int ct_pr_status_get_svc_ctid(
ct_stathdl_t stathdl, 
ctid_t *ctid);       
int ct_pr_status_get_svc_creator(
ct_stathdl_t stathdl,            
char **creator);
DESCRIPTION
       These functions read process contract status information from a
       status object returned by 
ct_status_read(3CONTRACT).
       The 
ct_pr_status_get_param() function reads the parameter set term.
       The value is a collection of bits as described in 
process(5).
       The 
ct_pr_status_get_fatal() function reads the fatal event set term.
       The value is a collection of bits as described in 
process(5).
       The 
ct_pr_status_get_members() function obtains a list of the process
       IDs of the members of the process contract. A pointer to an array of
       process IDs is stored in *
pidpp. The number of elements in this array
       is stored in *
n. These data are freed when the status object is freed
       by a call to 
ct_status_free(3CONTRACT).
       The 
ct_pr_status_get_contracts() function obtains a list of IDs of
       contracts that have been inherited by the contract. A pointer to an
       array of IDs is stored in *
idpp. The number of elements in this array
       is stored in *
n. These data are freed when the status object is freed
       by a call to 
ct_status_free().
       The 
ct_pr_status_get_svc_fmri(), 
ct_pr_status_get_svc_creator(), and       
ct_pr_status_get_svc_aux() functions read, respectively, the service
       FMRI, the contract's creator 
execname and  the creator's auxiliary
       field.  The buffer pointed to by 
fmri, 
aux or 
creator, is freed by a
       call to 
ct_status_free() and should not be modified.
       The 
ct_pr_status_get_svc_ctid() function reads the process contract
       id for which the service FMRI was first set.
RETURN VALUES
       Upon successful completion, 
ct_pr_status_get_param(),       
ct_pr_status_get_fatal(), 
ct_pr_status_get_members(),       
ct_pr_status_get_contracts(), 
ct_pr_status_get_svc_fmri(),       
ct_pr_status_get_svc_creator(), 
ct_pr_status_get_svc_aux(), and       
ct_pr_status_get_svc_ctid() return 0. Otherwise, they return a non-
       zero error value.
ERRORS
       The 
ct_pr_status_get_param(), 
ct_pr_status_get_fatal(),       
ct_pr_status_get_members(), 
ct_pr_status_get_contracts(),       
ct_pr_status_get_svc_fmri(), 
ct_pr_status_get_svc_creator(),       
ct_pr_status_get_svc_aux(), and 
ct_pr_status_get_svc_ctid() functions
       will fail if:       
EINVAL                 The 
stathdl argument is not a process contract status
                 object.
       The 
ct_pr_status_get_param(), 
ct_pr_status_get_fatal(),       
ct_pr_status_get_members(), 
ct_r_status_get_contracts(),       
ct_pr_status_get_svc_fmri(), 
ct_pr_status_get_svc_creator(),       
ct_pr_status_get_svc_aux(), and 
ct_pr_status_get_svc_ctid() functions
       will fail if:       
ENOENT                 The requested data were not available in the status object.
EXAMPLES
       Example 1: Print members of process contract 1.
       Open the status file for contract 1, read the contract's status,
       obtain the list of processes, print them, and free the status object.
         #include <sys/types.h>
         #include <fcntl.h>
         #include <libcontract.h>
         #include <stdio.h>
         ...
         int fd;
         uint_t i, n;
         pid_t *procs;
         ct_stathdl_t st;
         fd = open("/system/contract/process/1/status");
         ct_status_read(fd, &st);
         ct_pr_status_get_members(st, &procs, &n);
         for (i = 0 ; i < n; i++)
                 printf("%ld\n", (long)procs[i]);
         ct_status_free(stat);
         close(fd);
         ...
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Committed       |
       +--------------------+-----------------+
       |MT-Level            | Safe            |
       +--------------------+-----------------+
SEE ALSO
       ct_status_free(3CONTRACT), 
ct_status_read(3CONTRACT),       
libcontract(3LIB), 
contract(5), 
process(5), 
attributes(7),       
lfcompile(7)                              February 25, 2008
                                           CT_PR_STATUS_GET_PARAM(3CONTRACT)