ntb_link_is_up(9)
π ntb_link_is_up(9) π
okay so bestie, welcome to the Kernel API Manual β section 9, main character energy only. today's episode: ntb_link_is_up β¨
πΈ NAME πΈ
ntb_link_is_up β get the current ntb link state. that's it. that's the whole vibe check π₯
π SYNOPSIS π
u64 ntb_link_is_up (struct ntb_dev *ntb , enum ntb_speed *speed , enum
ntb_width *width );
literally one function, three args, and it tells you whether the link is up. no cap π
π¦ ARGUMENTS π¦
ntbβ NTB device context. the little context handoff, yk? you know exactly whose link we're asking about.speedβ OUT β The link speed expressed as PCIe generation number. it's an out param bestie, you're not telling it anything, it's telling you πwidthβ OUT β The link width expressed as the number of PCIe lanes. also out. also giving data. both of these fill in your values for you, so slay.
β¨ DESCRIPTION β¨
Get the current state of the ntb link. that's the mission. that's the assignment. π«Ά
It is recommended to query the link state once after every link event. once. not in a loop, not on repeat, not spam-calling it like it's a crush's instagram β once, after each link event. π
It is safe to query the link state in the context of the link event callback. so yes, you can call it right there inside the callback, no anxiety, no "am I allowed to be here" moment. you are literally invited. π
β RETURN β
bitfield of indexed ports link state: bit is set/cleared if the link is up/down respectively.
translation for the group chat: it hands you back a u64, and each indexed port gets a bit. link up? bit set. link down? bit cleared. one bit per port, no cap π
π SEE ALSO π
Kernel file ./include/linux/ntb.h β and here comes the friend group, the whole squad, the entire NTB roster, we love a full roster bestie:
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_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_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 I said. the whole squad. ate and left no crumbs π
okay that's the page bestie, go read your link state responsibly π
sign-off szn: this icon lives in ./include/linux, dated October 2026, and it's called ntb_link_is_up(9) β mwah, bye π§ββοΈπ
π¦ 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