cfg_reconfigure(9r)cfg_reconfigure(9r)NAMEcfg_reconfigure - General: Reconfigures the attribute values for a ker‐
nel subsystem
SYNOPSIS
#include <sys/sysconfig.h> ); cfg_status_t cfg_reconfigure(
char *subsys,
cfg_attr_t *attributes,
uint nattributes );
ARGUMENTS
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.
DESCRIPTION
The cfg_reconfigure( ) routine is used to modify attribute values for a
subsystem. The modifications made by this routine take effect immedi‐
ately because they are made to the in-memory copy of the subsystem.
Neither the kernel nor the subsystem stores a copy of the modifica‐
tions, 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 infor‐
mation in an array of structures of type cfg_attr_t. For information
about this structure, see the cfg_subsys_reconfig(3) reference page.
RETURN VALUES
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_STA‐
TUS_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 ESUC‐
CESS (0) returned in both status segments.
See the cfg_errno(9r) and errno(2) reference pages for more details
about error numbers and status.
EXAMPLE
A subsystem may be reconfigured using the cfg_reconfigure kernel rou‐
tine 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 opera‐
tion\n");
break;
.
.
.
default:
printf("unknown error\n");
break;
}
} else printf(" successfully reconfigured\n");
}
}
SEE ALSO
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)