REGISTER_SYSCTL_TABLE

Section: (9)
Updated: 29 May 2003
Index Return to Main Contents

 

NAME

register_sysctl_table - register a sysctl hierarchy  

SYNOPSIS

struct ctl_table_header * register_sysctl_table (ctl_table * table, int insert_at_head);  

ARGUMENTS

table
the top-level table structure
insert_at_head
whether the entry should be inserted in front or at the end
 

DESCRIPTION

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 return immediately.

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, proc_dointvec_minmax, proc_doulongvec_ms_jiffies_minmax, proc_doulongvec_minmax

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.  

ABOUT THIS DOCUMENT

This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

For more details see the file COPYING in the source distribution of Linux.

If you have comments on the formatting of this manpage, then please contact Michael Still (mikal@stillhq.com).

This documentation was generated with kernel version 2.5.70.


 

Index

NAME
SYNOPSIS
ARGUMENTS
DESCRIPTION
ABOUT THIS DOCUMENT

This document was created by man2html, using the manual pages.
Time: 11:26:13 GMT, May 29, 2003