STRUCT PCI_EPF(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

okay bestie, welcome to the Kernel API Manual page for struct pci_epf β€” yes, the (9) one, iykyk. πŸ’…

struct pci_epf β€” represents the PCI EPF device. That’s the vibe, that’s the whole assignment. ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

okay so here’s the full struct, literally every field, no cap:

       struct pci_epf {
           struct device           dev;
           const char              *name;
           struct pci_epf_header   *header;
           struct pci_epf_bar      bar[PCI_STD_NUM_BARS];
           u8 msi_interrupts;
           u16 msix_interrupts;
           u8 func_no;
           u8 vfunc_no;
           struct pci_epc          *epc;
           struct pci_epf          *epf_pf;
           struct pci_epf_driver   *driver;
           const struct pci_epf_device_id *id;
           struct list_head        list;
           struct mutex            lock;
           struct pci_epc          *sec_epc;
           struct list_head        sec_epc_list;
           struct pci_epf_bar      sec_epc_bar[PCI_STD_NUM_BARS];
           u8 sec_epc_func_no;
           struct config_group     *group;
           unsigned int            is_bound;
           unsigned int            is_vf;
           unsigned long           vfunction_num_map;
           struct list_head        pci_vepf;
           const struct pci_epc_event_ops *event_ops;
           struct pci_epf_doorbell_msg *db_msg;
           u16 num_db;
        };

πŸ’– Members πŸ’–

  • dev β€” the PCI EPF device 🫢
  • name β€” the name of the PCI EPF device
  • header β€” represents standard configuration header
  • bar β€” represents the BAR of EPF device
  • msi_interrupts β€” number of MSI interrupts required by this function
  • msix_interrupts β€” number of MSI-X interrupts required by this function
  • func_no β€” unique (physical) function number within this endpoint device
  • vfunc_no β€” unique virtual function number within a physical function
  • epc β€” the EPC device to which this EPF device is bound
  • epf_pf β€” the physical EPF device to which this virtual EPF device is bound
  • driver β€” the EPF driver to which this EPF device is bound
  • id β€” pointer to the EPF device ID
  • list β€” to add pci_epf as a list of PCI endpoint functions to pci_epc
  • lock β€” mutex to protect pci_epf_ops
  • sec_epc β€” the secondary EPC device to which this EPF device is bound
  • sec_epc_list β€” to add pci_epf as list of PCI endpoint functions to secondary EPC device
  • sec_epc_bar β€” represents the BAR of EPF device associated with secondary EPC
  • sec_epc_func_no β€” unique (physical) function number within the secondary EPC
  • group β€” configfs group associated with the EPF device
  • is_bound β€” indicates if bind notification to function driver has been invoked
  • is_vf β€” true - virtual function, false - physical function
  • vfunction_num_map β€” bitmap to manage virtual function number
  • pci_vepf β€” list of virtual endpoint functions associated with this function
  • event_ops β€” callbacks for capturing the EPC events
  • db_msg β€” data for MSI from RC side
  • num_db β€” number of doorbells

🌈 SEE ALSO 🌈

Kernel file ./include/linux/pci-epf.h keeps company with struct pci_epf_header(9), struct pci_epf_ops(9), struct pci_epc_event_ops(9), struct pci_epf_driver(9), struct pci_epf_bar_submap(9), struct pci_epf_bar(9), struct pci_epf_doorbell_msg(9), and struct pci_epf_msix_tbl(9). πŸ‘‘

🫢 this page came from ./include/linux and is dated October 2026 β€” bye bestie, stan the kernel πŸ’œ
πŸ“¦ where this page comes from