tb_next_port_on_path(9)
π tb_next_port_on_path(9) β Kernel API Manual π
okay so bestie, youβre in the Kernel API Manual, and the main character of this page is tb_next_port_on_path(9). she walks ports. she follows links. she has rules. letβs get into it π
πΈ NAME πΈ
tb_next_port_on_path β Return next port for given port on a path
β¨ SYNOPSIS β¨
struct tb_port * tb_next_port_on_path (struct tb_port *start , struct
tb_port *end , struct tb_port *prev );
π ARGUMENTS π
startβ Start port of the walk. the beginning of the journey, the origin story.endβ End port of the walk. the destination, the final boss.prevβ Previous port (NULLif this is the first). literally the βwhere was I?β pointer.
π¦ DESCRIPTION π¦
okay so this function can be used to walk from one port to another if they are connected through zero or more switches. yes, zero. yes, more. the switch count is not the vibe check here.
If the prev is dual link port, the function follows that link and returns another end on that same link. dual-link girlies stay winning π₯
β οΈ real talk, no cap: the domain tb->lock must be held when this function is called. not optional. lock it or donβt call it, bestie.
π« RETURN π«
Pointer to struct tb_port, NULL if the end port has been reached.
π SEE ALSO π
the home base is the kernel file ./drivers/thunderbolt/switch.c, and these are the linked icons β every single one, fr fr:
tb_switch_nvm_read(9)tb_port_state(9)tb_wait_for_port(9)tb_port_add_nfc_credits(9)tb_port_clear_counter(9)tb_port_unlock(9)tb_port_enable(9)tb_port_disable(9)tb_port_reset(9)tb_port_alloc_in_hopid(9)tb_port_alloc_out_hopid(9)tb_port_release_in_hopid(9)tb_port_release_out_hopid(9)tb_port_get_link_speed(9)tb_port_get_link_generation(9)tb_port_get_link_width(9)tb_port_width_supported(9)tb_port_set_link_width(9)tb_port_set_lane_bonding(9)tb_port_lane_bonding_enable(9)tb_port_lane_bonding_disable(9)tb_port_wait_for_link_width(9)tb_port_update_credits(9)tb_port_is_enabled(9)tb_usb3_port_is_enabled(9)tb_usb3_port_enable(9)tb_pci_port_is_enabled(9)tb_pci_port_enable(9)tb_dp_port_hpd_is_active(9)tb_dp_port_hpd_clear(9)tb_dp_port_set_hops(9)tb_dp_port_is_enabled(9)tb_dp_port_enable(9)tb_switch_reset(9)tb_switch_wait_for_bit(9)tb_switch_alloc(9)tb_switch_alloc_safe_mode(9)tb_switch_configure(9)tb_switch_configuration_valid(9)tb_switch_lane_bonding_enable(9)tb_switch_lane_bonding_disable(9)tb_switch_set_link_width(9)tb_switch_configure_link(9)tb_switch_unconfigure_link(9)tb_switch_add(9)tb_switch_remove(9)tb_sw_set_unplugged(9)tb_switch_resume(9)tb_switch_suspend(9)tb_switch_query_dp_resource(9)tb_switch_alloc_dp_resource(9)tb_switch_dealloc_dp_resource(9)tb_switch_find_by_link_depth(9)tb_switch_find_by_uuid(9)tb_switch_find_by_route(9)tb_switch_find_port(9)tb_switch_pcie_l1_enable(9)tb_switch_xhci_connect(9)tb_switch_xhci_disconnect(9)
okay thatβs the page, bestie! cute little footer sign-off: source/version ./drivers/thunderbolt, date October 2026, and the manual name is tb_next_port_on_path(9). mwah ππ
π¦ 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