CT_DEV_STATUS_GET_DEV_STATE(3CONTRACT) Contract Management Library Functions
NAME
ct_dev_status_get_dev_state, ct_dev_status_get_aset,
ct_dev_status_get_minor, ct_dev_status_get_noneg - read contract
status information from a status object
SYNOPSIS
cc [
flag... ]
file...
-D_LARGEFILE64_SOURCE -lcontract [
library... ]
#include <libcontract.h>
#include <sys/contract/device.h>
int ct_dev_status_get_dev_state(
ct_stathdl_t stathdl,
uint_t *statep);
int ct_dev_status_get_aset(
ct_stathdl_t stathdl,
uint_t *asetp);
int ct_dev_status_get_minor(
ct_stathdl_t stathdl,
char *buf,
size_t *buflenp);
int ct_dev_status_get_noneg(
ct_stathdl_t stathdl,
uint_t *nonegp);
PARAMETERS
asetp a pointer to a
uint_t variable for receiving the
acceptable state set (such as A-set) for the contract
buf a buffer for receiving the
devfs path of a minor in a
contract
buflenp a pointer to a variable of type
size_t for passing the
size of the buffer
buf. If the buffer is too small (<
PATH_MAX), the minimum size of the buffer needed
(
PATH_MAX) is passed back to the caller with this
argument.
nonegp a pointer to a
uint_t variable for receiving the setting
of the "noneg" term
stathdl a status object returned by
ct_status_read(3CONTRACT) statep a pointer to a
uint_t variable for receiving the current
state of the device which is the subject of the contract
DESCRIPTION
These functions read contract status information from a status object
stathdl returned by
ct_status_read(). The detail level in the call to
ct_status_read() needs to be at least
CTD_FIXED for the following
calls to be successful. The one exception is
ct_dev_status_get_minor(), which requires a detail level of
CTD_ALL.
The
ct_dev_status_get_dev_state() function returns the current state
of the device which is the subject of the contract. This can be one
of the following:
CT_DEV_EV_ONLINE The device is online and functioning normally.
CT_DEV_EV_DEGRADED The device is online but degraded.
CT_DEV_EV_OFFLINE The device is offline and not configured.
The
ct_dev_status_get_aset() function returns the A-set of the
contract. This can be the bitset of one or more of the following
states:
CT_DEV_EV_ONLINE,
CT_DEV_EV_DEGRADED, or
CT_DEV_EV_OFFLINE.
The
ct_dev_status_get_minor() function reads the
devfs path of the
minor participating in the contract. The
devfs path returned does not
include the
/devices prefix. If the buffer passed in by the caller is
too small (<
PATH_MAX), the minimum size of the buffer required (
PATH_MAX) is returned to the caller via the
buflenp argument.
The
ct_dev_status_get_noneg() function returns the "noneg" setting
for the contract. A value of 1 is returned in the
nonegp argument if
NONEG is set, else 0 is returned.
RETURN VALUES
Upon successful completion, these functions return 0. Otherwise, they
return a non-zero error value.
ERRORS
The
ct_dev_status_get_minor() function will fail if:
EOVERFLOW The buffer size is too small to hold the result.
The
ct_dev_status_get_dev_state(),
ct_dev_status_get_aset(),
ct_dev_status_get_minor() and
ct_dev_status_get_noneg() functions
will fail if:
EINVAL An invalid argument was specified.
ENOENT The requested data is not present in the status object.
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),
devices(5),
attributes(7),
lfcompile(7) August 9, 2007
CT_DEV_STATUS_GET_DEV_STATE(3CONTRACT)