STRUCT PCI_EPC_BAR_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct pci_epc_bar_desc(9) 🌸

okay bestie, welcome to the Kernel API Manual page for struct pci_epc_bar_desc β€” yes it's a whole mouthful, but it's literally just the hardware description for a BAR, and honestly? kind of a baddie for it. πŸ’…


✨ NAME ✨

struct pci_epc_bar_desc β€” the hardware description for a BAR. that's it, that's the vibe check, she describes hardware. iconic.


πŸŽ€ SYNOPSIS πŸŽ€

struct pci_epc_bar_desc {
    enum pci_epc_bar_type type;
    u64 fixed_size;
    bool only_64bit;
    u8 nr_rsvd_regions;
    const struct pci_epc_bar_rsvd_region *rsvd_regions;
 };

look at her. five fields. no notes. 🫢


πŸ’– Members πŸ’–

so, field by field, group-chat style:

  • type β€” the type of the BAR. that's the whole job. which type of BAR it is. simple, elegant, main character energy.
  • fixed_size β€” the fixed size, and heads up: this one only applies if type is BAR_FIXED_MASK. so if the type isn't that, this number is just sitting there not applying. not me pointing that out. πŸ™ˆ
  • only_64bit β€” if true, an EPF driver is not allowed to choose whether this BAR gets configured as 32-bit or 64-bit β€” the EPF driver must configure this BAR as 64-bit. no options, no debate, it's giving "the choice was made for you." ⭐
  • nr_rsvd_regions β€” the number of fixed subregions described for BAR_RESERVED. count 'em. πŸ”₯
  • rsvd_regions β€” the fixed subregions behind BAR_RESERVED. yes, plural, yes it's a pointer type in the synopsis, pls stay consistent bestie. πŸ¦‹
lowkey reminder: fixed_size is conditional on type being BAR_FIXED_MASK, and only_64bit being true locks out EPF driver choice entirely. those are the two things people mess up, so like... don't. πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

okay the friend group, all of them, going in the exact order they showed up:

  • Kernel file ./include/linux/pci-epc.h
  • struct pci_epc_map(9)
  • enum pci_epc_aux_resource_type(9)
  • struct pci_epc_aux_resource(9)
  • struct pci_epc_ops(9)
  • struct pci_epc_mem_window(9)
  • struct pci_epc_mem(9)
  • struct pci_epc(9)
  • enum pci_epc_bar_type(9)
  • enum pci_epc_bar_rsvd_region_type(9)
  • struct pci_epc_bar_rsvd_region(9)
  • struct pci_epc_features(9)

and that's the page!! πŸŽ€ sign-off time: this little beauty lives under ./include/linux, dated October 2026, and belongs to the Kernel API Manual β€” so go forth, read your BAR descs, and slay. periodt. πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from