天天看點

核心ACPI函數API之acpi_pci_find_root

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中