Manual Page Result
0
Command: cfg_subsys_defaults | Section: 3 | Source: Digital UNIX | File: cfg_subsys_defaults.3.gz
cfg_subsys_defaults(3) Library Functions Manual cfg_subsys_defaults(3)
NAME
cfg_subsys_defaults - Determine the /etc/sysconfigtab value for se-
lected attributes of a subsystem
LIBRARY
Configuration Management Library (libcfg.a)
SYNOPSIS
#include <cfg.h> cfg_status_t cfg_subsys_defaults(
cfg_handle_t *handle,
caddr_t subsys,
cfg_attr_t *attributes,
int nattributes);
PARAMETERS
Structure identifying the means of communication between your applica-
tion and the configuration manager server. For local requests, pass
NULL in this parameter. For remote requests, pass the value returned
from the cfg_connect() routine. Specifies the name of the subsystem
for which you are requesting default attribute values. On input, names
the attributes for which you are requesting a default value.
On return, contains information about the named attributes. The
information includes the attribute-specific status of the
cfg_subsys_defaults() request and the default value of the at-
tribute as specified in the /etc/sysconfigtab database. Speci-
fies the number of attributes in the input attribute list.
DESCRIPTION
Use the cfg_subsys_defaults() routine to get information about the
value assigned to attributes in the /etc/sysconfigtab database. You
can request information about one or more attributes, but you can get
information about only one subsystem at a time. (For information about
the /etc/sysconfigtab database, see sysconfigtab(4).)
In the call to the cfg_subsys_defaults() routine, your application
passes the subsystem name and a list of one or more attribute names.
The system reads this information and finds and collects the informa-
tion about the named attributes. The system then returns the attribute
information to your application.
The information returned from the cfg_subsys_defaults() routine is
passed in a structure of type cfg_attr_t. If your application requests
information about more than one attribute, an array of structures is
returned. For information about this structure, see libcfg(3).
The following list describes the information returned to your applica-
tion when it calls the cfg_subsys_defaults() routine: Attributes can be
integer, string, or binary data. However, the system is unable to de-
termine the data type of attributes by reading the /etc/sysconfigtab
database. Therefore, this field returns the CFG_ATTR_STRTYPE data type
for all attributes. The definition of each attribute in the subsystem
attribute table determines what operations you can perform on the at-
tribute. The system is unable to determine this information from the
/etc/sysconfigtab database, so this field is NULL on return from
cfg_subsys_defaults() requests. During a cfg_subsys_defaults() re-
quest, the system assigns each attribute a status. The following table
describes the status values your application might receive on return
from this routine: tab(@); lfHBw(1i) lfHBw(2.5i) lfCWw(1i) lw(2.5i). _
Status Code@Meaning
_
CFG_ATTR_SUCCESS@Successful operation
CFG_ATTR_EEXISTS@No attribute by that name exists
CFG_ATTR_EOP@Attribute does not support the query operation
CFG_ATTR_ESUBSYS@T{ Subsystem failure (code within the subsystem re-
turned an error) T}
CFG_ATTR_EINDEX@T{ The index for an indexed attribute is out of range
T}
CFG_ATTR_EMEM@T{ Unable to allocate memory to return the attribute
value T}
_ The value of each attribute is returned in a structure, which con-
tains a string representing the value of the attribute as it is defined
in the /etc/sysconfigtab database. If an attribute is omitted from the
database, the cfg_subsys_defaults() routine returns a NULL attribute
value.
The cfg_subsys_defaults() routine returns NULL for other fields
in the attribute value structure.
EXAMPLES
The following example illustrates the use of the cfg_subsys_defaults()
routine: cfg_attr_t attributes[2]; cfg_status_t
retval; cfg_handle_t handle; int i;
/*****************************************************/ /* Initialize
attribute names for the request */
strcpy (attributes[0].name, "nmounts"); strcpy (attributes[1].name,
"mountpoint");
/***************************************************/ /* Call the
cfg_subsys_defaults() routine */
retval = cfg_subsys_defaults(&handle, "lvm", attributes, 2);
if (retval != CFG_SUCCESS)
print_error (retval);
else {
/* Use data returned from the request */
for (i=0; i<2; i++) {
printf ("%s", attributes[i].name);
if (attributes[i].status != CFG_ATTR_SUCCESS) {
switch (attributes[i].status){
case CFG_ATTR_EEXISTS:
printf("unknown attribute\n");
break;
case CFG_ATTR_EOP:
printf("attribute does not allow this operation\n");
break;
.
.
.
default:
printf("unknown error\n");
break;
}
continue;
}
/* Display attribute value to application user */
printf ("%s\n", attributes[i].attr.str.val);
}
free(attributes[i].attr.str.val);
break; }
In this example, the application requests information about two attrib-
utes, nmounts and mountpoint. When the cfg_subsys_defaults() routine
returns information about those attributes, the application tests the
return status of the routine and reports any errors returned. If the
cfg_subsys_defaults() routine returns CFG_SUCCESS, the status for each
attribute is tested and any errors are reported. The application dis-
plays the default value of attributes that return CFG_ATTR_SUCCESS.
RETURN VALUES
Upon successful completion, cfg_subsys_defaults() returns CFG_SUCCESS.
Other return values indicate that an error has occurred. For informa-
tion about handling return values from routines in the configuration
management library, see libcfg(3).
RELATED INFORMATION
Commands: cfgmgr(8), sysconfig(8)
Routines: cfg_connect(3), cfg_subsys_defaults_all(3), libcfg(3)
Files: sysconfigtab(4) delim off
cfg_subsys_defaults(3)