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)