当前位置: 代码迷 >> 综合 >> kernel component.c analyze
  详细解决方案

kernel component.c analyze

热度:67   发布时间:2023-12-19 14:35:21.0

       在kernel中,component 和 master机制用来管理一个主设备,多个辅设备的subsystem,目前最典型的应用在DRM subsystem中。该机制的相关代码在drivers/base/component.c中, https://github.com/torvalds/linux/blob/master/drivers/base/component.c中有最新关于改文件的最新的详细的介绍。

  • component.c 中声明了3个静态全局变量:

       static DEFINE_MUTEX(component_mutex);
       static LIST_HEAD(component_list);
       static LIST_HEAD(masters); 

其中, 互斥锁component_mutex用于保证资源的互斥访问。component_list为双向链表头,最终kernel中所有的component会形成一个双向链表,而component_list为这个双向链表的表头。masters类似,最终kernel中所有的master会形成一个双向链表,而masters即为这个双向链表的表头。

  • match 结构体:

struct component_match {
    size_t alloc;
    size_t num;
    struct component_match_array *compare;
};

struct component_match_array {
    void *data;
    int (*compa

  相关解决方案