POOL_WALK_COMPONENTS(3POOL) Pool Configuration Manipulation Library Functions POOL_WALK_COMPONENTS(3POOL)

pool_walk_components, pool_walk_pools, pool_walk_resources - walk objects within resource pool configurations

cc [ flag... ] file... -lpool [ library... ]
#include <pool.h>
int pool_walk_components(pool_conf_t *conf,
     pool_resource_t *resource, void *arg,
     int (*callback)(pool_conf_t *, pool_resource_t *, void *));

int pool_walk_pools(pool_conf_t *conf, void *arg,
     int (*callback)(pool_conf_t *, pool_component_t *, void *));

int pool_walk_resources(pool_conf_t *conf, pool_t *pool,
     void *arg, int (*callback)(pool_conf_t *,
     pool_component_t *, void *));

The walker functions provided with libpool(3LIB) visit each associated entity of the given type, and call the caller-provided callback function with a user-provided additional opaque argument. There is no implied order of visiting nodes in the walk. If the callback function returns a non-zero value at any of the nodes, the walk is terminated, and an error value of -1 returned. The conf argument for each function refers to the target configuration to which the operation applies.

The pool_walk_components() function invokes callback on all components contained in the resource.

The pool_walk_pools() function invokes callback on all pools defined in the configuration.

The pool_walk_resources() function invokes callback function on all resources associated with pool.

Upon successful completion of the walk, these functions return 0. Otherwise -1 is returned and pool_error(3POOL) returns the pool-specific error value.

These functions 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.

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
CSI Enabled
Interface Stability Unstable
MT-Level Safe

libpool(3LIB), pool_error(3POOL), attributes(7)

July 18, 2005 OmniOS