CT_DEV_TMPL_SET_ASET(3CONTRACT) | Contract Management Library Functions | CT_DEV_TMPL_SET_ASET(3CONTRACT) |
cc [ flag... ] file... -D_LARGEFILE64_SOURCE -lcontract [ library... ] #include <libcontract.h> #include <sys/contract/device.h> int ct_dev_tmpl_set_aset(int fd, uint_t aset);
int ct_dev_tmpl_get_aset(int fd, uint_t *asetp);
int ct_dev_tmpl_set_minor(int fd, char *minor);
int ct_dev_tmpl_get_minor(int fd, char *buf, size_t *buflenp);
int ct_dev_tmpl_set_noneg(int fd);
int ct_dev_tmpl_clear_noneg(int fd);
int ct_dev_tmpl_get_noneg(int fd, uint_t *nonegp);
asetp
buf
buflenp
fd
minor
nonegp
The ct_dev_tmpl_set_aset() and ct_dev_tmpl_get_aset() functions write and read the "acceptable states" set (or A-set for short). This is the set of device states guaranteed by the contract. Any departure from these states will result in the breaking of the contract and a delivery of a critical contract event to the contract holder. The A-set value is a bitset of one or more of the following device states: CT_DEV_EV_ONLINE, CT_DEV_EV_DEGRADED, and CT_DEV_EV_OFFLINE.
The ct_dev_tmpl_set_minor() and ct_dev_tmpl_get_minor() functions write and read the minor term (the device resource that is to be the subject of the contract.) The value is a devfs path to a device minor node (minus the "/devices" prefix). For the ct_dev_tmpl_get_minor() function, a buffer at least PATH_MAX in size must be passed in. If the buffer is smaller than PATH_MAX, then the minimum size of the buffer required (PATH_MAX) for this function is passed back to the caller via the buflenp argument.
The ct_dev_tmpl_set_noneg() and ct_dev_tmpl_get_noneg() functions write and read the nonnegotiable term. If this term is set, synchronous negotiation events are automatically NACKed on behalf of the contract holder. For ct_dev_tmpl_get_noneg(), the variable pointed to by nonegp is set to 1 if the "noneg" term is set or to 0 otherwise. The ct_dev_tmpl_clear_noneg() term clears the nonnegotiable term from a template.
EINVAL
The ct_dev_tmpl_set_minor() function will fail if:
EINVAL
ENXIO
The ct_dev_tmpl_set_noneg() function will fail if:
EPERM
The ct_dev_tmpl_get_aset() and ct_dev_tmpl_get_minor() functions will fail if:
EINVAL
ENOENT
The ct_dev_tmpl_get_noneg() function will fail if:
EINVAL
The ct_dev_tmpl_get_minor() function will fail if:
EOVERFLOW
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Committed |
MT-Level | Safe |
August 9, 2007 | OmniOS |