예제 #1
0
파일: watchdog.c 프로젝트: IngenicC/xboot
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;
}
예제 #2
0
파일: ledtrig.c 프로젝트: IngenicC/xboot
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;
}
예제 #3
0
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;
}
예제 #4
0
파일: watchdog.c 프로젝트: IngenicC/xboot
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;
}
예제 #5
0
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;
}
예제 #6
0
파일: ledtrig.c 프로젝트: IngenicC/xboot
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;
}