epf_ntb_conf...spad_bar_set(9)
π epf_ntb_config_sspad_bar_set
okay bestie, welcome to the Kernel API Manual β¨ this one's a lil function called epf_ntb_config_sspad_bar_set and honestly? iconic. it's giving "setup era" and we're here for it π
ngl the name is a whole mouthful β epf_ntb_config_sspad_bar_set β so maybe just call it "the config + self scratchpad BAR setter" in your head and let's move on π¦
β¨ NAME β¨
epf_ntb_config_sspad_bar_set β Set Config + Self scratchpad BAR π
πΈ SYNOPSIS πΈ
int epf_ntb_config_sspad_bar_set (struct epf_ntb *ntb );
π ARGUMENTS π
ntbβ the NTB device, aka the whole reason this works π«Ά it's the thing that facilitates communication between HOST and VHOST. like yes, it's a bridge, it does the socialising so you don't have to π
π₯ DESCRIPTION π₯
so what does it actually do?? it maps BAR0 of the EP CONTROLLER β and that BAR0 is the one holding the VHOST's config region plus the self scratchpad region π
but here's the part where you gotta pay attention, bestie π β please note that the self scratchpad region and the config region are combined into a single region π they're not two separate things, they're one thing, and they get mapped using the same BAR. so don't go looking for a second BAR, it's not there, it never was, periodt β¨
β RETURN β
- Zero for success π slay
- or an error code in case of failure π (you will be told, no silent ghosting here)
π SEE ALSO π
the kernel file we're living in: ./drivers/pci/endpoint/functions/pci-epf-vntb.c π
and the whole friend group of related functions, all linked in one big group chat:
epf_ntb_link_up(9)epf_ntb_configure_mw(9)epf_ntb_teardown_mw(9)epf_ntb_cmd_handler(9)epf_ntb_config_sspad_bar_clear(9)epf_ntb_config_spad_bar_free(9)epf_ntb_config_spad_bar_alloc(9)epf_ntb_configure_interrupt(9)epf_ntb_db_bar_init(9)epf_ntb_db_bar_clear(9)epf_ntb_mw_bar_init(9)epf_ntb_mw_bar_clear(9)epf_ntb_is_bar_used(9)epf_ntb_find_bar(9)epf_ntb_init_epc_bar(9)epf_ntb_epc_init(9)epf_ntb_epc_cleanup(9)epf_ntb_add_cfs(9)epf_ntb_bind(9)epf_ntb_unbind(9)epf_ntb_probe(9)
no cap, this whole page lives under ./drivers/pci/endpoint/functions in the kernel tree π§
and that's a wrap, bestie π this page came to you from the Kernel API Manual, sourced from ./drivers/pci/endpoint/functions, dated October 2026 β mwah, go forth and map your BARs responsibly ππ¦
π¦ 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