return to first page linux journal archive
keywordscontents
#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);
}