CT_STATUS_READ(3CONTRACT) | Contract Management Library Functions | CT_STATUS_READ(3CONTRACT) |
ct_status_read, ct_status_free, ct_status_get_id, ct_status_get_zoneid, ct_status_get_type, ct_status_get_state, ct_status_get_holder, ct_status_get_nevents, ct_status_get_ntime, ct_status_get_qtime, ct_status_get_nevid, ct_status_get_cookie, ct_status_get_informative, ct_status_get_critical - common contract status functions
cc [ flag... ] file... -D_LARGEFILE64_SOURCE -lcontract [ library... ] #include <libcontract.h> int ct_status_read(int fd, int detail, ct_stathdl_t *stathdlp);
void ct_status_free(ct_stathdl_t stathdl);
ctid_t ct_status_get_id(ct_stathdl_t stathdl);
zoneid_t ct_status_get_zoneid(ct_stathdl_t stathdl);
char *ct_status_get_type(ct_stathdl_t stathdl);
uint_t ct_status_get_state(ct_stathdl_t stathdl);
pid_t ct_status_get_holder(ct_stathdl_t stathdl);
int ct_status_get_nevents(ct_stathdl_t stathdl);
int ct_status_get_ntime(ct_stathdl_t stathdl);
int ct_status_get_qtime(ct_stathdl_t stathdl);
ctevid_t ct_status_get_nevid(ct_stathdl_t stathdl);
uint64_t ct_status_get_cookie(ct_stathdl_t stathdl);
ctevid_t ct_status_get_informative(ct_stathdl_t stathdl);
uint_t ct_status_get_critical(ct_stathdl_t stathdl);
These functions operate on contract status file descriptors obtained from the contract(5) file system and status object handles returned by ct_status_read().
The ct_status_read() function reads the contract's status and initializes the status object handle pointed to by stathdlp. After a successful call to ct_status_read(), the caller is responsible for calling ct_status_free() on this status object handle when it has finished using it. Because the amount of information available for a contract might be large, the detail argument allows the caller to specify how much information ct_status_read() should obtain. A value of CTD_COMMON fetches only those data accessible by the functions on this manual page. CTD_FIXED fetches CTD_COMMON data as well as fixed-size contract type-specific data. CTD_ALL fetches CTD_FIXED data as well as variable lengthed data, such as arrays. See the manual pages for contract type-specific status accessor functions for information concerning which data are fetched by CTD_FIXED and CTD_ALL.
The ct_status_free() function frees any storage associated with the specified status object handle.
The remaining functions all return contract information obtained from a status object.
The ct_status_get_id() function returns the contract's ID.
The ct_status_get_zoneid() function returns the contract's creator's zone ID, or −1 if the creator's zone no longer exists.
The ct_status_get_type() function returns the contract's type. The string should be neither modified nor freed.
The ct_status_get_state() function returns the state of the contract. Valid state values are:
CTS_OWNED
CTS_INHERITED
CTS_ORPHAN
CTS_DEAD
The ct_status_get_holder() function returns the process ID of the contract's owner if the contract is in the CTS_OWNED state, or the ID of the regent process contract if the contract is in the CTS_INHERITED state.
The ct_status_get_nevents() function returns the number of unacknowledged critical events on the contract's event queue.
The ct_status_get_ntime() function returns the amount of time remaining (in seconds) before the ongoing exit negotiation times out, or -1 if there is no negotiation ongoing.
The ct_status_get_qtime() function returns the amount of time remaining (in seconds) in the quantum before the ongoing exit negotiation times out, or -1 if there is no negotiation ongoing.
The ct_status_get_nevid() function returns the event ID of the ongoing negotiation, or 0 if there are none.
The ct_status_get_cookie() function returns the cookie term of the contract.
The ct_status_get_critical() function is used to read the critical event set term. The value is a collection of bits as described in the contract type's manual page.
The ct_status_get_informative() function is used to read the informative event set term. The value is a collection of bits as described in the contract type's manual page.
Upon successful completion, ct_status_read() returns 0. Otherwise, it returns a non-zero error value.
Upon successful completion, ct_status_get_id(), ct_status_get_type(), ct_status_get_holder(), ct_status_get_state(), ct_status_get_nevents(), ct_status_get_ntime(), ct_status_get_qtime(), ct_status_get_nevid(), ct_status_get_cookie(), ct_status_get_critical(), and ct_status_get_informative() return the data described in the DESCRIPTION.
The ct_status_read() function will fail if:
EINVAL
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Evolving |
MT-Level | Safe |
April 1, 2004 | OmniOS |