STRUCT PCI_EPF_BAR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct pci_epf_bar(9) πŸ’–

okay bestie, welcome to the struct pci_epf_bar(9) page from the Kernel API Manual β€” this is literally the glow-up guide for the BAR of an EPF device, and yes it's as iconic as it sounds πŸŽ€

✨ NAME ✨

struct pci_epf_bar β€” the struct that represents the BAR of EPF device πŸ’… no cap, that's the whole vibe.

🌸 SYNOPSIS 🌸

here's the whole squad, laid out exactly how the kernel wrote it, don't touch a single character bestie:

struct pci_epf_bar {
    dma_addr_t phys_addr;
    void *addr;
    size_t size;
    size_t mem_size;
    enum pci_barno  barno;
    int flags;
    unsigned int    num_submap;
    struct pci_epf_bar_submap       *submap;
 };

πŸ¦‹ Members πŸ¦‹

every member gets their moment, and every one of them ate:

  • phys_addr β€” the physical address that should be mapped to the BAR. that's its whole job fr fr.
  • addr β€” the virtual address</virtual> corresponding to the phys_addr. they're a matched set, iykyk πŸ’œ
  • size β€” the size of the address space present in the BAR. not the vibe size, the real size.
  • mem_size β€” the size actually allocated to accommodate the iATU alignment requirement. lowkey this one's doing the extra credit work ✨
  • barno β€” BAR number. yeah. that's the number of the BAR. main character energy in its simplest form πŸ‘‘
  • flags β€” flags that are set for the BAR. it's giving "tell me what mood you're in today" 🚩
  • num_submap β€” number of entries in submap. counting is caring 🫢
  • submap β€” array of subrange descriptors allocated by the caller. See struct pci_epf_bar_submap for the semantics in detail. (yes ms girl, go read that one too, it's linked below πŸ’€)

🌈 SEE ALSO 🌈

go give these besties a read, they're all in the Kernel file ./include/linux/pci-epf.h:

  • 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_doorbell_msg(9)
  • struct pci_epf(9)
  • struct pci_epf_msix_tbl(9)

and that's the page!! πŸ“ this little icon came straight out of ./include/linux, dated October 2026, and it's still signed struct pci_epf_bar(9) β€” so go forth, map those BARs, and slay πŸ’–βœ¨πŸ§š

πŸ“¦ where this page comes from