cc [flags.\|.\|.] -I /usr/cluster/include file -L /usr/cluster/lib -l dsdev #include <rgm/libdsdev.h> scha_err_t scds_get_ext_property(scds_handle_t handle, const char *property_name, scha_prop_type_t property_type, scha_extprop_value_t **property_value);
The scds_get_ext_property() function retrieves the value of a given extension property.
The name of the property is first looked up in the list of properties specified in the method argument list ( argv[], which was parsed by scds_initialize()). If the property name is not in the method argument list, it is retrieved using the Sun Cluster API. See scha_calls(3HA).
Upon successful completion, the value of the property is placed in the appropriate variable in the union in a scha_extprop_value_t structure and a pointer to this structure is passed back to the caller in property_value.
You are responsible for freeing memory by using scds_free_ext_property().
You can find information about the data types scha_prop_type_t and scha_extprop_value_t in scha_calls(3HA) and in the scha_types.h header file.
DSDL provides convenience functions to retrieve the values of some of the more commonly used resource extension properties. See the scds_property_functions(3HA) man page.
The following parameters are supported:
.na handle .ad The handle returned from scds_initialize(3HA)
.na property_name .ad Name of the property being retrieved
.na property_type .ad Property value type. Valid types are defined in scha_calls(3HA) and property_attributes(5).
.na property_value .ad Pointer to a property value
The scds_get_ext_property() function returns the following values:
.na 0 .ad The function succeeded.
.na nonzero .ad The function failed.
.na SCHA_ERR_PROP .ad RTR file does not define the specified property.
.na SCHA_ERR_NOERR .ad The function succeeded.
.na Other values .ad Indicate that the function failed. See scha_calls(3HA) for the meaning of the failure codes.
Example 1 Using scds_get_ext_property()
#include <scha_types.h> #include <libdsdev.h> #define INT_EXT_PROP "Int_extension_property" ... int retCode; scha_extprop_value_t *intExtProp; int retrievedValue; ... retCode = scds_get_ext_property(handle, INT_EXT_PROP, SCHA_PTYPE_INT, &intExtProp); if (retCode != SCHA_ERR_NOERR) { scds_syslog(LOG_ERR, "Failed to retrieve the extension property %s: %s.", INT_EXT_PROP, scds_error_string(retCode)); ... } else { retrievedValue = intExtProp->val.val_int; ... scds_free_ext_property(intExtProp); ... } ...
.na /usr/cluster/include/rgm/libdsdev.h .ad Include file
.na /usr/cluster/lib/libdsdev.so .ad Library
See attributes(5) for descriptions of the following attributes:
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| Availability | SUNWscdev |
| Interface Stability | Evolving |
scds_free_ext_property(3HA), scds_initialize(3HA), scds_property_functions(3HA), scha_calls(3HA), rt_reg(4), attributes(5), property_attributes(5)
Only the values of extension properties that are defined in the RTR file can be retrieved by using this function. See rt_reg(4).