get_device和put_device是一对相反的操作,get_device是对设备的引用数量加1,而put_device是对对象引用数减1。这个名字和popular的理解不太一样,一般getxxx应该是返回一个设备对象。
struct device *get_device(struct device *dev)
{
return dev ? kobj_to_dev(kobject_get(&dev->kobj)) : NULL;
}
/**
* put_device - decrement reference count.
* @dev: device in question.
*/
void put_device(struct device *dev)
{
/* might_sleep(); */
if (dev)
kobject_put(&dev->kobj);
}
与此同时of_node_get <->of_node_put实现了同样的上述功能。