#ifndef _LINUX_SYSCTL_H
#define _LINUX_SYSCTL_H
#include <linux/list.h>
#include <linux/rcupdate.h>
#include <linux/wait.h>
#include <linux/rbtree.h>
#include <linux/uidgid.h>
#include <uapi/linux/sysctl.h>
struct completion;
struct ctl_table;
struct nsproxy;
struct ctl_table_root;
struct ctl_table_header;
struct ctl_dir;
#define SYSCTL_ZERO …
#define SYSCTL_ONE …
#define SYSCTL_TWO …
#define SYSCTL_THREE …
#define SYSCTL_FOUR …
#define SYSCTL_ONE_HUNDRED …
#define SYSCTL_TWO_HUNDRED …
#define SYSCTL_ONE_THOUSAND …
#define SYSCTL_THREE_THOUSAND …
#define SYSCTL_INT_MAX …
#define SYSCTL_MAXOLDUID …
#define SYSCTL_NEG_ONE …
extern const int sysctl_vals[];
#define SYSCTL_LONG_ZERO …
#define SYSCTL_LONG_ONE …
#define SYSCTL_LONG_MAX …
extern const unsigned long sysctl_long_vals[];
proc_handler;
int proc_dostring(const struct ctl_table *, int, void *, size_t *, loff_t *);
int proc_dobool(const struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos);
int proc_dointvec(const struct ctl_table *, int, void *, size_t *, loff_t *);
int proc_douintvec(const struct ctl_table *, int, void *, size_t *, loff_t *);
int proc_dointvec_minmax(const struct ctl_table *, int, void *, size_t *, loff_t *);
int proc_douintvec_minmax(const struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos);
int proc_dou8vec_minmax(const struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos);
int proc_dointvec_jiffies(const struct ctl_table *, int, void *, size_t *, loff_t *);
int proc_dointvec_ms_jiffies_minmax(const struct ctl_table *table, int write,
void *buffer, size_t *lenp, loff_t *ppos);
int proc_dointvec_userhz_jiffies(const struct ctl_table *, int, void *, size_t *,
loff_t *);
int proc_dointvec_ms_jiffies(const struct ctl_table *, int, void *, size_t *,
loff_t *);
int proc_doulongvec_minmax(const struct ctl_table *, int, void *, size_t *, loff_t *);
int proc_doulongvec_ms_jiffies_minmax(const struct ctl_table *table, int, void *,
size_t *, loff_t *);
int proc_do_large_bitmap(const struct ctl_table *, int, void *, size_t *, loff_t *);
int proc_do_static_key(const struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos);
struct ctl_table_poll { … };
static inline void *proc_sys_poll_event(struct ctl_table_poll *poll)
{ … }
#define __CTL_TABLE_POLL_INITIALIZER(name) …
#define DEFINE_CTL_TABLE_POLL(name) …
struct ctl_table { … } __randomize_layout;
struct ctl_node { … };
struct ctl_table_header { … };
struct ctl_dir { … };
struct ctl_table_set { … };
struct ctl_table_root { … };
#define register_sysctl(path, table) …
#ifdef CONFIG_SYSCTL
void proc_sys_poll_notify(struct ctl_table_poll *poll);
extern void setup_sysctl_set(struct ctl_table_set *p,
struct ctl_table_root *root,
int (*is_seen)(struct ctl_table_set *));
extern void retire_sysctl_set(struct ctl_table_set *set);
struct ctl_table_header *__register_sysctl_table(
struct ctl_table_set *set,
const char *path, struct ctl_table *table, size_t table_size);
struct ctl_table_header *register_sysctl_sz(const char *path, struct ctl_table *table,
size_t table_size);
void unregister_sysctl_table(struct ctl_table_header * table);
extern int sysctl_init_bases(void);
extern void __register_sysctl_init(const char *path, struct ctl_table *table,
const char *table_name, size_t table_size);
#define register_sysctl_init(path, table) …
extern struct ctl_table_header *register_sysctl_mount_point(const char *path);
void do_sysctl_args(void);
bool sysctl_is_alias(char *param);
int do_proc_douintvec(const struct ctl_table *table, int write,
void *buffer, size_t *lenp, loff_t *ppos,
int (*conv)(unsigned long *lvalp,
unsigned int *valp,
int write, void *data),
void *data);
extern int pwrsw_enabled;
extern int unaligned_enabled;
extern int unaligned_dump_stack;
extern int no_unaligned_warning;
#else
static inline void register_sysctl_init(const char *path, struct ctl_table *table)
{
}
static inline struct ctl_table_header *register_sysctl_mount_point(const char *path)
{
return NULL;
}
static inline struct ctl_table_header *register_sysctl_sz(const char *path,
struct ctl_table *table,
size_t table_size)
{
return NULL;
}
static inline void unregister_sysctl_table(struct ctl_table_header * table)
{
}
static inline void setup_sysctl_set(struct ctl_table_set *p,
struct ctl_table_root *root,
int (*is_seen)(struct ctl_table_set *))
{
}
static inline void do_sysctl_args(void)
{
}
static inline bool sysctl_is_alias(char *param)
{
return false;
}
#endif
int sysctl_max_threads(const struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos);
#endif