acpi_pci_find_root 函数根据形参的handle返回对应的pci root bridge
其源码分析如下:
struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle)
{
struct acpi_pci_root *root;
struct acpi_device *device;
#首先根据handle找到device,并通过acpi_match_device_ids 判断这个device是否是root bridge
if (acpi_bus_get_device(handle, &device) ||
acpi_match_device_ids(device, root_device_ids))
return NULL;
#如果是root bridge的话,则返回这个device对应的acpi_pci_root
root = acpi_driver_data(device);
return root;
}
static inline void *acpi_driver_data(struct acpi_device *d)
{
return d->driver_data;
}
可见acpi_pci_root 是保存在acpi_device的driver_data中
内核ACPI函数API之acpi_pci_find_root
最新推荐文章于 2024-08-15 20:57:31 发布