From kay.sievers@vrfy.org Sun Nov 26 01:41:32 2006 From: Kay Sievers Subject: Driver core: show "initstate" of module Date: Fri, 24 Nov 2006 12:15:25 +0100 Message-Id: <1164366925.3468.33.camel@pim.off.vrfy.org> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Status: RO Content-Length: 1271 Show the initialization state(live, coming, going) of the module: $ cat /sys/module/usbcore/initstate live Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman --- kernel/module.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) --- gregkh-2.6.orig/kernel/module.c +++ gregkh-2.6/kernel/module.c @@ -824,9 +824,34 @@ static inline void module_unload_init(st } #endif /* CONFIG_MODULE_UNLOAD */ +static ssize_t show_initstate(struct module_attribute *mattr, + struct module *mod, char *buffer) +{ + const char *state = "unknown"; + + switch (mod->state) { + case MODULE_STATE_LIVE: + state = "live"; + break; + case MODULE_STATE_COMING: + state = "coming"; + break; + case MODULE_STATE_GOING: + state = "going"; + break; + } + return sprintf(buffer, "%s\n", state); +} + +static struct module_attribute initstate = { + .attr = { .name = "initstate", .mode = 0444, .owner = THIS_MODULE }, + .show = show_initstate, +}; + static struct module_attribute *modinfo_attrs[] = { &modinfo_version, &modinfo_srcversion, + &initstate, #ifdef CONFIG_MODULE_UNLOAD &refcnt, #endif