当前位置: 首页 > news >正文

Linux内核学习笔记——ACPI命名空间

所有定义块都加载到单个命名空间中。命名空间 是由名称和路径标识的对象层次结构。 以下命名约定适用于 ACPI 中的对象名称 命名空间:

所有名称的长度均为 32 位。

名称的第一个字节必须是“A”-“Z”、“_”之一。

名称的每个剩余字节必须是“A”-“Z”、“0”之一 - ‘9’, ‘_’.

以“_”开头的名称由 ACPI 规范保留。

“”符号表示命名空间的根(即名称 前缀为 ‘’ 是相对于命名空间根目录的)。

“^”符号表示当前命名空间节点的父节点 (即以“^”开头的名称相对于 当前命名空间节点)。

下图显示了一个示例 ACPI 命名空间:

+------+
| \    |                     Root
+------+|| +------++-| _PR  |                 Scope(_PR): the processor namespace| +------+|   ||   | +------+|   +-| CPU0 |             Processor(CPU0): the first processor|     +------+|| +------++-| _SB  |                 Scope(_SB): the system bus namespace| +------+|   ||   | +------+|   +-| LID0 |             Device(LID0); the lid device|   | +------+|   |   ||   |   | +------+|   |   +-| _HID |         Name(_HID, "PNP0C0D"): the hardware ID|   |   | +------+|   |   ||   |   | +------+|   |   +-| _STA |         Method(_STA): the status control method|   |     +------+|   ||   | +------+|   +-| PCI0 |             Device(PCI0); the PCI root bridge|     +------+|       ||       | +------+|       +-| _HID |         Name(_HID, "PNP0A08"): the hardware ID|       | +------+|       ||       | +------+|       +-| _CID |         Name(_CID, "PNP0A03"): the compatible ID|       | +------+|       ||       | +------+|       +-| RP03 |         Scope(RP03): the PCI0 power scope|       | +------+|       |   ||       |   | +------+|       |   +-| PXP3 |     PowerResource(PXP3): the PCI0 power resource|       |     +------+|       ||       | +------+|       +-| GFX0 |         Device(GFX0): the graphics adapter|         +------+|           ||           | +------+|           +-| _ADR |     Name(_ADR, 0x00020000): the PCI bus address|           | +------+|           ||           | +------+|           +-| DD01 |     Device(DD01): the LCD output device|             +------+|               ||               | +------+|               +-| _BCL | Method(_BCL): the backlight control method|                 +------+|| +------++-| _TZ  |                 Scope(_TZ): the thermal zone namespace| +------+|   ||   | +------+|   +-| FN00 |             PowerResource(FN00): the FAN0 power resource|   | +------+|   ||   | +------+|   +-| FAN0 |             Device(FAN0): the FAN0 cooling device|   | +------+|   |   ||   |   | +------+|   |   +-| _HID |         Name(_HID, "PNP0A0B"): the hardware ID|   |     +------+|   ||   | +------+|   +-| TZ00 |             ThermalZone(TZ00); the FAN thermal zone|     +------+|| +------++-| _GPE |                 Scope(_GPE): the GPE namespace+------+Figure 2. Example ACPI Namespace

Linux ACPI 设备树

结构acpi_device对象的 sysfs 层次结构对应于 图 2 中所示的示例 ACPI 命名空间,添加了 固定PWR_BUTTON/SLP_BUTTON设备如下所示:

+--------------+---+-----------------+
| LNXSYSTEM:00 | \ | acpi:LNXSYSTEM: |
+--------------+---+-----------------+|| +-------------+-----+----------------++-| LNXPWRBN:00 | N/A | acpi:LNXPWRBN: || +-------------+-----+----------------+|| +-------------+-----+----------------++-| LNXSLPBN:00 | N/A | acpi:LNXSLPBN: || +-------------+-----+----------------+|| +-----------+------------+--------------++-| LNXCPU:00 | \_PR_.CPU0 | acpi:LNXCPU: || +-----------+------------+--------------+|| +-------------+-------+----------------++-| LNXSYBUS:00 | \_SB_ | acpi:LNXSYBUS: || +-------------+-------+----------------+|   ||   | +- - - - - - - +- - - - - - +- - - - - - - -+|   +-| PNP0C0D:00 | \_SB_.LID0 | acpi:PNP0C0D: ||   | +- - - - - - - +- - - - - - +- - - - - - - -+|   ||   | +------------+------------+-----------------------+|   +-| PNP0A08:00 | \_SB_.PCI0 | acpi:PNP0A08:PNP0A03: ||     +------------+------------+-----------------------+|       ||       | +-----------+-----------------+-----+|       +-| device:00 | \_SB_.PCI0.RP03 | N/A ||       | +-----------+-----------------+-----+|       |   ||       |   | +-------------+----------------------+----------------+|       |   +-| LNXPOWER:00 | \_SB_.PCI0.RP03.PXP3 | acpi:LNXPOWER: ||       |     +-------------+----------------------+----------------+|       ||       | +-------------+-----------------+----------------+|       +-| LNXVIDEO:00 | \_SB_.PCI0.GFX0 | acpi:LNXVIDEO: ||         +-------------+-----------------+----------------+|           ||           | +-----------+-----------------+-----+|           +-| device:01 | \_SB_.PCI0.DD01 | N/A ||             +-----------+-----------------+-----+|| +-------------+-------+----------------++-| LNXSYBUS:01 | \_TZ_ | acpi:LNXSYBUS: |+-------------+-------+----------------+|| +-------------+------------+----------------++-| LNXPOWER:0a | \_TZ_.FN00 | acpi:LNXPOWER: || +-------------+------------+----------------+|| +------------+------------+---------------++-| PNP0C0B:00 | \_TZ_.FAN0 | acpi:PNP0C0B: || +------------+------------+---------------+|| +-------------+------------+----------------++-| LNXTHERM:00 | \_TZ_.TZ00 | acpi:LNXTHERM: |+-------------+------------+----------------+Figure 3. Example Linux ACPI Device Tree

注意

每个节点都表示为“对象/路径/模态别名”,其中:

“对象”是 sysfs 中对象目录的名称。

“path”是相应 ACPI 命名空间对象,由对象的“路径”返回 系统属性。

‘modalias’ 是对象的 ‘modalias’ sysfs 的值 属性(如本文档前面所述)。

http://www.lryc.cn/news/133390.html

相关文章:

  • 使用 OpenCV Python 实现自动图像注释工具的详细步骤--附完整源码
  • RunnerGo中WebSocket、Dubbo、TCP/IP三种协议接口测试详解
  • 【Java 动态数据统计图】动态数据统计思路案例(动态,排序,数组)一(112)
  • kafka踩坑
  • 让你专注于工作的电脑桌面日程提醒软件
  • 62页智慧产业园区数字化综合解决方案PPT
  • 苹果开发者账号注册方法简明指南
  • SQL-每日一题【1321. 餐馆营业额变化增长】
  • PyCharm PyQt5 开发环境搭建
  • 2023-08-17 Untiy进阶 C#知识补充8——C#中的日期与时间
  • SPSS--如何使用分层分析以及分层分析案例分享
  • 时序数据库influxdb笔记
  • 8月18日上课内容 Haproxy搭建Web群集
  • 【高阶数据结构】红黑树详解
  • 树莓牌4B安装Centos8
  • SQL Monitor Crack,PostgreSQL监控的传入复制图表
  • 软件测试技术之单元测试—工程师 Style 的测试方法(3)
  • Ubuntu中安装OpenSSL
  • CW4-6A-S、CW4-10A-S、CW4-20A-S、CW4-30A-S螺栓式滤波器
  • 课程项目设计--项目设计--宿舍管理系统--vue+springboot完成项目--项目从零开始
  • 【Linux】Linux下常用搜索命令及其常用选项小结
  • web APIs-练习五
  • MySQL——基础——外连接
  • spring boot 实现Redisson分布式锁及其读写锁
  • java-IONIO
  • Python学习笔记_基础篇(十一)_socket编程
  • C#8.0本质论第三章--更多数据类型
  • 浅拷贝与深拷贝
  • 背包 问题
  • 蓝牙资讯|安卓将加强耳机音量监控,耳机查找功能将更加普遍