Linux设备树OF API 中OF的含义
* 前言
读Linux内核源码或者开源GPL程序源码时,看到各种英文首字母缩写满天飞,英文单词首字母缩写是Unix/Linux C 编程的一个历史习惯,部分英文首字母缩写结合上下文可以找到理解含义,但有的英文缩写怎么也找不到是什么含义,来自哪里仿佛天外飞来就在哪里嘲笑你。自己的一个怪癖时,当找不到一个源码中的英文首字母缩写时就百般抓狂,痛苦万分,难受想哭,源码也读不下去了。不知道有没有其他的人有我一样的感受和习惯。
*缘起
在开发网关设备是调试Linux 声卡驱动模块,接触到了Linux 设备树(Device Tree Source)的概念,之后再驱动的源码中看到了内核设备树操作的 'struct of_device_id', 'of_find_node_by_type'等函数。
对这些函数的用途,使用方法,在CSDN博客上都已经有很好的资料介绍:
https://blog.csdn.net/Bruce_4/article/details/108257911
https://blog.csdn.net/qq_27149449/article/details/109274627
然后我就有了疑惑,在这些 OF 设备的 OF API的函数都用前传'of_'开头,但‘of’是什么的缩写哪, 'of'表示的是什么意思?
在中文网站和英文Stackflow都没有找到答案,痛苦,抓狂。
*答案
读Linux 设备树的概念介绍的时候,有博客提到过ARM Linux 设备树最初是从 IBM 移植过来的。我再'Linux-4.14/include/linux/*'目录下搜索下所有的'of_'开头的文件。
找到了一个文件'linux-4.14.x/include/linux/of.h',使用vi编辑器打开,在文件的开头接提到
“Defindations for talking to the Open Firmware PROM on Powe Macitosh and other computers”,文件的作者是IBM,开发时间是1995-2006年。
至此得到结论,设备树OF API系列函数中的'of'是' Open Firmware'的缩写,最初是IBM定义的一种结束概念,后面由于习惯在设备树中就都是用'of_'开头的缩写了。
*结果
再读Linux驱动设备树的源码心情就好多了。
Linux设备树OF API 中OF的含义相关推荐
- 【正点原子Linux连载】第四十三章 Linux设备树 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- Linux设备树语法详解【转】
转自:http://www.cnblogs.com/xiaojiang1025/p/6131381.html 概念 Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备 ...
- Linux 设备树的使用技巧
Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写.引入了设备树之后,驱动代码只负 ...
- linux 设备树详解
2 Linux 设备树 2.1 什么是设备树? 设备树(Device Tree),将这个词分开就是"设备"和"树",描述设备树的文件叫做DTS(Device T ...
- ARM Linux设备树
1.ARM设备树起源 在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,很多代码只是在描述板级细节,而这些板级细节对于内核来讲 ...
- 探索Linux设备树:硬件描述与驱动程序的桥梁
目录标题 引言:Linux设备树简介 | Introduction: Linux Device Tree Overview a. 设备树的背景与发展 | Background and Developm ...
- Linux设备驱动程序学习(十六)——Linux设备树解析
设备树简介 在内核源码中,存在大量对板级细节信息描述的代码.这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录,对内核而言这些platform设备.res ...
- linux设备树笔记__基于msm8x10的基本分析
由文章,linux设备树笔记__dts基本概念及语法,我们知道了基本概念,知道了大概的设备树节点及其属性,而节点下的属性大多是自定义,除了保留的几个属性,大多从.dts是无法知道其用途的,这个就需要看 ...
- 我眼中的Linux设备树(五 根节点)
五 根节点 一个最简单的设备树必须包含根节点,cpus节点,memory节点.根节点的名字及全路径都是"/",至少需要包含model和compatible两个属性.model属性我 ...
最新文章
- 更快更强,谷歌提出SWideRNet:全景分割新标杆来啦!
- Flutter开发之路由跳转与传参(七)
- 当redis执行flush操作后的补救措施
- java读写properties配置文件方法
- OpenCASCADE:形状愈合之消息机制
- mysql自定义函数多参数_自定义mysql函数 - 无法传递参数
- Java基础知识融合(Arraylist集合,多态,继承,封装,包装类,循环嵌套,if嵌套等等)
- 安卓 spinner下拉框 做模糊查询_用图表控件做一个简单的员工信息查询系统
- 窗体传值 父子窗体传值情况 c# 1231
- hadoop jps 没有命令_【问题解决方案】之 hadoop 用jps命令后缺少namenode的问题
- 第1章 Ext JS开发基本环境准备与项目创建[3/4]
- php实现最后登录时间,php实例之基于Cookie的登录表单和获取最后登录时间
- java 串口通信问题_jsp,java串口通信的问题
- rest规范 ; restful 风格; gradel介绍 ; idea安装 ;
- webstorm激活破解
- libRTMP 整体说明
- 关于带宽,数据速度,码元,码间串扰
- 机器学习 扬帆起航004-02评估假设与比较检验
- 微信开发工具-命令行的使用
- lisp 圆柱螺旋线_Visual LISP开发三维圆柱螺旋线程序
热门文章
- ppt给图片增加高斯模糊_【毕业答辩】PPT美化:如何设计毕业答辩的封面
- 多个pdf合并成一个pdf_手机里多个PDF合并成一个PDF的免费方法
- java第五章课后题_黑猴子的家:Java SE 练习题第五章
- Sigar - no sigar-amd64-winnt.dll in java.library.path
- loadrunner提示:Cannot save the license information because acceses to the registry is denied
- Android开发笔记(八十一)屏幕规格适配
- 华硕v4000fj笔记本怎么样_所有已开箱笔记本的目录汇总 20200812
- 【架构设计的艺术】Kafka如何通过精妙的架构设计优化JVM GC问题?
- Android中BitmapFactory.Options详解
- 【UE4+Vive】学习笔记1