Как получить номер шины / устройства / номер из структуры pci_dev? - PullRequest
0 голосов
/ 17 декабря 2018

https://elixir.bootlin.com/linux/latest/source/include/linux/pci.h#L286

В

struct pci_dev,

Я вижу только шины и функции:

struct pci_bus  *bus;   

и

unsigned int    devfn;  

кажетсянет информации об устройстве (B / D / F)?

и

struct pci_slot *slot;

В моем тесте слот * указывает на NULL, почему?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Я нашел:

device = PCI_SLOT(pdev->devfn);
fn =  PCI_FUNC(pdev->devfn);

https://elixir.bootlin.com/linux/v3.5/source/include/linux/pci.h#L31

0 голосов
/ 17 декабря 2018

Devfn содержит номер устройства в битах 7: 3 и номер функции в битах 2: 0.Номер автобуса в автобусе -> номер.Итак, BDF:

    bus->number << 8 | devfn

Я не знаю про слот;Возможно, устройство, которое вы смотрите, является интегрированным?

...