#define KERN_BUSY 434 /* random number */ enum {BUSY_ON=1, BUSY_OFF}; int busy_ontime = 0; /* loop 0 ticks */ int busy_offtime = HZ; /* every second */ /* two integer items (files) */ static ctl_table busy_table[] = { {BUSY_ON, "ontime", &busy_ontime, int), 0644, NULL, &proc_dointvec, _intvec, /* fill with 0's */}, {BUSY_ON, "offtime", &busy_offtime, int), 0644, NULL, &proc_dointvec, _intvec, /* fill with 0's */}, {0} }; /* a directory */ static ctl_table busy_kern_table[] = { {KERN_BUSY, "busy", NULL, 0, 0555, busy_table}, {0} }; /* the parent directory */ static ctl_table busy_root_table[] = { {CTL_KERN, "kernel", NULL, 0, 0555, busy_kern_table}, {0} }; static struct ctl_table_header *busy_table_header; int init_module(void) { busy_table_header = register_sysctl_table(busy_root_table, 0); if (!busy_table_header) return -ENOMEM; busy_loop(); return 0; } void cleanup_module(void) { unregister_sysctl_table(busy_table_header); }