POOL_RESOURCE_CREATE(3POOL)
Pool Configuration Manipulation Library Functions
NAME
pool_resource_create, pool_resource_destroy, pool_resource_info,
pool_query_resource_components, pool_resource_transfer,
pool_resource_xtransfer - resource pool resource manipulation
functions
SYNOPSIS
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);
DESCRIPTION
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
pool_resource_destroy() function removes the specified
resource from its configuration file.
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.
The
pool_resource_transfer() function transfers
size basic units from
the
source resource to the
target. Both resources must be of the same
type for the operation to succeed. Transferring component resources,
such as processors, is always performed as series of
pool_resource_xtransfer() operations, since discrete resources must
be identified for transfer.
The
pool_resource_xtransfer() function transfers the specific
components from the
source resource to the
target. Both resources
must be of the same type, and of a type that contains components
(such as processor sets). The
components argument is a null-
terminated list of
pool_component_t.
The
conf argument for each function refers to the target
configuration to which the operation applies.
RETURN VALUES
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.
ERRORS
The
pool_resource_create() function will fail if:
POE_BADPARAM The supplied configuration's status is not
POF_VALID or
name is in use for this resource
type.
POE_INVALID_CONF The resource element could not be created because
the configuration would be invalid.
POE_PUTPROP One of the supplied properties could not be set.
POE_SYSTEM A system error has occurred. Check the system
error code for more details.
The
pool_resource_destroy() function will fail if:
POE_BADPARAM The supplied configuration's status is not
POF_VALID.
The
pool_resource_info() function will fail if:
POE_BADPARAM The supplied configuration's status is not
POF_VALID or the
flags parameter is neither 0 nor
1.
POE_INVALID_CONF The configuration is invalid.
POE_SYSTEM A system error has occurred. Check the system
error code for more details.
The
pool_query_resource_components() function will fail if:
POE_BADPARAM The supplied configuration's status is not
POF_VALID.
POE_INVALID_CONF The configuration is invalid.
POE_SYSTEM A system error has occurred. Check the system
error code for more details.
The
pool_resource_transfer() function will fail if:
POE_BADPARAM 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.
POE_SYSTEM A system error has occurred. Check the system error
code for more details.
The
pool_resource_xtransfer() function will fail if:
POE_BADPARAM The supplied configuration's status is not
POF_VALID, the two resources are not of the same
type, or the supplied resources do not belong to
the source.
POE_INVALID_CONF The transfer operation failed and the
configuration may be invalid.
POE_SYSTEM A system error has occurred. Check the system
error code for more details.
EXAMPLES
Example 1: Create a new resource of type pset named foo.
#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");
...
}
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|CSI | Enabled |
+--------------------+-----------------+
|Interface Stability | Unstable |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
SEE ALSO
libpool(3LIB),
pool_error(3POOL),
attributes(7) January 18, 2020 POOL_RESOURCE_CREATE(3POOL)