ntb_spad_write(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– ntb_spad_write(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual corner of the universe β€” this little page is all about ntb_spad_write, and honestly? it's giving "tiny function, huge responsibilities". let's get into it ✨


🌸 NAME 🌸

ntb_spad_write β€” write the local scratchpad register πŸŽ€

like, that's literally the whole job and she does it slayfully πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

int ntb_spad_write (struct ntb_dev *ntb , int sidx , u32 val );

three little args and she's off 🫢


✨ ARGUMENTS ✨

  • ntb β€” the NTB device context, aka the main character of this whole operation πŸ‘‘ it's a struct ntb_dev * and you gotta pass it along so the function knows which device we're talking to.
  • sidx β€” the scratchpad index πŸ”’ an int, and yes you need to say which scratchpad you mean, no guessing games.
  • val β€” the scratchpad value πŸ’Ύ a u32, this is the actual thing getting written in there. the payload. the moment. ⭐

🌈 DESCRIPTION 🌈

so basically: this function writes the value to the local scratchpad register. that's it, that's the vibe 🧚

you hand it the device, the index, and the value β€” and it puts that value into the local scratchpad register. no cap, that's literally what it does πŸ’–


πŸ”₯ RETURN πŸ”₯

  • Zero on success πŸŽ‰ (iconic, no notes)
  • otherwise an error number 😭 so like, if something goes sideways you get a number back instead of zero β€” check it, bestie, always check it πŸ™ˆ

πŸ’œ SEE ALSO πŸ’œ

okay this list is long and honestly it ate β€” here's the whole squad, all of them, exactly as listed:

Kernel file ./include/linux/ntb.h: 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_set_mask(9), ntb_peer_db_clear_mask(9), ntb_spad_is_unsafe(9), ntb_spad_count(9), ntb_spad_read(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)


πŸ’‘ friendly reminder bestie: the return value is Zero on success and an error number otherwise β€” and the local scratchpad register is the local one, so if you were looking for the peer version, that's a whole different function, iykyk πŸ‘€

and that's the page!! 🌟 this lil slice of the Kernel API Manual comes from the kernel file ./include/linux, dated October 2026 β€” mwah, thanks for reading, periodt πŸ’…πŸŽ€πŸ’–

πŸ“¦ where this page comes from