内核ACPI函数API之acpi_is_root_bridge

10人阅读 评论(0) 收藏 举报
分类:
acpi_is_root_bridge 用于判断一个形参的acpi_handle 是否是root bridge
其源码分析如下:
int acpi_is_root_bridge(acpi_handle handle)
{
	int ret;
	struct acpi_device *device;
	#通过handle得到这个device
	ret = acpi_bus_get_device(handle, &device);
	if (ret)
		return 0;
	#查看这个device是否在root_device_ids 数组中,从这里知道系统中所有的root bridge 都是保存在root_device_ids 这个数组中
	ret = acpi_match_device_ids(device, root_device_ids);
	if (ret)
		return 0;
	else
		return 1;
}

static const struct acpi_device_id root_device_ids[] = {
	{"PNP0A03", 0},
	{"", 0},
};
可见acpi_match_device_ids 会比较acpi_device_id 中的id这个字符串时发现相等
struct acpi_device_id {
	__u8 id[ACPI_ID_LEN];
	kernel_ulong_t driver_data;
	__u32 cls;
	__u32 cls_msk;
};

查看评论

内核ACPI函数API之acpi_has_method

acpi_has_method(acpi_handle handle, char *name) 用于判断handle 是否提供形参name指定的method 其使用的例程如下: if (!acpi_...
  • tiantao2012
  • tiantao2012
  • 2018年03月28日 00:28
  • 20

内核ACPI函数API之acpi_os_unmap_iomem

acpi_os_unmap_iomem函数用于释放acpi_os_map_iomem 映射的虚拟地址 其源码分析如下: void __ref acpi_os_unmap_iomem(void __i...
  • tiantao2012
  • tiantao2012
  • 2018年04月03日 08:21
  • 11

内核ACPI函数API之acpi_os_map_iomem

void __iomem *__ref acpi_os_map_iomem(acpi_physical_address phys, acpi_size size) 的作用是将形参指定的物理地址的范围映...
  • tiantao2012
  • tiantao2012
  • 2018年04月03日 08:20
  • 9

内核ACPI函数API之acpi_platform_fill_resource

static void acpi_platform_fill_resource(struct acpi_device *adev, const struct resource *src, struc...
  • tiantao2012
  • tiantao2012
  • 2018年04月08日 08:44
  • 17

内核ACPI函数API之acpi_dev_present

内核ACPI函数API之acpi_dev_present bool acpi_dev_present(const char *hid, const char *uid, s64 hrv) 这个函数用于...
  • tiantao2012
  • tiantao2012
  • 2018年04月01日 14:56
  • 20

内核ACPI函数API之acpi_bus_get_device

acpi_bus_get_device 这个函数可以通过acpi_handle得到一个acpi_device 其用法如下: if (acpi_bus_get_device(ACPI_HANDLE(&...
  • tiantao2012
  • tiantao2012
  • 2018年04月04日 08:31
  • 11

内核ACPI函数API之acpi_device_dir

acpi_device_dir这是个宏用于得到形参的acpi_device的成员变量dir.entry struct acpi_device { struct acpi_device_dir dir...
  • tiantao2012
  • tiantao2012
  • 2018年04月01日 14:37
  • 16

内核ACPI函数API之acpi_get_table

acpi_get_table(char *signature, u32 instance, struct acpi_table_header ** out_table) 这个函数用于获...
  • tiantao2012
  • tiantao2012
  • 2018年04月04日 08:30
  • 8

内核ACPI函数API之acpi_evaluate_integer

acpi_evaluate_integer 这个函数用于从bios中获取一个字符串的值 其使用的例程如下: status = acpi_evaluate_integer(ac->dev...
  • tiantao2012
  • tiantao2012
  • 2018年03月28日 00:04
  • 18

内核ACPI函数API之acpi_dev_get_resources

acpi_dev_get_resources 用于获取形参指定的acpi_device 所有的资源,这里的资源包括 memory/io/interrupt等 部分资源定义如下: #define IOR...
  • tiantao2012
  • tiantao2012
  • 2018年04月02日 09:50
  • 17
    个人资料
    持之以恒
    等级:
    访问量: 36万+
    积分: 1万+
    排名: 875
    最新评论