JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
man pages section 3: Extended Library Functions
search filter icon
search icon

Document Information

Preface

Extended Library Functions - Part 1

Extended Library Functions - Part 2

Extended Library Functions - Part 3

Extended Library Functions - Part 4

Extended Library Functions - Part 5

pool_value_get_type(3POOL)

pool_value_get_uint64(3POOL)

pool_value_set_bool(3POOL)

pool_value_set_double(3POOL)

pool_value_set_int64(3POOL)

pool_value_set_name(3POOL)

pool_value_set_string(3POOL)

pool_value_set_uint64(3POOL)

pool_version(3POOL)

pool_walk_components(3POOL)

pool_walk_pools(3POOL)

pool_walk_properties(3POOL)

pool_walk_resources(3POOL)

pow(3M)

powf(3M)

powl(3M)

ppc_file_start(3TECLA)

ppc_literal_escapes(3TECLA)

printDmiAttributeValues(3DMI)

printDmiDataUnion(3DMI)

printDmiString(3DMI)

Privilege(3PERL)

Project(3PERL)

project_walk(3PROJECT)

ptree_add_node(3PICLTREE)

ptree_add_prop(3PICLTREE)

ptree_add_row_to_table(3PICLTREE)

ptree_create_and_add_node(3PICLTREE)

ptree_create_and_add_prop(3PICLTREE)

ptree_create_node(3PICLTREE)

ptree_create_prop(3PICLTREE)

ptree_create_table(3PICLTREE)

ptree_delete_node(3PICLTREE)

ptree_delete_prop(3PICLTREE)

ptree_destroy_node(3PICLTREE)

ptree_destroy_prop(3PICLTREE)

ptree_find_node(3PICLTREE)

ptree_get_first_prop(3PICLTREE)

ptree_get_frutree_parent(3PICLTREE)

ptree_get_next_by_col(3PICLTREE)

ptree_get_next_by_row(3PICLTREE)

ptree_get_next_prop(3PICLTREE)

ptree_get_node_by_path(3PICLTREE)

ptree_get_prop_by_name(3PICLTREE)

ptree_get_propinfo(3PICLTREE)

ptree_get_propinfo_by_name(3PICLTREE)

ptree_get_propval(3PICLTREE)

ptree_get_propval_by_name(3PICLTREE)

ptree_get_root(3PICLTREE)

ptree_init_propinfo(3PICLTREE)

ptree_post_event(3PICLTREE)

ptree_register_handler(3PICLTREE)

ptree_unregister_handler(3PICLTREE)

ptree_update_propval(3PICLTREE)

ptree_update_propval_by_name(3PICLTREE)

ptree_walk_tree_by_class(3PICLTREE)

rd_delete(3EXT)

rd_errstr(3EXT)

rd_event_addr(3EXT)

rd_event_enable(3EXT)

rd_event_getmsg(3EXT)

rd_init(3EXT)

rd_loadobj_iter(3EXT)

rd_log(3EXT)

rd_new(3EXT)

rd_objpad_enable(3EXT)

rd_plt_resolution(3EXT)

rd_reset(3EXT)

read_vtoc(3EXT)

reg_ci_callback(3DMI)

regexpr(3GEN)

remainder(3M)

remainderf(3M)

remainderl(3M)

remquo(3M)

remquof(3M)

remquol(3M)

rint(3M)

rintf(3M)

rintl(3M)

rmdirp(3GEN)

round(3M)

roundf(3M)

roundl(3M)

rsm_create_localmemory_handle(3RSM)

rsm_free_interconnect_topology(3RSM)

rsm_free_localmemory_handle(3RSM)

rsm_get_controller(3RSM)

rsm_get_controller_attr(3RSM)

rsm_get_interconnect_topology(3RSM)

rsm_get_segmentid_range(3RSM)

rsm_intr_signal_post(3RSM)

rsm_intr_signal_wait(3RSM)

rsm_intr_signal_wait_pollfd(3RSM)

rsm_memseg_export_create(3RSM)

rsm_memseg_export_destroy(3RSM)

rsm_memseg_export_publish(3RSM)

rsm_memseg_export_rebind(3RSM)

rsm_memseg_export_republish(3RSM)

rsm_memseg_export_unpublish(3RSM)

rsm_memseg_get_pollfd(3RSM)

rsm_memseg_import_close_barrier(3RSM)

rsm_memseg_import_connect(3RSM)

rsm_memseg_import_destroy_barrier(3RSM)

rsm_memseg_import_disconnect(3RSM)

