Content-type: text/html Man page of cfg_subsys_defaults

cfg_subsys_defaults

Section: C Library Functions (3)
Index Return to Main Contents
 

NAME

cfg_subsys_defaults - Determine the /etc/sysconfigtab value for selected 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 application 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 attribute as specified in the /etc/sysconfigtab database. Specifies 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 information 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 application when it calls the cfg_subsys_defaults() routine: Attributes can be integer, string, or binary data. However, the system is unable to determine 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 attribute. 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() request, the system assigns each attribute a status. The following table describes the status values your application might receive on return from this routine:

Status CodeMeaning

CFG_ATTR_SUCCESSSuccessful operation
CFG_ATTR_EEXISTSNo attribute by that name exists
CFG_ATTR_EOPAttribute does not support the query operation
CFG_ATTR_ESUBSYS Subsystem failure (code within the subsystem returned an error)
CFG_ATTR_EINDEX The index for an indexed attribute is out of range
CFG_ATTR_EMEM Unable to allocate memory to return the attribute value

The value of each attribute is returned in a structure, which contains 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 attributes, 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 displays 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 information 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


 

Index

NAME
LIBRARY
SYNOPSIS
PARAMETERS
DESCRIPTION
EXAMPLES
RETURN VALUES
RELATED INFORMATION

This document was created by man2html, using the manual pages.
Time: 02:41:34 GMT, October 02, 2010