Linux Kernel设备驱动模型之设备初始化

    xiaoxiao2021-03-25  86

    设备模型之设备初始化: /**  * device_initialize - init device structure.  * @dev: device.  *  * This prepares the device for use by other layers by initializing  * its fields.  * It is the first half of device_register(), if called by  * that function, though it can also be called separately, so one  * may use @dev's fields. In particular, get_device()/put_device()  * may be used for reference counting of @dev after calling this  * function.  *  * All fields in @dev must be initialized by the caller to 0, except  * for those explicitly set to some other value.  The simplest  * approach is to use kzalloc() to allocate the structure containing  * @dev.  *  * NOTE: Use put_device() to give up your reference instead of freeing  * @dev directly once you have called this function.  */ void device_initialize(struct device *dev) {  dev->kobj.kset = devices_kset;  kobject_init(&dev->kobj, &device_ktype);  INIT_LIST_HEAD(&dev->dma_pools);  mutex_init(&dev->mutex);  lockdep_set_novalidate_class(&dev->mutex);  spin_lock_init(&dev->devres_lock);  INIT_LIST_HEAD(&dev->devres_head);  device_pm_init(dev);  set_dev_node(dev, -1); #ifdef CONFIG_GENERIC_MSI_IRQ  INIT_LIST_HEAD(&dev->msi_list); #endif }    
    转载请注明原文地址: https://ju.6miu.com/read-15278.html

    最新回复(0)