diff options
Diffstat (limited to 'include/linux/sysctl.h')
| -rw-r--r-- | include/linux/sysctl.h | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 24141b4d1a11..d0437f36921f 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
| @@ -947,6 +947,22 @@ struct ctl_table; | |||
| 947 | struct nsproxy; | 947 | struct nsproxy; |
| 948 | struct ctl_table_root; | 948 | struct ctl_table_root; |
| 949 | 949 | ||
| 950 | struct ctl_table_set { | ||
| 951 | struct list_head list; | ||
| 952 | struct ctl_table_set *parent; | ||
| 953 | int (*is_seen)(struct ctl_table_set *); | ||
| 954 | }; | ||
| 955 | |||
| 956 | extern void setup_sysctl_set(struct ctl_table_set *p, | ||
| 957 | struct ctl_table_set *parent, | ||
| 958 | int (*is_seen)(struct ctl_table_set *)); | ||
| 959 | |||
| 960 | struct ctl_table_header; | ||
| 961 | |||
| 962 | extern void sysctl_head_get(struct ctl_table_header *); | ||
| 963 | extern void sysctl_head_put(struct ctl_table_header *); | ||
| 964 | extern int sysctl_is_seen(struct ctl_table_header *); | ||
| 965 | extern struct ctl_table_header *sysctl_head_grab(struct ctl_table_header *); | ||
| 950 | extern struct ctl_table_header *sysctl_head_next(struct ctl_table_header *prev); | 966 | extern struct ctl_table_header *sysctl_head_next(struct ctl_table_header *prev); |
| 951 | extern struct ctl_table_header *__sysctl_head_next(struct nsproxy *namespaces, | 967 | extern struct ctl_table_header *__sysctl_head_next(struct nsproxy *namespaces, |
| 952 | struct ctl_table_header *prev); | 968 | struct ctl_table_header *prev); |
| @@ -1049,8 +1065,8 @@ struct ctl_table | |||
| 1049 | 1065 | ||
| 1050 | struct ctl_table_root { | 1066 | struct ctl_table_root { |
| 1051 | struct list_head root_list; | 1067 | struct list_head root_list; |
| 1052 | struct list_head header_list; | 1068 | struct ctl_table_set default_set; |
| 1053 | struct list_head *(*lookup)(struct ctl_table_root *root, | 1069 | struct ctl_table_set *(*lookup)(struct ctl_table_root *root, |
| 1054 | struct nsproxy *namespaces); | 1070 | struct nsproxy *namespaces); |
| 1055 | int (*permissions)(struct ctl_table_root *root, | 1071 | int (*permissions)(struct ctl_table_root *root, |
| 1056 | struct nsproxy *namespaces, struct ctl_table *table); | 1072 | struct nsproxy *namespaces, struct ctl_table *table); |
| @@ -1063,9 +1079,14 @@ struct ctl_table_header | |||
| 1063 | struct ctl_table *ctl_table; | 1079 | struct ctl_table *ctl_table; |
| 1064 | struct list_head ctl_entry; | 1080 | struct list_head ctl_entry; |
| 1065 | int used; | 1081 | int used; |
| 1082 | int count; | ||
| 1066 | struct completion *unregistering; | 1083 | struct completion *unregistering; |
| 1067 | struct ctl_table *ctl_table_arg; | 1084 | struct ctl_table *ctl_table_arg; |
| 1068 | struct ctl_table_root *root; | 1085 | struct ctl_table_root *root; |
| 1086 | struct ctl_table_set *set; | ||
| 1087 | struct ctl_table *attached_by; | ||
| 1088 | struct ctl_table *attached_to; | ||
| 1089 | struct ctl_table_header *parent; | ||
| 1069 | }; | 1090 | }; |
| 1070 | 1091 | ||
| 1071 | /* struct ctl_path describes where in the hierarchy a table is added */ | 1092 | /* struct ctl_path describes where in the hierarchy a table is added */ |
