cfg_subsys_op(3)cfg_subsys_op(3)NAMEcfg_subsys_op - perform a subsystem-specific operation
SYNOPSIS
#include <cfg.h>
cfg_status_t cfg_subsys_op(
cfg_handle_t *handle,
caddr_t subsys,
cfg_op_t op,
caddr_t indata,
ulong indata_size,
caddr_t outdata,
ulong outdate_size );
LIBRARY
Configuration Management Library (libcfg.a)
PARAMETERS
Structure identifying the means of communication between your applica‐
tion and the configuration management 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 the subsystem-specific operation. Speci‐
fies the request code for the operation. The value of the code must be
between the values of the CFG_OP_SUBSYS_MIN constant and the
CFG_OP_SUBSYS_MAX constant. These constants are defined in <sys/syscon‐
fig.h>. Specifies the input data needed by the operation. Specifies
the size of the input data in bytes. Specifies the pre-allocated mem‐
ory location to store any output from the operation. Specifies the
size of the output data in bytes.
DESCRIPTION
Use the cfg_subsys_op() routine to request that the system perform sub‐
system-specific operations. These operations are defined by the subsys‐
tem.
When your application calls the cfg_subsys_op() routine, it passes the
name of the subsystem and the operation to be performed on the subsys‐
tem. The application also passes any input data required by the opera‐
tion and the size of that input data.
When the system receives the cfg_subsys_op() call, it packages the
input data and sends that data to the subsystem. Once the subsystem has
finished processing the request, control and possibly output data
return to the cfg_subsys_op() routine. The routine collects any data
output by the subsystem and returns it to your application.
Because your application must allocate memory to store the outdata
parameter before it calls cfg_subsys_op(), the actual size of the out‐
put data can differ from the amount of memory allocated. When this
situation occurs, the cfg_subsys_op() routine returns as much data as
possible in the outdata parameter.
RETURN VALUES
Upon successful completion, cfg_subsys_op() returns CFG_SUCCESS. Other
return values indicate that an error has occurred. For information
about handling return values from routines in the configuration manage‐
ment library, see libcfg(3).
EXAMPLES
The following example illustrates the use of the cfg_subsys_op() rou‐
tine:
char indata[IN_SZ]; char out‐
data[OUT_SZ]; cfg_handle_t handle; cfg_status_t
retval;
/***************************************************/ /* Call the
cfg_subsys_op routine */
retval = cfg_subsys_op(&handle, "vfs", CLEAN_UP, indata,
IN_SZ, outdata, OUT_SZ);
if (retval != CFG_SUCCESS)
print_error(retval);
In this example, the application calls the cfg_subsys_op() routine with
the CLEAN_UP operation code. The system passes the CLEAN_UP operation
code and the input data, indata, to the subsystem. The subsystem then
performs the tasks indicated by the CLEAN_UP operation code. The sub‐
system returns data, perhaps indicating the status of the CLEAN_UP
operation, in the outdata parameter.
SEE ALSO
Commands: cfgmgr(8), sysconfig(8)
Routines: libcfg(3)cfg_subsys_op(3)