ct_dev_tmpl_set_aset, ct_dev_tmpl_get_aset, ct_dev_tmpl_set_minor, ct_dev_tmpl_get_minor, ct_dev_tmpl_set_noneg, ct_dev_tmpl_clear_noneg, ct_dev_tmpl_get_noneg - device contract template functions
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);
aset
asetp
buf
buflenp
fd
minor
nonegp
These functions read and write device contract terms and operate on device contract template file descriptors obtained from the contract(4) filesystem (ctfs).
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.
Upon successful completion, these functions return 0. Otherwise, they return a non-zero error value.
The ct_dev_tmpl_set_aset() function will fail if:
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:
EOVEFLOW
See attributes(5) for descriptions of the following attributes:
|
libcontract(3LIB), contract(4), devices(4), attributes(5), lfcompile(5)
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |