epf_ntb_peer_spad_bar_clear(9)
π
epf_ntb_peer_spad_bar_clear β a Kernel API Manual moment
okay so bestie, welcome to the Kernel API Manual entry for epf_ntb_peer_spad_bar_clear(9) β yes the whole thing is named after the function, iconic, we love a self-titled era β¨
πΈ NAME πΈ
epf_ntb_peer_spad_bar_clear β literally just Clear Peer Scratchpad BAR π§Ήπ
β SYNOPSIS β
void epf_ntb_peer_spad_bar_clear (struct epf_ntb_epc *ntb_epc );
that's it. that's the whole vibe check. no return value, it's giving void and unbothered π
π¦ ARGUMENTS π¦
ntb_epcβ the EPC that's associated with one of the HOSTs, the one holding peer's outbound address π«Ά
β¨ DESCRIPTION β¨
okay so picture this, here's the layout, and yes i'm keeping it exactly as-is because it ate:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BAR0 CONFIG REGION BAR0 β
β BAR1 SCRATCHPAD REGION β
β BAR2 Local Memory BAR2 β
β BAR3 BAR3 β
β BAR4 BAR4 β
β BAR5 BAR5 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
EP CONTROLLER 1 EP CONTROLLER 2
so what this function does is it clears BAR1 of EP CONTROLLER 2, which is the BAR holding HOST2's peer scratchpad region π₯
now, quick lore drop: BAR1 is the default peer scratchpad BAR, but an NTB could absolutely have other BARs for peer scratchpad β like, because of 64-bit BARs or reserved BARs, no cap. so this function can get the exact BAR that's actually being used for peer scratchpad from epf_ntb_bar[BAR_PEER_SPAD] π
and here's the cute lil twist: since HOST2's peer scratchpad is also HOST1's self scratchpad, this function gets the address of peer scratchpad from peer_ntb_epc->epf_ntb_bar[BAR_CONFIG] π
ngl the two-controllers-one-scratchpad situation is very "we share a singular brain cell" energy and i respect it π
π SEE ALSO π
the kernel file, living its best life at ./drivers/pci/endpoint/functions/pci-epf-ntb.c π
and the whole friend group, fr fr:
epf_ntb_link_up(9)epf_ntb_configure_mw(9)epf_ntb_teardown_mw(9)epf_ntb_configure_msi(9)epf_ntb_configure_msix(9)epf_ntb_configure_db(9)epf_ntb_teardown_db(9)epf_ntb_cmd_handler(9)epf_ntb_peer_spad_bar_set(9)β the set girlie to this clear girlie, they're a matching set πepf_ntb_config_sspad_bar_clear(9)epf_ntb_config_sspad_bar_set(9)epf_ntb_config_spad_bar_free(9)epf_ntb_config_spad_bar_alloc(9)epf_ntb_config_spad_bar_alloc_interface(9)epf_ntb_free_peer_mem(9)epf_ntb_db_mw_bar_clear(9)epf_ntb_db_mw_bar_cleanup(9)epf_ntb_configure_interrupt(9)epf_ntb_alloc_peer_mem(9)epf_ntb_db_mw_bar_init(9)epf_ntb_epc_create_interface(9)epf_ntb_epc_create(9)epf_ntb_init_epc_bar_interface(9)epf_ntb_init_epc_bar(9)epf_ntb_epc_init_interface(9)epf_ntb_epc_cleanup_interface(9)epf_ntb_epc_cleanup(9)epf_ntb_epc_init(9)epf_ntb_bind(9)epf_ntb_unbind(9)epf_ntb_add_cfs(9)epf_ntb_probe(9)
anyway that's the page!! this lil number lives in ./drivers/pci/endpoint/functions, dated October 2026, and it's filed under epf_ntb_peer_spad_bar_clear(9) π¦β¨ go clear that BAR bestie, you're gonna slay π
π
π¦ 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