te
Copyright (c) 2008, Sun Microsystems Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
SCF_TMPL_PROP_CREATE 3SCF "Oct 28, 2008"
NAME
scf_tmpl_prop_create, scf_tmpl_prop_reset, scf_tmpl_prop_destroy, scf_tmpl_get_by_prop, scf_tmpl_iter_props - template property functions
SYNOPSIS

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

scf_prop_tmpl_t *scf_tmpl_prop_create(scf_handle_t *handle);

void scf_tmpl_prop_reset(scf_prop_tmpl_t *prop_tmpl);

void scf_tmpl_prop_destroy(scf_prop_tmpl_t *prop_tmpl);

int scf_tmpl_get_by_prop(scf_pg_tmpl_t *pg_tmpl,
 const char *prop, scf_prop_tmpl_t *prop_tmpl, int flags)

int scf_tmpl_iter_props(scf_pg_tmpl_t *pg_tmpl, const char *fmri,
 scf_prop_tmpl_t *prop_tmpl, int flags);
DESCRIPTION

The template property functions locate and give access to metadata about properties. They require that the template for the property group containing the property has already been located by one of the scf_tmpl_pg_create(3SCF) suite of functions.

Once retrieved, the scf_prop_tmpl_t can be explored using the scf_tmpl_prop_name(3SCF) suite of functions.

Before calling scf_tmpl_get_by_prop() or scf_tmpl_iter_props(), the scf_prop_tmpl_t must be allocated by scf_tmpl_prop_create. The scf_prop_tmpl_t can be reset to contain no template information with scf_tmpl_prop_reset(), so that it can be used to start an iteration from scratch. All associated memory can be freed with scf_tmpl_prop_destroy().

The scf_tmpl_get_by_prop() function locates template data about the property name specified.

The scf_tmpl_iter_props() function iterates across all property templates defined in the specified property group template.

The iterator state for scf_tmpl_iter_props() is stored on the property template data structure. The data structure should be allocated with scf_tmpl_prop_create(), and to continue the iteration the previously returned structure should be passed in as an argument.

RETURN VALUES

The scf_tmpl_get_by_prop() function returns -1 on failure and 0 on success.

The scf_tmpl_iter_props() function returns 1 on successful completion. If the iteration is complete, it returns 0. It returns -1 on error.

ERRORS

The scf_tmpl_get_by_prop() and scf_tmpl_iter_props() functions will fail if: SCF_ERROR_BACKEND_ACCESS

The storage mechanism that the repository server (svc.configd(1M)) chose for the operation denied access.

SCF_ERROR_CONNECTION_BROKEN

The connection to the repository was lost.

SCF_ERROR_DELETED

The instance or its template property group has been deleted.

SCF_ERROR_HANDLE_DESTROYED

The handle passed in has been destroyed.

SCF_ERROR_INTERNAL

An internal error occurred.

SCF_ERROR_INVALID_ARGUMENT

One of the arguments is invalid.

SCF_ERROR_NO_MEMORY

There is not enough memory to populate the scf_prop_tmpl_t.

SCF_ERROR_NO_RESOURCES

The server does not have adequate resources to complete the request.

SCF_ERROR_NOT_BOUND

The handle is not currently bound.

The scf_tmpl_get_by_prop() function will fail if: SCF_ERROR_NOT_FOUND

Template object matching property doesn't exist in the repository.

SCF_ERROR_TYPE_MISMATCH

Matching template object is the wrong type in the repository.

SCF_ERROR_PERMISSION_DENIED

The template could not be read due to access restrictions.

SCF_ERROR_TEMPLATE_INVALID

The template data is invalid.

The scf_tmpl_prop_create() function will fail if: SCF_ERROR_INVALID_ARGUMENT

The handle argument is NULL.

SCF_ERROR_NO_MEMORY

There is no memory available.

ATTRIBUTES

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

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Committed
MT-Level Safe
SEE ALSO

svc.configd(1M), scf_tmpl_pg_create(3SCF), scf_tmpl_prop_name(3SCF), attributes(5), smf_template(5)