ntb_link_enable(9)
π ntb_link_enable π
okay bestie, welcome to the ntb_link_enable(9) page from the Kernel API Manual β yes that manual, the one with the driest lore imaginable, and we're gonna make it cute anyway π
β¨ NAME β¨
ntb_link_enable β bestie, it enables the local port ntb connection. that's the whole vibe. periodt π
πΈ SYNOPSIS πΈ
int ntb_link_enable (struct ntb_dev *ntb , enum ntb_speed max_speed ,
enum ntb_width max_width );
like, look at that signature. it's giving "three arguments and a dream" β¨
π¦ ARGUMENTS π¦
ntbβ the NTB device context. your main character struct, basically πmax_speedβ the maximum link speed, expressed as a PCIe generation number. yes, a generation number, like it's aging up through the eras πmax_widthβ the maximum link width, expressed as the number of PCIe lanes. lanes!! like a little highway π£οΈ
π DESCRIPTION π
so here's the tea, bestie: this one enables the NTB/PCIe link on the local or remote side of the bridge β and yes, "remote" is for the bridge-to-bridge topology, we love a long-distance relationship π«Ά
if it's supported, the ntb device should train the link to its maximum speed and width, or the requested speed and width β whichever is smaller. it's not gonna overdo it, it's β¨humbleβ¨. honestly iconic.
real talk though: some hardware doesn't support PCIe link training at all π so in that casemax_speedandmax_width(those last two arguments) just get ignored. not neglected, just... ignored. no cap.
β RETURN β
Zero on success β slay! π otherwise an error number. boo, but at least it tells you. π
π§ SEE ALSO π§
literally the whole ntb family reunion, plus the kernel file itself. the source of truth lives at ./include/linux/ntb.h β go say hi π
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_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. family reunion. iykyk π₯
and that's the whole page, bestie β brought to you by the good people at ./include/linux, dated October 2026. mwah, mwah, go enable that link ππ¦πΈ
π¦ 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