static int palinfo_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) { unsigned int hotcpu = (unsigned long)hcpu; switch (action) { case CPU_ONLINE: create_palinfo_proc_entries(hotcpu); break; case CPU_DEAD: remove_palinfo_proc_entries(hotcpu); break; } return NOTIFY_OK; }
static int __init palinfo_init(void) { int i = 0; printk(KERN_INFO "PAL Information Facility v%s\n", PALINFO_VERSION); palinfo_dir = proc_mkdir("pal", NULL); /* Create palinfo dirs in /proc for all online cpus */ for_each_online_cpu(i) { create_palinfo_proc_entries(i); } /* Register for future delivery via notify registration */ register_hotcpu_notifier(&palinfo_cpu_notifier); return 0; }