【问题标题】:How do I get a list of ACPI devices on a Linux Kernel Driver?如何获取 Linux 内核驱动程序上的 ACPI 设备列表?
【发布时间】:2017-12-04 09:16:11
【问题描述】:

我正在开发一个 Linux 内核驱动程序。部分要求是获取系统上的 ACPI 设备列表并进行迭代。虽然以下代码适用于用户模式,但它不会在内核上编译。

#include <dirent.h>
#include <stdio.h>

int main(void)
{
   DIR           * d;
   struct dirent * dir;
   d = opendir("/sys/bus/acpi/devices");

   if (d)
   {
      while ((dir = readdir(d)) != NULL)
      {
         printf("%s\n", dir->d_name);
      }

      closedir(d);
   }

   return 0;
}

内核中是否有类似的功能可供我获取 ACPI 设备列表?

【问题讨论】:

标签: linux linux-kernel acpi


【解决方案1】:

您使用 linux 用户空间头文件和内核中未使用的函数编写的代码。 Linux 内核有自己的设备处理方式。

在内核中:ACPI 实现枚举总线后面的设备(平台、SPI 和 I2C),创建物理设备并将它们绑定到 ACPI 命名空间中的 ACPI 句柄。阅读完整的内核文本here

【讨论】:

    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2011-05-28
    相关资源
    最近更新 更多