diff options
Diffstat (limited to 'include/linux/sysctl.h')
| -rw-r--r-- | include/linux/sysctl.h | 45 | 
1 files changed, 13 insertions, 32 deletions
| diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 3d08277959af..59d451f455bf 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -89,7 +89,7 @@ int proc_do_static_key(struct ctl_table *table, int write, void *buffer,  		size_t *lenp, loff_t *ppos);  /* - * Register a set of sysctl names by calling register_sysctl_table + * Register a set of sysctl names by calling register_sysctl   * with an initialised array of struct ctl_table's.  An entry with    * NULL procname terminates the table.  table->de will be   * set up by the registration and need not be initialised in advance. @@ -137,7 +137,17 @@ struct ctl_table {  	void *data;  	int maxlen;  	umode_t mode; -	struct ctl_table *child;	/* Deprecated */ +	/** +	 * enum type - Enumeration to differentiate between ctl target types +	 * @SYSCTL_TABLE_TYPE_DEFAULT: ctl target with no special considerations +	 * @SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY: Used to identify a permanently +	 *                                       empty directory target to serve +	 *                                       as mount point. +	 */ +	enum { +		SYSCTL_TABLE_TYPE_DEFAULT, +		SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY +	} type;  	proc_handler *proc_handler;	/* Callback for text formatting */  	struct ctl_table_poll *poll;  	void *extra1; @@ -197,20 +207,6 @@ struct ctl_path {  #ifdef CONFIG_SYSCTL -#define DECLARE_SYSCTL_BASE(_name, _table)				\ -static struct ctl_table _name##_base_table[] = {			\ -	{								\ -		.procname	= #_name,				\ -		.mode		= 0555,					\ -		.child		= _table,				\ -	},								\ -	{ },								\ -} - -extern int __register_sysctl_base(struct ctl_table *base_table); - -#define register_sysctl_base(_name) __register_sysctl_base(_name##_base_table) -  void proc_sys_poll_notify(struct ctl_table_poll *poll);  extern void setup_sysctl_set(struct ctl_table_set *p, @@ -222,7 +218,6 @@ struct ctl_table_header *__register_sysctl_table(  	struct ctl_table_set *set,  	const char *path, struct ctl_table *table);  struct ctl_table_header *register_sysctl(const char *path, struct ctl_table *table); -struct ctl_table_header *register_sysctl_table(struct ctl_table * table);  void unregister_sysctl_table(struct ctl_table_header * table);  extern int sysctl_init_bases(void); @@ -244,24 +239,10 @@ extern int unaligned_enabled;  extern int unaligned_dump_stack;  extern int no_unaligned_warning; -extern struct ctl_table sysctl_mount_point[]; +#define SYSCTL_PERM_EMPTY_DIR	(1 << 0)  #else /* CONFIG_SYSCTL */ -#define DECLARE_SYSCTL_BASE(_name, _table) - -static inline int __register_sysctl_base(struct ctl_table *base_table) -{ -	return 0; -} - -#define register_sysctl_base(table) __register_sysctl_base(table) - -static inline struct ctl_table_header *register_sysctl_table(struct ctl_table * table) -{ -	return NULL; -} -  static inline void register_sysctl_init(const char *path, struct ctl_table *table)  {  } |