通过acpi_device_hid 得到device的HID
2017-09-27 17:31
411 查看
用acpi_device_hid 可以的到device的hid,如下所示: static int acpi_processor_get_info(struct acpi_device *device) { //这里的#define ACPI_PROCESSOR_OBJECT_HID "LNXCPU" if (!strcmp(acpi_device_hid(device), ACPI_PROCESSOR_OBJECT_HID)) { /* Declared with "Processor" statement; match ProcessorID */ status = acpi_evaluate_object(pr->handle, NULL, NULL, &buffer); if (ACPI_FAILURE(status)) { dev_err(&device->dev, "Failed to evaluate processor object (0x%x)\n", status); return -ENODEV; } } } 可见acpi_device_hid 是从device->pnp.ids这个list中拿到device的hid的 const char *acpi_device_hid(struct acpi_device *device) { struct acpi_hardware_id *hid; if (list_empty(&device->pnp.ids)) return dummy_hid; hid = list_first_entry(&device->pnp.ids, struct acpi_hardware_id, list); return hid->id; } 而这个device->pnp.ids 是在acpi_init_device_object 中初始化 void acpi_init_device_object(struct acpi_device *device, acpi_handle handle, int type, unsigned long long sta) { INIT_LIST_HEAD(&device->pnp.ids); //通过acpi_set_pnp_ids ->acpi_add_id 将hid添加到pnp.ids acpi_set_pnp_ids(handle, &device->pnp, type); } 可以看到是将hid添加到id添加的pnp->ids static void acpi_add_id(struct acpi_device_pnp *pnp, const char *dev_id) { struct acpi_hardware_id *id; id = kmalloc(sizeof(*id), GFP_KERNEL); if (!id) return; id->id = kstrdup_const(dev_id, GFP_KERNEL); if (!id->id) { kfree(id); return; } list_add_tail(&id->list, &pnp->ids); pnp->type.hardware_id = 1; }
相关文章推荐
- acpi_hardware_id可以通过HID/CLD/UID/CLS/method/path获得
- vfio 通过VFIO_DEVICE_GET_REGION_INFO得到io信息,然后mmap到user space使用
- 通过反射得到泛型的类型参数
- 通过出生年月得到当前年龄java代码实例
- 如何通过JS得到访问者的IP
- vbs 通过 WMI 得到进程列表及其它相关信息
- 当通过JQuery得到后代或祖先的数组后怎么获得数组中的内容
- 通过暴力反射得到私有成员
- [存底]如何向某网址Post信息,并得到CookieContainer以便以后直接通过验证
- SQL server 2008里面通过sys.dm_exec_procedure_stats得到存储过程的执行信息
- STM32_USB-FS-Device_Lib_V4.0.0中CustomHID实例在STM3210E-EVAL上的实现
- 通过反射从数据库返回集合ResultSet中得到实体对象的list集合
- 整型数组,任意选择arr 相邻两个数相加的到和sum,将sum替换这相邻的两个数,得到新数组arr',看至少通过多少次这样的运算方式使其成为回文数组
- 通过js去掉所有的html标签,得到HTML标签中的所有内容 【2018-1-30】
- [open source]通过汉字得到拼音的函数库(getpinyin)发布
- Rsa 非对称加密算法使用问题分享--使用通过密钥对同一段数据加密得到结果每次不一样
- 通过反射得到model的真实类型
- 如何通过编程得到所有窗体的标题及类名称
- Object get["属性"]; java反射技术通过对象和属性名得到属性值
- Ask Ziggy:通过语音进行搜索 同时得到语音答复