STRUCT PCI_EPC(9)
π NAME
struct pci_epc β bestie, this is literally the struct that represents the PCI EPC device β¨ (it's in the Kernel API Manual, iykyk π)
πΈ SYNOPSIS
okay so here's the whole vibe, character for character, no cap:
struct pci_epc {
struct device dev;
struct list_head pci_epf;
struct mutex list_lock;
const struct pci_epc_ops *ops;
struct pci_epc_mem **windows;
struct pci_epc_mem *mem;
unsigned int num_windows;
u8 max_functions;
u8 *max_vfs;
struct config_group *group;
struct mutex lock;
unsigned long function_num_map;
int domain_nr;
bool init_complete;
};
β¨ Members β¨
time to meet the cast, every single one of them, main character energy only π
devβ the PCI EPC device itself. that's the whole point tbh π«Άpci_epfβ a list of the endpoint functions that are present in this EPC device. like the guest list fr fr πlist_lockβ a Mutex for protecting thepci_epflist. it's giving bodyguard for the guest list πopsβ function pointers for performing endpoint operations. the actual moves π₯windowsβ array of address space of the endpoint controller. lowkey the real estate portfolio π β¨memβ the first window of the endpoint controller, which corresponds to the default address space of the endpoint controller supporting single window. one window girlies, this one's for you π¦num_windowsβ number of windows supported by the device. count 'em πmax_functionsβ max number of functions that can be configured in this EPC. the cap, literally πmax_vfsβ Array indicating the maximum number of virtual functions that can be associated with each physical function. virtual besties per physical bestie, obsessed πgroupβ configfs group representing the PCI EPC device. it's a whole group chat πlockβ mutex to protectpci_epcops. yes bestie, lock it down πfunction_num_mapβ bitmap to manage physical function number. lil map of who's who πΊοΈdomain_nrβ PCI domain number of the endpoint controller. its address, its identity βinit_completeβ flag to indicate whether the EPC initialization is complete or not. are we done yet or are we done yet π
π SEE ALSO
go read the Kernel file ./include/linux/pci-epc.h and also these iconic siblings, not me listing every single one bc I love you π§:
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)enum pci_epc_bar_type(9)enum pci_epc_bar_rsvd_region_type(9)struct pci_epc_bar_rsvd_region(9)struct pci_epc_bar_desc(9)struct pci_epc_features(9)
ok that's the whole page, go forth and slay the endpoint controller π β¨
and that's a wrap bestie π β this one came from ./include/linux, dated October 2026, and it's struct pci_epc(9) in the Kernel API Manual. mwah π«Άπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms