在查看设备驱动时,经常看到如下结构。

为什么会有一个of_match_ptr呢?

查看源代码,在include/linux/of.h里面。

#ifdef CONFIG_OF
...
#define of_match_ptr(_ptr)  (_ptr)
...
#else /* CONFIG_OF */
...
#define of_match_ptr(_ptr)  NULL
...
#endif /* CONFIG_OF */

查看arch/arm64/KCONFIG,可以知道CONFIG_OF默认是打开的,意为使用设备树

所以,of_match_ptr宏的作用是,当使用设备树时,使用id_table进行匹配,否则其为空。

Linux驱动--of_match_ptr 宏定义相关推荐

  1. Linux内核代码宏定义,Linux Kernel源代码中与段有关的重要宏定义

    __init, __initdata等属性标志,是要把这种属性的代码放入目标文件的.init.text节,数据放入.init.data节──这一过程是通过编译内核时为相关目标平台提供了xxx.lds链 ...

  2. 【GCC系列】深入理解Linux内核 -- __no_sanitize_address宏定义

    本文使用的Linux源码内核版本:Linux 5.10.0 __no_sanitize_address宏定义: 在Linux的内核源码里,尤其是一些关键的内核函数,会包含__no_sanitize_a ...

  3. 【GCC系列】深入理解Linux内核 -- __visible宏定义

    __visible宏定义 在Linux的内核源码里,尤其是一些关键的内核函数,会包含__visible宏,它是用来做什么的呢? asmlinkage __visible void __init __n ...

  4. Linux中THIS_MODULE宏定义详解

    一直都在耿耿于怀,这个THIS_MODULE到底是个什么玩意,linux内核中无处不在的东西.今天上网搜了一下,算是基本明白了.网上牛人写的已经比较详细,另外目前暂时没有时间往更深层次分析,所以直接贴 ...

  5. linux 内核 THIS_MODULE宏定义详解

    结构体struct module在内核中代表一个内核模块,通过insmod(实际执行init_module系统调用)把自己编写的内核模块插入内核时,模块便与一个 struct module结构体相关联 ...

  6. linux c 取消宏定义

    C/C++中可以用 #undef xxx 来取消 宏xxx 的定义. 举例如下 #include <iostream> using namespace std;int main(int a ...

  7. Linux内核--各种宏定义

    1. asmlinkage宏 [cpp] view plaincopy #define asmlinkage __attribute__((regparm(0))). 解释:gcc编译器在汇编过程中调 ...

  8. 【Android NDK 开发】JNI 方法解析 ( JNIEXPORT 与 JNICALL 宏定义作用 )

    文章目录 I . JNIEXPORT 与 JNICALL 宏定义 II . JNIEXPORT 与 JNICALL 宏定义说明 ( Windows 平台 ) III . JNIEXPORT 与 JNI ...

  9. linux驱动 打印变量,linux驱动 内核函数 变量 宏定义

    insmod modprobe(自动检测 模块加载时需要的别的模块) rmmod 用户空间工具, 加载模块到运行中的内核以及去除它们. #include module_init(init_functi ...

最新文章

  1. TensorFlow可以做什么?让Google Brain首席工程师告诉你
  2. static在内存层面的作用_虚拟地址空间--用户进程看到的自己所占用的内存
  3. CentOS7安装MySQL(完整版)
  4. centos6.8安装node
  5. 客户管理系统登录PSD模板
  6. Unity3D 中 用quaternion 来对一个坐标点进行旋转的初步体会
  7. 郑州大学期末php试题,郑州大学英语期末考试试题及答案
  8. Matlab一元线性拟合及F检验
  9. 阿里巴巴重要开源项目汇总(资料参考)
  10. 跨境电商必看:amazon账号关联因素
  11. 摇杆控制方向原理_摇杆电位器结构及工作原理详解
  12. Android 9(API级别28)特性总结
  13. 学生信息管理系统-web项目实训(基于JAVA)
  14. ROS 下的仿真小乌龟
  15. ntp服务器授时原理,NTP原理简介
  16. 采用粒子群优化算法实现投资组合优化【Matlab实现】
  17. 各种浏览器全屏模式的方法、属性和事件介绍
  18. Centos 7下 ceph的安装
  19. Emoji处理方式大起底
  20. (NYoj 304) 节能 --区间DP

热门文章

  1. 人民币大小写转换(php版),java人民币大小写转换方法
  2. 如何通过EDI提升企业采购管理水平?
  3. EDI成为变革航运和港口行业的工具
  4. hadoop黑名单机制
  5. Javascript面向对象:Object.defineProperty()与Object.defineProperties()
  6. pc联想电脑下载最快的方法网站
  7. 2023年重庆大学计算机专业考研参考书、择校及备考经验
  8. 中国手机网络制式常识
  9. ssh移植 打包根文件系统的第一步
  10. 移动端WEB程序,类淘宝猜你喜欢效果