ntb_peer_mw_get_addr(9)
π ntb_peer_mw_get_addr β a kernel API manual moment
okay so bestie, welcome to ntb_peer_mw_get_addr(9), straight out of the Kernel API Manual and honestly? it's giving "small function, big main character energy" β¨
π NAME π
ntb_peer_mw_get_addr β get map address of an outbound memory window
like literally, it hands you the map address. that's the whole vibe. πΊοΈ
π¦ SYNOPSIS π¦
int ntb_peer_mw_get_addr (struct ntb_dev *ntb , int widx , phys_addr_t
*base , resource_size_t *size );
no cap, that's the signature. copy it exactly, don't be weird about it π
πΈ ARGUMENTS πΈ
ntbβ the NTB device context. your little device passport, y'know? πͺͺwidxβ the memory window index. and yes, it lives within thentb_peer_mw_countreturn value, so keep that in mind fr fr πbaseβ OUT β the base address of the mapping region. this one gets written for you π«Άsizeβ OUT β the size of the mapping region. also written for you π
β¨ DESCRIPTION β¨
so basically you call this to get the base and size of the memory region you wanna map. lowkey iconic.
here's the tea though: NULL may be given for any output parameter if the value is not needed π so if you don't care about size, just pass NULL and move on. no guilt, bestie.
and what do you do with base and size once you have them? you use them for mapping the memory window β to access the peer memory. that's the whole point. that's the assignment. π₯
β RETURN β
Zero on success π otherwise a negative error number π (yes, the classic. zero good, negative bad.)
π SEE ALSO π
the Kernel file ./include/linux/ntb.h and honestly the entire extended ntb cinematic universe π
enum ntb_topo(9),enum ntb_speed(9),enum ntb_width(9),enum ntb_default_port(9),struct ntb_client_ops(9),struct ntb_ctx_ops(9),struct ntb_dev_ops(9),struct ntb_client(9),struct ntb_dev(9)ntb_register_client(9),ntb_unregister_client(9),ntb_register_device(9),ntb_unregister_device(9),ntb_set_ctx(9),ntb_clear_ctx(9),ntb_link_event(9),ntb_db_event(9),ntb_msg_event(9)ntb_default_port_number(9),ntb_default_peer_port_count(9),ntb_default_peer_port_number(9),ntb_default_peer_port_idx(9),ntb_port_number(9),ntb_peer_port_count(9),ntb_peer_port_number(9),ntb_logical_port_number(9),ntb_peer_logical_port_number(9),ntb_peer_port_idx(9)ntb_link_is_up(9),ntb_link_enable(9),ntb_link_disable(9)ntb_mw_count(9),ntb_mw_get_align(9),ntb_mw_set_trans(9),ntb_mw_clear_trans(9),ntb_peer_mw_count(9),ntb_peer_mw_set_trans(9),ntb_peer_mw_clear_trans(9)ntb_db_is_unsafe(9),ntb_db_valid_mask(9),ntb_db_vector_count(9),ntb_db_vector_mask(9),ntb_db_read(9),ntb_db_set(9),ntb_db_clear(9),ntb_db_read_mask(9),ntb_db_set_mask(9),ntb_db_clear_mask(9)ntb_peer_db_addr(9),ntb_peer_db_read(9),ntb_peer_db_set(9),ntb_peer_db_clear(9),ntb_peer_db_read_mask(9),ntb_peer_db_set_mask(9),ntb_peer_db_clear_mask(9)ntb_spad_is_unsafe(9),ntb_spad_count(9),ntb_spad_read(9),ntb_spad_write(9),ntb_peer_spad_addr(9),ntb_peer_spad_read(9),ntb_peer_spad_write(9)ntb_msg_count(9),ntb_msg_inbits(9),ntb_msg_outbits(9),ntb_msg_read_sts(9),ntb_msg_clear_sts(9),ntb_msg_set_mask(9),ntb_msg_clear_mask(9),ntb_msg_read(9),ntb_peer_msg_write(9)ntb_get_dma_dev(9),ntb_peer_resource_idx(9),ntb_peer_highest_mw_idx(9)
like, read them. all of them. iykyk π§
ok that's the whole page bestie, no gatekeeping π go forth and map that window.
and finally, the cute little sign-off: this one's sourced from ./include/linux and dated October 2026 β periodt, that's the footer, 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