Provided by: linux-doc-2.6.15_2.6.15-23.39_all
register_sysctl_table - register a sysctl hierarchy
struct ctl_table_header * register_sysctl_table (ctl_table * table,
table the top-level table structure
whether the entry should be inserted in front or at the end
Register a sysctl table hierarchy. table should be a filled in
ctl_table array. An entry with a ctl_name of 0 terminates the table.
The members of the &ctl_table structure are used as follows:
ctl_name - This is the numeric sysctl value used by sysctl(2). The
number must be unique within that level of sysctl
procname - the name of the sysctl file under /proc/sys. Set to NULL to
not enter a sysctl file
data - a pointer to data for use by proc_handler
maxlen - the maximum size in bytes of the data
mode - the file permissions for the /proc/sys file, and for sysctl(2)
child - a pointer to the child sysctl table if this entry is a
directory, or NULL.
proc_handler - the text handler routine (described below)
strategy - the strategy routine (described below)
de - for internal use by the sysctl routines
extra1, extra2 - extra pointers usable by the proc handler routines
Leaf nodes in the sysctl tree will be represented by a single file
under /proc; non-leaf nodes will be represented by directories.
sysctl(2) can automatically manage read and write requests through the
sysctl table. The data and maxlen fields of the ctl_table struct enable
minimal validation of the values being written to be performed, and the
mode field allows minimal authentication.
More sophisticated management can be enabled by the provision of a
strategy routine with the table entry. This will be called before any
automatic read or write of the data is performed.
The strategy routine may return
< 0 - Error occurred (error is passed to user process)
0 - OK - proceed with automatic read or write.
> 0 - OK - read or write has been done by the strategy routine, so
There must be a proc_handler routine for any terminal nodes mirrored
under /proc/sys (non-terminals are handled by a built-in directory
handler). Several default handlers are available to cover common cases
proc_dostring, proc_dointvec, proc_dointvec_jiffies,
It is the handler’s job to read the input buffer from user memory and
process it. The handler should return 0 on success.
This routine returns NULL on a failure to register, and a pointer to
the table header on success.