ntb_peer_db_set_mask(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ntb_peer_db_set_mask(9) β€” a Kernel API Manual moment

okay so bestie, welcome to section 9 of the Kernel API Manual, and today's main character is literally ntb_peer_db_set_mask. yes, that's the whole name. she's long. she's iconic. she's a function. πŸŽ€


✨ NAME ✨

ntb_peer_db_set_mask β€” set bits in the peer doorbell mask


🌸 SYNOPSIS 🌸

int ntb_peer_db_set_mask (struct ntb_dev *ntb , u64 db_bits );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • ntb β€” NTB device context. it's the device's whole vibe, you gotta hand it over.
  • db_bits β€” Doorbell mask bits to set. the actual bits. the ones you're setting. πŸ’…

πŸ‘‘ DESCRIPTION πŸ‘‘

so here's the tea β˜• β€” this sets bits in the peer doorbell mask register, and the whole point of that register is that it prevents doorbell interrupts from being generated for those doorbell bits. like, "bestie, do NOT ring the doorbell for these ones, I'm not home." πŸ™ˆ

and here's the important part, no cap: bits that were already set must remain set. you're not overwriting, you're not clearing, you're setting. it's additive energy only. ✨

also, lowkey a warning: this is unusual, and hardware may not support it. 🫢 so like... check your hardware's vibe first. not every device is built for this.

πŸ’– RETURN πŸ’–

Zero on success β€” slay. otherwise an error number β€” 😭.


🧚 SEE ALSO 🧚

Kernel file ./include/linux/ntb.h plus this whole friend group right here:

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_get_addr(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_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)


and that's the whole page, bestie, you ate it up πŸ’…βœ¨

sign-off time: this little masterpiece lives in ./include/linux, dated October 2026, and it's filed under ntb_peer_db_set_mask(9) if you ever need to find her again πŸŽ€πŸ¦‹πŸ’œβ­

πŸ“¦ where this page comes from