浅析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);};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值