rsm_memseg_import_get16(3RSM)

rsm_memseg_import_get32(3RSM)

rsm_memseg_import_get(3RSM)

rsm_memseg_import_get64(3RSM)

rsm_memseg_import_get8(3RSM)

rsm_memseg_import_get_mode(3RSM)

rsm_memseg_import_getv(3RSM)

rsm_memseg_import_init_barrier(3RSM)

rsm_memseg_import_map(3RSM)

rsm_memseg_import_open_barrier(3RSM)

rsm_memseg_import_order_barrier(3RSM)

rsm_memseg_import_put16(3RSM)

rsm_memseg_import_put32(3RSM)

rsm_memseg_import_put(3RSM)

rsm_memseg_import_put64(3RSM)

rsm_memseg_import_put8(3RSM)

rsm_memseg_import_putv(3RSM)

rsm_memseg_import_set_mode(3RSM)

rsm_memseg_import_unmap(3RSM)

rsm_memseg_release_pollfd(3RSM)

rsm_release_controller(3RSM)

rtld_audit(3EXT)

rtld_db(3EXT)

sbcleartos(3TSOL)

sbltos(3TSOL)

sbsltos(3TSOL)

scalb(3M)

scalbf(3M)

scalbl(3M)

scalbln(3M)

scalblnf(3M)

scalblnl(3M)

scalbn(3M)

scalbnf(3M)

scalbnl(3M)

SCF_Card_close(3SMARTCARD)

SCF_Card_exchangeAPDU(3SMARTCARD)

SCF_Card_freeInfo(3SMARTCARD)

SCF_Card_getInfo(3SMARTCARD)

SCF_Card_lock(3SMARTCARD)

SCF_Card_reset(3SMARTCARD)

SCF_Card_unlock(3SMARTCARD)

SCF_Card_waitForCardRemoved(3SMARTCARD)

scf_entry_add_value(3SCF)

scf_entry_create(3SCF)

scf_entry_destroy(3SCF)

scf_entry_destroy_children(3SCF)

scf_entry_handle(3SCF)

scf_entry_reset(3SCF)

scf_error(3SCF)

scf_handle_bind(3SCF)

scf_handle_create(3SCF)

scf_handle_decode_fmri(3SCF)

scf_handle_decorate(3SCF)

scf_handle_destroy(3SCF)

scf_handle_get_scope(3SCF)

scf_handle_unbind(3SCF)

scf_instance_add_pg(3SCF)

scf_instance_create(3SCF)

scf_instance_delete(3SCF)

scf_instance_destroy(3SCF)

scf_instance_get_name(3SCF)

scf_instance_get_parent(3SCF)

scf_instance_get_pg(3SCF)

scf_instance_get_pg_composed(3SCF)

scf_instance_get_snapshot(3SCF)

scf_instance_handle(3SCF)

scf_instance_to_fmri(3SCF)

scf_iter_create(3SCF)

scf_iter_destroy(3SCF)

scf_iter_handle(3SCF)

scf_iter_handle_scopes(3SCF)

