Skip Navigation Links | |
Exit Print View | |
man pages section 3: Extended Library Functions, Volume 4 Oracle Solaris 11.1 Information Library |
Extended Library Functions, Volume 4
gl_customize_completion(3TECLA)
scf_count_ranges_destroy(3SCF)
scf_decoration_get_bundle(3SCF)
scf_decoration_get_layer(3SCF)
scf_decoration_get_value(3SCF)
scf_decoration_layer_from_string(3SCF)
scf_decoration_layer_to_string(3SCF)
scf_entry_destroy_children(3SCF)
scf_instance_get_decoration(3SCF)
scf_instance_get_pg_composed(3SCF)
scf_instance_get_snapshot(3SCF)
scf_instance_is_complete(3SCF)
scf_iter_decoration_values(3SCF)
scf_iter_instance_decorations(3SCF)
scf_iter_instance_pgs_composed(3SCF)
scf_iter_instance_pgs_typed(3SCF)
scf_iter_instance_pgs_typed_composed(3SCF)
scf_iter_instance_snapshots(3SCF)
scf_iter_next_decoration(3SCF)
scf_iter_property_decorations(3SCF)
scf_iter_property_values(3SCF)
scf_iter_service_decorations(3SCF)
scf_iter_service_instances(3SCF)
scf_iter_service_pgs_typed(3SCF)
scf_iter_snaplevel_pgs_typed(3SCF)
scf_pg_get_parent_instance(3SCF)
scf_pg_get_parent_service(3SCF)
scf_pg_get_parent_snaplevel(3SCF)
scf_pg_get_underlying_pg(3SCF)
scf_property_get_decoration(3SCF)
scf_service_add_instance(3SCF)
scf_service_get_decoration(3SCF)
scf_service_get_instance(3SCF)
scf_simple_app_props_free(3SCF)
scf_simple_app_props_get(3SCF)
scf_simple_app_props_next(3SCF)
scf_simple_app_props_search(3SCF)
scf_simple_prop_next_astring(3SCF)
scf_simple_prop_next_boolean(3SCF)
scf_simple_prop_next_count(3SCF)
scf_simple_prop_next_integer(3SCF)
scf_simple_prop_next_opaque(3SCF)
scf_simple_prop_next_reset(3SCF)
scf_simple_prop_next_time(3SCF)
scf_simple_prop_next_ustring(3SCF)
scf_simple_prop_numvalues(3SCF)
scf_simple_walk_instances(3SCF)
scf_snaplevel_get_instance_name(3SCF)
scf_snaplevel_get_next_snaplevel(3SCF)
scf_snaplevel_get_parent(3SCF)
scf_snaplevel_get_scope_name(3SCF)
scf_snaplevel_get_service_name(3SCF)
scf_snapshot_get_base_snaplevel(3SCF)
scf_tmpl_error_prop_tmpl(3SCF)
scf_tmpl_error_source_fmri(3SCF)
scf_tmpl_prop_cardinality(3SCF)
scf_tmpl_prop_common_name(3SCF)
scf_tmpl_prop_description(3SCF)
scf_tmpl_prop_internal_seps(3SCF)
scf_tmpl_prop_visibility(3SCF)
scf_tmpl_value_common_name(3SCF)
scf_tmpl_value_count_range_choices(3SCF)
scf_tmpl_value_count_range_constraints(3SCF)
scf_tmpl_value_description(3SCF)
scf_tmpl_value_in_constraint(3SCF)
scf_tmpl_value_int_range_choices(3SCF)
scf_tmpl_value_int_range_constraints(3SCF)
scf_tmpl_value_name_choices(3SCF)
scf_tmpl_value_name_constraints(3SCF)
scf_tmpl_visibility_to_string(3SCF)
scf_transaction_destroy_children(3SCF)
scf_transaction_property_change(3SCF)
scf_transaction_property_change_type(3SCF)
scf_transaction_property_delete(3SCF)
scf_transaction_property_new(3SCF)
scf_transaction_reset_all(3SCF)
scf_value_get_as_string_typed(3SCF)
scf_value_set_from_string(3SCF)
stmfCheckHostGroupInUse(3STMF)
stmfCheckTargetGroupInUse(3STMF)
stmfFreeViewResourceList(3STMF)
stmfGetHostGroupMembers(3STMF)
stmfGetLogicalUnitProperties(3STMF)
stmfGetProviderDataProt(3STMF)
stmfGetTargetGroupMembers(3STMF)
stmfGetTargetProperties(3STMF)
stmfGetViewLuNumberList(3STMF)
stmfGetViewResourceList(3STMF)
stmfRemoveFromHostGroup(3STMF)
stmfRemoveFromTargetGroup(3STMF)
stmfSetProviderDataProt(3STMF)
sysevent_bind_handle(3SYSEVENT)
sysevent_get_attr_list(3SYSEVENT)
sysevent_get_class_name(3SYSEVENT)
sysevent_get_pub_name(3SYSEVENT)
sysevent_get_subclass_name(3SYSEVENT)
sysevent_get_vendor_name(3SYSEVENT)
sysevent_post_event(3SYSEVENT)
sysevent_subscribe_event(3SYSEVENT)
sysevent_unbind_handle(3SYSEVENT)
sysevent_unsubscribe_event(3SYSEVENT)
volmgt_feature_enabled(3VOLMGT)
XTSOLgetClientAttributes(3XTSOL)
XTSOLgetPropAttributes(3XTSOL)
XTSOLgetWorkstationOwner(3XTSOL)
XTSOLsetWorkstationOwner(3XTSOL)
zs_pset_zone_get_pset(3ZONESTAT)
zs_pset_zone_get_zone(3ZONESTAT)
zs_pset_zone_property(3ZONESTAT)
zs_pset_zone_used_cpus(3ZONESTAT)
zs_pset_zone_used_pct(3ZONESTAT)
zs_pset_zone_used_time(3ZONESTAT)
zs_resource_property(3ZONESTAT)
zs_resource_total_time(3ZONESTAT)
zs_resource_total_uint64(3ZONESTAT)
zs_resource_used_pct(3ZONESTAT)
zs_resource_used_time(3ZONESTAT)
zs_resource_used_uint64(3ZONESTAT)
zs_resource_used_zone_pct(3ZONESTAT)
zs_resource_used_zone_time(3ZONESTAT)
zs_resource_used_zone_uint64(3ZONESTAT)
zs_zone_limit_uint64(3ZONESTAT)
zs_zone_limit_used_pct(3ZONESTAT)
zs_zone_limit_used_time(3ZONESTAT)
- get decoration and layer information in the Service Configuration Facility
cc [ flag... ] file... -lscf [ library... ] #include <libscf.h> scf_decoration_t *scf_decoration_create(scf_handle_t **handle));
scf_handle_t *scf_decoration_handle(const scf_decoration_t *dec);
void scf_decoration_destroy(scf_decoration_t *dec);
int scf_service_get_decoration(const scf_service_t *, scf_decoration_layer_t , scf_decoration_t *dec);
int scf_instance_get_decoration(const scf_instance_t *inst, scf_decoration_layer_t layer, scf_decoration_t *dec);
int scf_pg_get_decoration(const scf_propertygroup_t *pg, scf_decoration_layer_t layer, scf_decoration_t *dec);
int scf_property_get_decoration(const scf_property_t *prop, scf_decoration_layer_t layer layer, scf_decoration_t *dec);
int scf_property_get_value_at_layer(const scf_property_t *prop, scf_decoration_layer_t layer layer, scf_value_t *v);
int scf_iter_service_decorations(scf_iter_t *iter, const scf_service_t *svc, int flags);
int scf_iter_instance_decorations(scf_iter_t *iter, const scf_instance_t *inst, int flags);
int scf_iter_pg_decorations(scf_iter_t *iter, const scf_propertygroup_t *pg, int flags);
int scf_iter_property_decorations(scf_iter_t *iter, const scf_property_t *);
int scf_iter_decoration_values(scf_iter_t *, const scf_decoration_t *dec);
int scf_iter_next_decoration(scf_iter_t *iter, scf_decoration_t *out);
ssize_t scf_decoration_get_bundle(const scf_decoration_t *dec, char *out, size_t len);
int scf_decoration_get_layer(const scf_decoration_t *dec, scf_decoration_layer_t *out);
const char *scf_decoration_layer_to_string(scf_decoration_layer_t layer);
scf_decoration_layer_t scf_decoration_layer_from_string(const char *layer);
int scf_decoration_is_type(const scf_decoration_t *dec, scf_type_t base_arg);
int scf_decoration_type(const scf_decoration_t *dec, scf_type_t *out);
int scf_decoration_get_value(const scf_decoration_t *dec, scf_value_t *v);
The scf_decoration_*() functions allow libscf(3LIB) consumers to explore decorations of each type of libscf entity. Basic _get interfaces are provided, along with iterators for all decorations on an entity.
Decorations are metadata about entities within libscf. A single entity may have multiple decorations in the repository to describe metadata about what files or actions contributed to that entity. These decorations are disambiguated by their layer. Only four layers are used, though more may be added later: admin, site-profile, system-profile, and manifest.
These layers are ordered, with the admin layer overriding the site-profile layer, and down to the manifest layer as the lowest layer.
All property reading libscf interfaces will get the value of properties contributed only by the highest layer. All property writing libscf interfaces will change values in only the administrative layer. The interfaces documented here allow access to layers explicitly.
Additionally, decorations are completely general, and in the future non-layer decorations may be added to capture other metadata.
An scf_decoration_t is an opaque handle that can be set to a single decoration at any given time. The scf_decoration_create() function allocates and initializes a new scf_decoration_t bound to a handle. The scf_decoration_destroy() function destroys and frees the decoration. The scf_decoration_handle() function retrieves the handle to which the decoration is bound.
The scf_decoration_layer_t describes specific layers:
SCF_DECORATION_ADMIN is the admin layer.
SCF_DECORATION_SITE_PROFILE is the site-profile layer.
SCF_DECORATION_SYSTEM_PROFILE is the system-profile layer.
SCF_DECORATION_MANIFEST is the manifest layer.
The scf_service_get_decoration(), scf_instance_get_decoration(), scf_pg_get_decoration(), and scf_property_get_decoration() functions take an entity and an scf_decoration_layer_t in order to retrieve the decoration at the requested layer. The layer may also be defined as SCF_DECORATION_TOP to get the topmost layer.
The scf_property_get_value_at_layer() function retrieves the scf_value_t at the defined layer.
The scf_iter_service_decorations(), scf_iter_instance_decorations(), scf_iter_pg_decorations(), scf_iter_property_decorations(), and scf_iter_decoration_values() functions take an iterator created by scf_iter_create(3SCF) and start the iteration over all decorations on the supplied entity. The scf_iter_next_decoration() function gets the next decoration.
A set of functions offer access to information about a retrieved decoration. The scf_decoration_get_bundle() function retrieves the file, if any, that a decoration was created from.
The scf_decoration_get_layer() and scf_decoration_layer_from_string() functions retrieve the layer information. The scf_decoration_layer_to_string() function retrieves the layer information in string form.
Values within a decoration, if any, and their types can be retrieved with scf_decoration_is_type(), scf_decoration_type(), and scf_decoration_get_value().
Upon successful completion, scf_decoration_create() returns a new scf_property_t. Upon successful completion, scf_decoration_handle() returns an scf_handle_t. Otherwise, they return NULL.
Upon successful completion, scf_service_get_decoration(), scf_instance_get_decoration(), scf_pg_get_decoration(), scf_property_get_decoration(), and scf_property_get_value_at_layer() return 0. Otherwise, they return -1.
Upon successful completion, scf_iter_service_decorations(), scf_iter_instance_decorations(), scf_iter_pg_decorations(), scf_iter_property_decorations(), and scf_iter_decoration_values() return 0. Otherwise, they return -1.
Upon successful completion, scf_iter_next_decoration() returns 1. If the iterator is complete, it returns 0. Otherwise, it returns -1.
Upon successful completion scf_decoration_get_bundle() returns the length of the string written, not including the terminating null byte. Otherwise, it returns -1.
Upon successful completion, scf_decoration_get_layer(), scf_decoration_type(), scf_decoration_get_value(), and scf_decoration_is_type() return 0. On error, they return -1.
The scf_decoration_create() function will fail if:
The value of the handle argument is NULL.
There is not enough memory to allocate an scf_decoration_t.
The server does not have adequate resources for a new property handle.
The scf_decoration_handle() function will fail if:
The handle associated with prop has been destroyed.
The scf_service_get_decoration(), scf_instance_get_decoration(), scf_pg_get_decoration(), and scf_property_get_decoration() functions will fail if:
Multiple decorations are available at the specified layer.
The scf_service_get_decoration(), scf_instance_get_decoration(), scf_pg_get_decoration(), scf_property_get_decoration(), scf_property_get_value_at_layer(), scf_decoration_get_bundle(), and scf_decoration_get_value() functions will fail if:
The storage mechanism that the repository server (svc.configd(1M)) chose for the operation denied access.
The connection to the repository was lost.
The entity or an ancestor has been deleted.
The decoration and entity are not derived from the same handle.
An internal error occurred.
The entity is not the correct type.
The server does not have the resources to complete the request.
The handle was never bound or has been unbound.
The entity is not set.
The scf_iter_service_decorations(), scf_iter_instance_decorations(), scf_iter_pg_decorations(), scf_iter_property_decorations(), scf_iter_decoration_values(), and scf_iter_next_decoration() functions will fail if:
The parent has been deleted.
The parent is not set.
The handle is not bound.
The server does not have the resources to complete the request.
The connection to the repository was lost.
The iter and parent arguments are not derived from the same handle.
The scf_iter_next_decoration() function will fail if:
The requested object type does not match the type the iterator is walking.
The scf_decoration_get_layer(), scf_decoration_type(), and scf_decoration_is_type() functions will fail if:
The handle was never bound or has been unbound.
The parent has been deleted.
The parent is not set.
An internal error occurred.
The connection to the repository was lost.
The scf_decoration_is_type() function will fail if:
The type argument is not a valid type.
The prop argument is not of a type compatible with type.
The scf_error(3SCF) function can be used to retrieve the error value.
See attributes(5) for descriptions of the following attributes:
|
svc.configd(1M), libscf(3LIB), scf_error(3SCF), scf_iter_create(3SCF), attributes(5)