bool_t unregister_watchdog(struct watchdog_t * watchdog) { struct device_t * dev; struct watchdog_t * driver; if(!watchdog || !watchdog->name) return FALSE; dev = search_device_with_type(watchdog->name, DEVICE_TYPE_WATCHDOG); if(!dev) return FALSE; if(!unregister_device(dev)) return FALSE; driver = (struct watchdog_t *)(dev->driver); if(driver) { if(driver->set) (driver->set)(driver, 0); if(driver->exit) (driver->exit)(driver); } kobj_remove_self(dev->kobj); free(dev->name); free(dev); return TRUE; }
struct ledtrig_t * search_ledtrig(const char * name) { struct device_t * dev; dev = search_device_with_type(name, DEVICE_TYPE_LEDTRIG); if(!dev) return NULL; return (struct ledtrig_t *)dev->driver; }
struct battery_t * search_battery(const char * name) { struct device_t * dev; dev = search_device_with_type(name, DEVICE_TYPE_BATTERY); if(!dev) return NULL; return (struct battery_t *)dev->driver; }
struct watchdog_t * search_watchdog(const char * name) { struct device_t * dev; dev = search_device_with_type(name, DEVICE_TYPE_WATCHDOG); if(!dev) return NULL; return (struct watchdog_t *)dev->driver; }
bool_t unregister_battery(struct battery_t * bat) { struct device_t * dev; if(!bat || !bat->name) return FALSE; dev = search_device_with_type(bat->name, DEVICE_TYPE_BATTERY); if(!dev) return FALSE; if(!unregister_device(dev)) return FALSE; kobj_remove_self(dev->kobj); free(dev->name); free(dev); return TRUE; }
bool_t unregister_ledtrig(struct ledtrig_t * trigger) { struct device_t * dev; struct ledtrig_t * driver; if(!trigger || !trigger->name) return FALSE; dev = search_device_with_type(trigger->name, DEVICE_TYPE_LEDTRIG); if(!dev) return FALSE; if(!unregister_device(dev)) return FALSE; driver = (struct ledtrig_t *)(dev->driver); if(driver && driver->exit) (driver->exit)(driver); kobj_remove_self(dev->kobj); free(dev->name); free(dev); return TRUE; }