ct_pr_status_get_paraContractAManagement Librct_pr_status_get_param(3CONTRACT)NAME
ct_pr_status_get_param, ct_pr_status_get_fatal, ct_pr_status_get_mem‐
bers, ct_pr_status_get_contracts - 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);
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(4).
The ct_pr_status_get_fatal() function reads the fatal event set term.
The value is a collection of bits as described in process(4).
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 con‐
tracts 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().
RETURN VALUES
Upon successful completion, ct_pr_status_get_param(), ct_pr_sta‐
tus_get_fatal(), ct_pr_status_get_members(), and ct_pr_status_get_con‐
tracts() return 0. Otherwise, they return a non-zero error value.
ERRORS
The ct_pr_status_get_param(), ct_pr_status_get_fatal(), ct_pr_sta‐
tus_get_members(), and ct_pr_status_get_contracts() 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_sta‐
tus_get_members(), and ct_r_status_get_contracts() 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(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Evolving │
├─────────────────────────────┼─────────────────────────────┤
│MT-Level │Safe │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOct_status_free(3CONTRACT), ct_status_read(3CONTRACT), libcon‐
tract(3LIB), contract(4), process(4), attributes(5), lfcompile(5)SunOS 5.10 1 Apr 2004 ct_pr_status_get_param(3CONTRACT)