* 前言

读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的含义相关推荐

  1. 【正点原子Linux连载】第四十三章 Linux设备树 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  2. Linux设备树语法详解【转】

    转自:http://www.cnblogs.com/xiaojiang1025/p/6131381.html 概念 Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备 ...

  3. Linux 设备树的使用技巧

    Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写.引入了设备树之后,驱动代码只负 ...

  4. linux 设备树详解

    2 Linux 设备树 2.1 什么是设备树? 设备树(Device Tree),将这个词分开就是"设备"和"树",描述设备树的文件叫做DTS(Device T ...

  5. ARM Linux设备树

    1.ARM设备树起源 在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,很多代码只是在描述板级细节,而这些板级细节对于内核来讲 ...

  6. 探索Linux设备树:硬件描述与驱动程序的桥梁

    目录标题 引言:Linux设备树简介 | Introduction: Linux Device Tree Overview a. 设备树的背景与发展 | Background and Developm ...

  7. Linux设备驱动程序学习(十六)——Linux设备树解析

    设备树简介   在内核源码中,存在大量对板级细节信息描述的代码.这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录,对内核而言这些platform设备.res ...

  8. linux设备树笔记__基于msm8x10的基本分析

    由文章,linux设备树笔记__dts基本概念及语法,我们知道了基本概念,知道了大概的设备树节点及其属性,而节点下的属性大多是自定义,除了保留的几个属性,大多从.dts是无法知道其用途的,这个就需要看 ...

  9. 我眼中的Linux设备树(五 根节点)

    五 根节点 一个最简单的设备树必须包含根节点,cpus节点,memory节点.根节点的名字及全路径都是"/",至少需要包含model和compatible两个属性.model属性我 ...

最新文章

  1. 更快更强,谷歌提出SWideRNet:全景分割新标杆来啦!
  2. Flutter开发之路由跳转与传参(七)
  3. 当redis执行flush操作后的补救措施
  4. java读写properties配置文件方法
  5. OpenCASCADE:形状愈合之消息机制
  6. mysql自定义函数多参数_自定义mysql函数 - 无法传递参数
  7. Java基础知识融合(Arraylist集合,多态,继承,封装,包装类,循环嵌套,if嵌套等等)
  8. 安卓 spinner下拉框 做模糊查询_用图表控件做一个简单的员工信息查询系统
  9. 窗体传值 父子窗体传值情况 c# 1231
  10. hadoop jps 没有命令_【问题解决方案】之 hadoop 用jps命令后缺少namenode的问题
  11. 第1章 Ext JS开发基本环境准备与项目创建[3/4]
  12. php实现最后登录时间,php实例之基于Cookie的登录表单和获取最后登录时间
  13. java 串口通信问题_jsp,java串口通信的问题
  14. rest规范 ; restful 风格; gradel介绍 ; idea安装 ;
  15. webstorm激活破解
  16. libRTMP 整体说明
  17. 关于带宽,数据速度,码元,码间串扰
  18. 机器学习 扬帆起航004-02评估假设与比较检验
  19. 微信开发工具-命令行的使用
  20. lisp 圆柱螺旋线_Visual LISP开发三维圆柱螺旋线程序

热门文章

  1. ppt给图片增加高斯模糊_【毕业答辩】PPT美化:如何设计毕业答辩的封面
  2. 多个pdf合并成一个pdf_手机里多个PDF合并成一个PDF的免费方法
  3. java第五章课后题_黑猴子的家:Java SE 练习题第五章
  4. Sigar - no sigar-amd64-winnt.dll in java.library.path
  5. loadrunner提示:Cannot save the license information because acceses to the registry is denied
  6. Android开发笔记(八十一)屏幕规格适配
  7. 华硕v4000fj笔记本怎么样_所有已开箱笔记本的目录汇总 20200812
  8. 【架构设计的艺术】Kafka如何通过精妙的架构设计优化JVM GC问题?
  9. Android中BitmapFactory.Options详解
  10. 【UE4+Vive】学习笔记1