zoukankan      html  css  js  c++  java
  • 浅析struct device结构体

    device结构体:设备驱动模型中的基础结构体之一

    struct device {

      /*设备所依附的父设备

      大多数情况下,这样的设备是某种总线或主控制器

      如果该成员变量的值为NULL,表示当前设备是一个最顶端设备,通常这样的设备都不是你想得到的那个*/

      struct device *parent;

      struct device_private *p;

      struct kobject kobj;
      const char *init_name; /* initial name of the device */
      const struct device_type *type;

      struct mutex mutex; /* mutex to synchronize calls to  its driver.*/

      struct bus_type *bus; /* type of bus device is on */
      struct device_driver *driver; /* which driver has allocated this device */
      void *platform_data; /* Platform specific data, device core doesn't touch it */
       struct dev_pm_info power;
      struct dev_pm_domain *pm_domain;

    #ifdef CONFIG_NUMA
      int numa_node; /* NUMA node this device is close to */
    #endif
      u64 *dma_mask; /* dma mask (if dma'able device) */
      u64 coherent_dma_mask;/* Like dma_mask, but for alloc_coherent mappings as not all hardware supports
    64 bit addresses for consistent  allocations such descriptors. */

      struct device_dma_parameters *dma_parms;

      struct list_head dma_pools; /* dma pools (if dma'ble) */

      struct dma_coherent_mem *dma_mem; /* internal for coherent mem override */
    /* arch specific additions */
      struct dev_archdata archdata;

      struct device_node *of_node; /* associated device tree node */

      dev_t devt; /* dev_t, creates the sysfs "dev" */
      u32 id; /* device instance */

      spinlock_t devres_lock;
      struct list_head devres_head;

      struct klist_node knode_class;
      struct class *class;
      const struct attribute_group **groups; /* optional groups */

      void (*release)(struct device *dev);
    };

  • 相关阅读:
    YUI3学习笔记 ( 3 )
    DataSnap基础
    SQL语句的添加、删除、修改多种方法
    用命令实现Win7远程桌面关机和重启
    Delphi笔记数据库开发
    Delphi数据库处理
    数据库左连接的一点知识
    FastReport4.6程序员手册_翻译
    ADO BUG之'无法为更新定位行....' 解决之道
    动态将ADOQuery数据移植到ClientDataSet通用函数
  • 原文地址:https://www.cnblogs.com/-glb/p/10335854.html
Copyright © 2011-2022 走看看