pool_resource_create, pool_resource_destroy, pool_resource_info, pool_query_resource_components, pool_resource_transfer, pool_resource_xtransfer - resource pool resource manipulation functions
cc [ flag… ] file… –lpool [ library… ] #include <pool.h> pool_resource_t *pool_resource_create(pool_conf_t *conf, const char *type, const char *name);
int pool_resource_destroy(pool_conf_t *conf, pool_resource_t *resource);
const char *pool_resource_info(pool_conf_t *conf pool_resource_t *resource, int flags);
pool_component_t **pool_query_resource_components( pool_conf_t *conf, pool_resource_t *resource, uint_t *nelem, pool_value_t **props);
int pool_resource_transfer(pool_conf_t *conf, pool_resource_t *source, pool_resource_t *target, uint64_t size);
int pool_resource_xtransfer(pool_conf_t *conf, pool_resource_t *source, pool_resource_t *target, pool_component_t **components);
The pool_resource_create() function creates and returns a new resource of the given name and type in the provided configuration. If there is already a resource of the given name, the operation will fail. The only resource type is pset.
The pool_resource_destroy() function removes the specified resource from its configuration file. pset resources created by the pset_create() system call cannot be destroyed by this API. See pset_create(2) for destroying such resources.
The pool_resource_info() function returns a string describing the given resource. The string is allocated with malloc(3C). The caller is responsible for freeing the returned string. If the flags argument is non-zero, the string returned also describes the components (if any) contained in the resource.
The pool_query_resource_components() function returns a null-terminated array of the components (if any) that comprise the given resource. Components represent CPUs.
The pool_resource_transfer() function transfers size CPUs from the source pset to the target. Both psets must have property pset.restype equal to cpu. Transferring CPUs is always performed as series of pool_resource_xtransfer() operations, since discrete CPUs must be identified for transfer.
The pool_resource_xtransfer() function transfers the specific CPUs from the source pset to the target. Both psets must be have property pset.restype equal to cpu. The components argument is a null-terminated list of values of type pool_component_t.
The transfer functions cannot transfer components between pset resources created by the pset_create() system call. Use pset_assign(2) to manipulate such psets and CPUs.
The conf argument for each function refers to the target configuration to which the operation applies.
Upon successful completion, pool_resource_create() returns a new pool_resource_t with default properties initialized. Otherwise, NULL is returned and pool_error(3POOL) returns the pool-specific error value.
Upon successful completion, pool_resource_destroy() returns 0. Otherwise, -1 is returned and pool_error() returns the pool-specific error value.
Upon successful completion, pool_resource_info() returns a string describing the given resource (and optionally its components). Otherwise, NULL is returned and pool_error() returns the pool-specific error value.
Upon successful completion, pool_query_resource_components() returns a null-terminated array of pool_component_t * that match the provided null-terminated property list and are contained in the given resource. Otherwise, NULL is returned and pool_error() returns the pool-specific error value.
Upon successful completion, pool_resource_transfer() and pool_resource_xtransfer() return 0. Otherwise -1 is returned and pool_error() returns the pool-specific error value.
The pool_resource_create() function will fail if:
The supplied configuration's status is not POF_VALID or name is in use for this resource type.
The name of the resource starts with "SYS", which is a reserved namespace.
The resource element could not be created because the configuration conf would be invalid.
One of the supplied properties could not be set.
A system error has occurred. Check the system error code for more details.
The pool_resource_destroy() function will fail if:
The supplied configuration's status is not POF_VALID.
A system error has occurred. Check the system error code for more details.
The target resource is a pset created by the pset_create() system call. Errno will be set to ENOTSUP.
The pool_resource_info() function will fail if:
The supplied configuration's status is not POF_VALID or the flags parameter is neither 0 nor 1.
The configuration conf is invalid.
A system error has occurred. Check the system error code for more details.
The pool_query_resource_components() function will fail if:
The supplied configuration's status is not POF_VALID.
The configuration conf is invalid.
A system error has occurred. Check the system error code for more details.
The pool_resource_transfer() function will fail if:
The supplied configuration's status is not POF_VALID, the two resources are not of the same type, or the transfer would cause either of the resources to exceed their min and max properties.
A system error has occurred. Check the system error code for more details.
Errno will be set to ENOTSUP if the source or target pset is a pset created by the pset_create() system call.
The pool_resource_xtransfer() function will fail if:
The supplied configuration's status is not POF_VALID, the two resources are not of the same type, or the supplied components do not belong to the source.
The transfer operation failed and the configuration may be invalid.
A system error has occurred. Check the system error code for more details.
Errno will be set to ENOTSUP if the source or target pset is a pset created by the pset_create() system call.
#include <pool.h> #include <stdio.h> ... pool_conf_t *conf; pool_resource_t *resource; ... if ((resource = pool_resource_create(conf, "pset", "foo")) == NULL) { (void) fprintf(stderr, "Cannot create resource\n"); ... }
See attributes(7) for descriptions of the following attributes:
|