我想在内核模块中为代码audit.c添加新的sysctl参数,并且应该在运行时更改此参数值。我究竟需要添加新的sysctl代码以及如何实现它?
答案 0 :(得分:0)
您应该在树层次结构中使用ctl_table并在模块中处理它。
static struct ctl_table sample_child_table1[] = {
{
.ctl_name = CTL_UNNUMBERED1,
.procname = "sample",
.maxlen = sizeof(int),
.mode = 0444,
.data = &global_var,
.proc_handler = &proc_dointvec_minmax,
.extra1 = &min_val,
.extra2 = &max_val,
},
{}
};
static struct ctl_table sample_parent_table[] = {
{
.ctl_name = CTL_KERN,
.procname = "kernel",
.mode = 0777,
.child = sample_child_table,
{}
},
register_sysctl_table(sample_parent_table)