scf_iter_instance_pgs(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_instance(3SCF)

scf_iter_next_pg(3SCF)

scf_iter_next_property(3SCF)

scf_iter_next_scope(3SCF)

scf_iter_next_service(3SCF)

scf_iter_next_snapshot(3SCF)

scf_iter_next_value(3SCF)

scf_iter_pg_properties(3SCF)

scf_iter_property_values(3SCF)

scf_iter_reset(3SCF)

scf_iter_scope_services(3SCF)

scf_iter_service_instances(3SCF)

scf_iter_service_pgs(3SCF)

scf_iter_service_pgs_typed(3SCF)

scf_iter_snaplevel_pgs(3SCF)

scf_iter_snaplevel_pgs_typed(3SCF)

scf_limit(3SCF)

scf_myname(3SCF)

scf_pg_create(3SCF)

scf_pg_delete(3SCF)

scf_pg_destroy(3SCF)

scf_pg_get_flags(3SCF)

scf_pg_get_name(3SCF)

scf_pg_get_parent_instance(3SCF)

scf_pg_get_parent_service(3SCF)

scf_pg_get_parent_snaplevel(3SCF)

scf_pg_get_property(3SCF)

scf_pg_get_type(3SCF)

scf_pg_get_underlying_pg(3SCF)

scf_pg_handle(3SCF)

scf_pg_to_fmri(3SCF)

scf_pg_update(3SCF)

scf_property_create(3SCF)

scf_property_destroy(3SCF)

scf_property_get_name(3SCF)

scf_property_get_value(3SCF)

scf_property_handle(3SCF)

scf_property_is_type(3SCF)

scf_property_to_fmri(3SCF)

scf_property_type(3SCF)

scf_scope_add_service(3SCF)

scf_scope_create(3SCF)

scf_scope_destroy(3SCF)

scf_scope_get_name(3SCF)

scf_scope_get_service(3SCF)

scf_scope_handle(3SCF)

scf_scope_to_fmri(3SCF)

scf_service_add_instance(3SCF)

scf_service_add_pg(3SCF)

scf_service_create(3SCF)

scf_service_delete(3SCF)

scf_service_destroy(3SCF)

scf_service_get_instance(3SCF)

scf_service_get_name(3SCF)

scf_service_get_parent(3SCF)

scf_service_get_pg(3SCF)

scf_service_handle(3SCF)

scf_service_to_fmri(3SCF)

SCF_Session_close(3SMARTCARD)

SCF_Session_freeInfo(3SMARTCARD)

SCF_Session_getInfo(3SMARTCARD)

SCF_Session_getSession(3SMARTCARD)

SCF_Session_getTerminal(3SMARTCARD)

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_free(3SCF)

scf_simple_prop_get(3SCF)

scf_simple_prop_name(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_prop_pgname(3SCF)

scf_simple_prop_type(3SCF)

scf_simple_walk_instances(3SCF)

scf_snaplevel_create(3SCF)

scf_snaplevel_destroy(3SCF)

scf_snaplevel_get_instance_name(3SCF)

scf_snaplevel_get_next_snaplevel(3SCF)

scf_snaplevel_get_parent(3SCF)

scf_snaplevel_get_pg(3SCF)

scf_snaplevel_get_scope_name(3SCF)

scf_snaplevel_get_service_name(3SCF)

scf_snaplevel_handle(3SCF)

scf_snapshot_create(3SCF)

scf_snapshot_destroy(3SCF)

scf_snapshot_get_base_snaplevel(3SCF)

scf_snapshot_get_name(3SCF)

scf_snapshot_get_parent(3SCF)

scf_snapshot_handle(3SCF)

scf_snapshot_update(3SCF)

scf_strerror(3SCF)

SCF_strerror(3SMARTCARD)

SCF_Terminal_addEventListener(3SMARTCARD)

SCF_Terminal_close(3SMARTCARD)

SCF_Terminal_freeInfo(3SMARTCARD)

SCF_Terminal_getCard(3SMARTCARD)

SCF_Terminal_getInfo(3SMARTCARD)

SCF_Terminal_removeEventListener(3SMARTCARD)

SCF_Terminal_updateEventListener(3SMARTCARD)

SCF_Terminal_waitForCardAbsent(3SMARTCARD)

SCF_Terminal_waitForCardPresent(3SMARTCARD)

scf_transaction_commit(3SCF)

scf_transaction_create(3SCF)

scf_transaction_destroy(3SCF)

scf_transaction_destroy_children(3SCF)

scf_transaction_handle(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(3SCF)

scf_transaction_reset_all(3SCF)

scf_transaction_start(3SCF)

scf_type_base_type(3SCF)

scf_value_base_type(3SCF)

scf_value_create(3SCF)

scf_value_destroy(3SCF)

scf_value_get_as_string(3SCF)

scf_value_get_as_string_typed(3SCF)

scf_value_get_astring(3SCF)

scf_value_get_boolean(3SCF)

scf_value_get_count(3SCF)

scf_value_get_integer(3SCF)

scf_value_get_opaque(3SCF)

scf_value_get_time(3SCF)

scf_value_get_ustring(3SCF)

scf_value_handle(3SCF)

scf_value_is_type(3SCF)

scf_value_reset(3SCF)

scf_value_set_astring(3SCF)

scf_value_set_boolean(3SCF)

scf_value_set_count(3SCF)

scf_value_set_from_string(3SCF)

scf_value_set_integer(3SCF)

scf_value_set_opaque(3SCF)

scf_value_set_time(3SCF)

scf_value_set_ustring(3SCF)

scf_value_type(3SCF)

sendfile(3EXT)

sendfilev(3EXT)

setac(3BSM)

setauclass(3BSM)

setauevent(3BSM)

setauthattr(3SECDB)

setauuser(3BSM)

setddent(3BSM)

setddfile(3BSM)

setexecattr(3SECDB)

setflabel(3TSOL)

setprofattr(3SECDB)

setproject(3PROJECT)

setprojent(3PROJECT)

setuserattr(3SECDB)

sha1(3EXT)

SHA1Final(3EXT)

SHA1Init(3EXT)

SHA1Update(3EXT)

sha2(3EXT)

SHA256Final(3EXT)

SHA256Init(3EXT)

SHA256Update(3EXT)

SHA2Final(3EXT)

SHA2Init(3EXT)

SHA2Update(3EXT)

SHA384Final(3EXT)

SHA384Init(3EXT)

SHA384Update(3EXT)

SHA512Final(3EXT)

SHA512Init(3EXT)

SHA512Update(3EXT)

signbit(3M)

significand(3M)

significandf(3M)

Extended Library Functions - Part 6

scf_value_create

, scf_value_handle

, scf_value_reset

, scf_value_destroy

, scf_value_type

, scf_value_base_type

, scf_value_is_type

, scf_type_base_type

, scf_value_get_boolean

, scf_value_get_count

, scf_value_get_integer

, scf_value_get_time

, scf_value_get_astring

, scf_value_get_ustring

, scf_value_get_opaque

, scf_value_get_as_string

, scf_value_get_as_string_typed

, scf_value_set_boolean

, scf_value_set_count

, scf_value_set_integer

, scf_value_set_time

, scf_value_set_from_string

, scf_value_set_astring

, scf_value_set_ustring

, scf_value_set_opaque

- manipulate values in the Service Configuration Facility

Synopsis

cc [ flag… ] file-lscf [ library… ] 
#include <libscf.h>

scf_value_t *scf_value_create(scf_handle_t *h);
scf_handle_t *scf_value_handle(scf_value_t *v);
void scf_value_reset(scf_value_t *v);
void scf_value_destroy(scf_value_t *v);
int scf_value_type(scf_value_t *v);
int scf_value_base_type(scf_value_t *v);
int scf_value_is_type(scf_value_t *v, scf_type_t type);
int scf_type_base_type(scf_type_t type, scf_type_t *out);
int scf_value_get_boolean(scf_value_t *v, uint8_t *out);
int scf_value_get_count(scf_value_t *v, uint64_t *out);
int scf_value_get_integer(scf_value_t *v, int64_t *out);
int scf_value_get_time(scf_value_t *v, int64_t *seconds,
     int32_t *ns);
ssize_t scf_value_get_astring(scf_value_t *v, char *buf,
     size_t size);
ssize_t scf_value_get_ustring(scf_value_t *v, char *buf,
     size_t size);
ssize_t scf_value_get_opaque(scf_value_t *v, char *out,
     size_t len);
ssize_t scf_value_get_as_string(scf_value_t *v, char *buf,
     size_t size);
ssize_t scf_value_get_as_string_typed(scf_value_t *v,
     scf_type_t type, char *buf, size_t size);
void scf_value_set_boolean(scf_value_t *v, uint8_t in);
void scf_value_set_count(scf_value_t *v, uint64_t in);
void scf_value_set_integer(scf_value_t *v, int64_t in);
int scf_value_set_time(scf_value_t *v, int64_t seconds,
     int32_t ns);
int scf_value_set_from_string(scf_value_t *v, scf_type_t type,
     char *in);
int scf_value_set_astring(scf_value_t *v, const char *in);
int scf_value_set_ustring(scf_value_t *v, const char *in);
int scf_value_set_opaque(scf_value_t *v, void *in, size_t sz);

Description

The scf_value_create() function creates a new, reset scf_value_t that holds a single typed value. The value can be used only with the handle specified by h and objects associated with h.

The scf_value_reset() function resets the value to the uninitialized state. The scf_value_destroy() function deallocates the object.

The scf_value_type() function retrieves the type of the contents of v. The scf_value_is_type() function determines if a value is of a particular type or any of its subtypes. The scf_type_base_type() function returns the base type of type. The scf_value_base_type() function returns the true base type of the value (the highest type reachable from the value's type).

Type Identifier
Base Type
Type Description
SCF_TYPE_INVALID
reserved invalid type
SCF_TYPE_BOOLEAN
single bit
SCF_TYPE_COUNT
unsigned 64-bit quantity
SCF_TYPE_INTEGER
signed 64-bit quantity
SCF_TYPE_TIME
signed 64-bit seconds, signed 32-bit nanoseconds in the range 0 <= ns < 1,000,000,000
SCF_TYPE_ASTRING
8-bit NUL-terminated string
SCF_TYPE_OPAQUE
opaque 8-bit data
SCF_TYPE_USTRING
ASTRING
8-bit UTF-8 string
SCF_TYPE_URI
USTRING
a URI string
SCF_TYPE_FMRI
URI
a Fault Management Resource Identifier
SCF_TYPE_HOST
USTRING
either a hostname, IPv4 address, or IPv6 address
SCF_TYPE_HOSTNAME
HOST
a fully-qualified domain name
SCF_TYPE_NET_ADDR_V4
HOST
a dotted-quad IPv4 address with optional network portion
SCF_TYPE_NET_ADDR_V6
HOST
legal IPv6 address

The scf_value_get_boolean(), scf_value_get_count(), scf_value_get_integer(), scf_value_get_time(), scf_value_get_astring(), scf_value_get_ustring(), and scf_value_get_opaque() functions read a particular type of value from v.

The scf_value_get_as_string() and scf_value_get_as_string_typed() functions convert the value to a string form. For scf_value_get_as_string_typed(), the value must be a reachable subtype of type.

The scf_value_set_boolean(), scf_value_set_count(), scf_value_set_integer(), scf_value_set_time(), scf_value_set_astring(), scf_value_set_ustring(), and scf_value_set_opaque() functions set v to a particular value of a particular type.

The scf_value_set_from_string() function is the inverse of scf_value_get_as_string(). It sets v to the value encoded in buf of type type.

The scf_value_set_*() functions will succeed on scf_value_t objects that have already been set.

Return Values

Upon successful completion, scf_value_create() returns a new, reset scf_value_t. Otherwise, it returns NULL.

Upon successful completion, scf_value_handle() returns the handle associated with v. Otherwise, it returns NULL.

The scf_value_base_type() function returns the base type of the value, or SCF_TYPE_INVALID on failure.

Upon successful completion, scf_value_type() returns the type of the value. Otherwise, it returns SCF_TYPE_INVALID.

Upon successful completion, scf_value_is_type(), scf_value_get_boolean(), scf_value_get_count(), scf_value_get_integer(), scf_value_get_time(), scf_value_set_time(), scf_value_set_from_string(), scf_value_set_astring(), scf_value_set_ustring(), and scf_value_set_opaque() return 0. Otherwise, they return -1.

Upon successful completion, scf_value_get_astring(), scf_value_get_ustring(), scf_value_get_as_string(), and scf_value_get_as_string_typed() return the length of the string written, not including the terminating null byte. Otherwise, they return -1.

Upon successful completion, scf_value_get_opaque() returns the number of bytes written. Otherwise, it returns -1.

Errors

The scf_value_create() function will fail if:

SCF_ERROR_INVALID_ARGUMENT

The handle is NULL.

SCF_ERROR_NO_MEMORY

There is not enough memory to allocate an scf_value_t.

The scf_value_handle() function will fail if:

SCF_ERROR_HANDLE_DESTROYED

The handle associated v has been destroyed.

The scf_value_set_time() function will fail if:

SCF_ERROR_INVALID_ARGUMENT

The nanoseconds field is not in the range 0 <= ns < 1,000,000,000.

The scf_type_base_type() function will fail if:

SCF_ERROR_INVALID_ARGUMENT

The type argument is not a valid type.

The scf_value_set_astring(), scf_value_set_ustring(), scf_value_set_opaque(), and scf_value_set_from_string() functions will fail if:

SCF_ERROR_INVALID_ARGUMENT

The in argument is not a valid value for the specified type or is longer than the maximum supported value length.

The scf_type_base_type(), scf_value_is_type(), and scf_value_get_as_string_typed() functions will fail if:

SCF_ERROR_INVALID_ARGUMENT

The type argument is not a valid type.

The scf_value_type(), scf_value_base_type(), scf_value_get_boolean(), scf_value_get_count(), scf_value_get_integer(), scf_value_get_time(), scf_value_get_astring(), scf_value_get_ustring(), scf_value_get_as_string(), andscf_value_get_as_string_typed() functions will fail if:

SCF_ERROR_NOT_SET

The v argument has not been set to a value.

The scf_value_get_boolean(), scf_value_get_count(), scf_value_get_integer(), scf_value_get_time(), scf_value_get_astring(), scf_value_get_ustring(), and scf_value_get_as_string_typed() functions will fail if:

SCF_ERROR_TYPE_MISMATCH

The requested type is not the same as the value's type and is not in the base-type chain.

The scf_error(3SCF) function can be used to retrieve the error value.

Attributes

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

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
Safe

See Also

libscf(3LIB), scf_entry_add_value(3SCF), scf_error(3SCF), attributes(5)