|
cfg_reconfigure(9r)
Contents
|
cfg_reconfigure - General: Reconfigures the attribute values
for a kernel subsystem
#include <sys/sysconfig.h> ); cfg_status_t cfg_reconfigure(
char *subsys,
cfg_attr_t *attributes,
uint nattributes );
Specifies the name of the subsystem to be reconfigured.
Specifies the name of the array containing a list of
attribute names and their new values. The array must have
(nattributes + 1) cfg_attr_t structures, with the
attribute name of the last one being set to a null string.
Specifies the number of attributes whose values you are
changing.
The cfg_reconfigure( ) routine is used to modify attribute
values for a subsystem. The modifications made by this
routine take effect immediately because they are made to
the in-memory copy of the subsystem. Neither the kernel
nor the subsystem stores a copy of the modifications, so
if the system is rebooted or the subsystem is unconfigured,
the modifications are lost. When the subsystem is
again configured into the kernel, the value of its
attributes are retrieved from the /etc/sysconfigtab
database and the subsystem code. To make permanent changes
to attribute values, store the new attribute values in the
/etc/sysconfigtab database. See the sysconfigtab(4) reference
page for information about the database.
When your application calls the cfg_reconfigure( ) routine,
it passes a list of attribute names and values. The
application passes this information in an array of structures
of type cfg_attr_t. For information about this
structure, see the cfg_subsys_reconfig(3) reference page.
This routine returns 32-bit values composed of subsystem
status and framework status segments. The upper 16 bits is
the subsystem status (CFG_STATUS_SUBSYS) and the lower 16
bits is the frame status (CFG_STATUS_FRAME). The return
values are organized as follows:
[Upper subsystem 16 bits][Lower framework 16 bits]
The subsystem status is returned by the subsystem's configure
routine and can be any error in errno.h. The framework
status is returned by the configuration framework and
the possible values are defined in <sys/sysconfig.h> as
CFG_FRAME_Exxx. A successful operation has ESUCCESS (0)
returned in both status segments.
See the cfg_errno(9r) and errno(2) reference pages for
more details about error numbers and status.
A subsystem may be reconfigured using the cfg_reconfigure
kernel routine as follows:
cfg_attr_t attributes[2];
cfg_status_t retval;
int i;
int nattributes;
/*****************************************************/
/* Initialize attribute names for the request
*/
strcpy (attributes[0].name, "maxmounts");
attributes[0].type = CFG_ATTR_INTTYPE;
attributes[0].attr.num.val = 30;
nattributes = 1;
attributes[1].name[0] = '\0';
/***************************************************/
/* Call the cfg_reconfigure() routine */
retval = cfg_reconfigure("lvm", attributes, nattributes);
if (retval != CFG_SUCCESS)
print_error (retval);
else {
for (i=0; i<1; 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;
}
} else printf(" successfully reconfigured\n");
}
}
Routines: cfg_subsys_reconfig(3), cfg_configure(9r),
cfg_errno(9r), cfg_query(9r), cfg_subsysop(9r), cfg_unconfigure(9r)
Other: errno(2), sysconfigtab(4)
cfg_reconfigure(9r)
[ Back ] |