SCF_PROPERTY_CREATE(3SCF) Service Configuration Facility Library Functions
NAME
scf_property_create, scf_property_handle, scf_property_destroy,
scf_property_get_name, scf_property_type, scf_property_is_type,
scf_type_to_string, scf_string_to_type, scf_property_get_value,
scf_pg_get_property - create and manipulate property handles in the
Service Configuration Facility
SYNOPSIS
cc [
flag... ]
file...
-lscf [
library... ]
#include <libscf.h>
scf_property_t *scf_property_create(
scf_handle_t *handle);
scf_handle_t *scf_property_handle(
scf_property_t *prop);
void scf_property_destroy(
scf_property_t *prop);
ssize_t scf_property_get_name(
const scf_property_t *prop,
char *buf,
size_t size);
int scf_property_type(
const scf_property_t *prop,
scf_type_t *type);
int scf_property_is_type(
const scf_property_t *prop,
scf_type_t type);
const char *scf_type_to_string(
scf_type_t type);
scf_type_t scf_string_to_type(
const char *type);
int scf_property_get_value(
const scf_property_t *prop,
scf_value_t *value);
int scf_pg_get_property(
const scf_property_t *pg,
const char *name,
scf_property_t *prop);
DESCRIPTION
Properties are named sets of values of one type. They are grouped
into property groups (see
scf_pg_create(3SCF)) that are updated
atomically using transactions (see
scf_transaction_create(3SCF)).
An
scf_property_t is an opaque handle that can be set to a single
property at any given time. When set, it inherits the point-in-time
from the source
scf_propertygroup_t and does not change until reset.
The
scf_property_create() function allocates and initializes a new
scf_property_t bound to
handle. The
scf_property_destroy() function
destroys and frees
prop.
The
scf_property_handle() function returns the handle to which
prop is bound.
The
scf_property_type() function retrieves the type of the property
to which
prop is set.
The
scf_property_is_type() function determines if the property is
compatible with type. See
scf_value_create(3SCF).
The
scf_type_to_string() function returns the string name of the type
supplied. If the type is invalid or unknown, it returns "unknown".
The
scf_string_to_type() function returns the
scf_type_t definition
of the string supplied. If the string does not translate to an
existing type, it returns
SCF_TYPE_INVALID.
The
scf_property_get_value() function retrieves the single value that
the property to which
prop is set contains. If the property has more
than one value, the
value argument is set to one of the values. To
retrieve all values associated with a property, see
scf_iter_property_values(3SCF).
The
scf_pg_get_property() function sets
prop to the property
specified by
name in the property group specified by
pg.
RETURN VALUES
Upon successful completion,
scf_property_create() returns a new
scf_property_t. Otherwise, it returns
NULL.
Upon successful completion,
scf_property_get_name() function returns
the length of the string written, not including the terminating null
byte. Otherwise, it returns -1.
Upon successful completion,
scf_pg_get_property(),
scf_property_type(),
scf_property_is_type(), and
scf_pg_get_value() functions return 0. Otherwise, they return -1.
Upon successful completion,
scf_type_to_string() returns a string of
the type supplied.
Upon successful completion,
scf_string_to_type() returns the
scf_type_t definition of the string supplied
ERRORS
The
scf_property_create() function will fail if:
SCF_ERROR_INVALID_ARGUMENT The value of the
handle argument is
NULL.
SCF_ERROR_NO_MEMORY There is not enough memory to allocate
an
scf_property_t.
SCF_ERROR_NO_RESOURCES The server does not have adequate
resources for a new property handle.
The
scf_property_handle() function will fail if:
SCF_ERROR_HANDLE_DESTROYED The handle associated with
prop has
been destroyed.
The
scf_property_get_name(),
scf_property_type(),
scf_property_is_type(), and
scf_property_get_value() functions will
fail if:
SCF_ERROR_CONNECTION_BROKEN The connection to the repository was lost.
SCF_ERROR_DELETED The property's parent property group or an ancestor has been
deleted.
SCF_ERROR_NOT_BOUND The handle was never bound or has been unbound.
SCF_ERROR_NOT_SET The property is not set.
The
scf_property_is_type() function will fail if:
SCF_ERROR_INVALID_ARGUMENT The
type argument is not a valid type.
SCF_ERROR_TYPE_MISMATCH The
prop argument is not of a type
compatible with
type.
The
scf_pg_get_property() function will fail if:
SCF_ERROR_BACKEND_ACCESS The storage mechanism that the repository server
(
svc.configd(8)) chose for the operation denied access.
SCF_ERROR_CONNECTION_BROKEN The connection to the repository was lost.
SCF_ERROR_DELETED The property group or an ancestor has been deleted.
SCF_ERROR_HANDLE_MISMATCH The property group and property are not derived from the same
handle.
SCF_ERROR_INTERNAL An internal error occurred.
SCF_ERROR_INVALID_ARGUMENT The value of the
name argument is not a valid property name.
SCF_ERROR_NO_RESOURCES The server does not have the resources to complete the request.
SCF_ERROR_NOT_BOUND The handle was never bound or has been unbound.
SCF_ERROR_NOT_FOUND The property specified by
name was not found.
SCF_ERROR_NOT_SET The property group specified by
pg is not set.
The
scf_property_get_value() function will fail if:
SCF_ERROR_CONSTRAINT_VIOLATED The property has more than one value associated with it. The
value argument will be set to one of the values.
SCF_ERROR_HANDLE_MISMATCH The property and value are derived from different handles.
SCF_ERROR_NOT_FOUND The property has no values associated with it. The
value argument
will be reset.
SCF_ERROR_PERMISSION_DENIED The value could not be read due to access restrictions.
The
scf_error(3SCF) function can be used to retrieve the error value.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
SEE ALSO
libscf(3LIB),
scf_error(3SCF),
scf_handle_decode_fmri(3SCF),
scf_iter_property_values(3SCF),
scf_pg_create(3SCF),
scf_property_to_fmri(3SCF),
scf_transaction_create(3SCF),
scf_value_create(3SCF),
attributes(7) October 28, 2008 SCF_PROPERTY_CREATE(3SCF)