rio_std_route_get_entry(9)
π rio_std_route_get_entry(9) β from the Kernel API Manual, bestie β¨
Okay so picture this: you're deep in the RapidIO stack, you've got a switch, you've got a destID, and you just wanna know which port that thing is pointed at. That's this function. It reads the switch route table entry (the port number) that's associated with the destID you specified, and it does it using the standard registers defined in RIO specification rev.1.3 π
Like, it's the textbook way to peek at routing. No cap. π
πΈ SYNOPSIS πΈ
int rio_std_route_get_entry (struct rio_mport *mport , u16 destid , u8
hopcount , u16 table , u16 route_destid , u8 *route_port );
Return type is int, obviously, and it takes six args β let's go through them one by one, because every single one matters π«Ά
β¨ ARGUMENTS β¨
mportβ the master port that issues the transaction. She's the one doing the talking π¬destidβ the Destination ID of the device. The whole "who are we even asking about" of it all.hopcountβ number of switch hops to the device. Count 'em. Every hop is a vibe check on the way there π¦tableβ the routing table ID (global or port-specific). Pick your table, bestie, there's options πroute_destidβ the destID entry in the RT. Yes, this is a different destid fromdestidabove β do not mix them up, I'm begging πroute_portβ the returned destination port for the specified destID. It's a pointer, so this is where the answer comes back out to you. The main character of the out-params, fr fr π
π SEE ALSO π
Kernel file ./drivers/rapidio/rio.c β go read it, it's giving lore β plus these absolute icons:
rio_local_get_device_id(9)rio_query_mport(9)rio_alloc_net(9)rio_local_set_device_id(9)rio_add_device(9)rio_request_inb_mbox(9)rio_release_inb_mbox(9)rio_request_outb_mbox(9)rio_release_outb_mbox(9)rio_setup_inb_dbell(9)rio_request_inb_dbell(9)rio_release_inb_dbell(9)rio_request_outb_dbell(9)rio_release_outb_dbell(9)rio_add_mport_pw_handler(9)rio_del_mport_pw_handler(9)rio_request_inb_pwrite(9)rio_release_inb_pwrite(9)rio_pw_enable(9)rio_map_inb_region(9)rio_unmap_inb_region(9)rio_map_outb_region(9)rio_unmap_outb_region(9)rio_mport_get_physefb(9)rio_get_comptag(9)rio_set_port_lockout(9)rio_enable_rx_tx_port(9)rio_chk_dev_route(9)rio_mport_chk_dev_access(9)rio_chk_dev_access(9)rio_get_input_status(9)rio_clr_err_stopped(9)rio_inb_pwrite_handler(9)rio_mport_get_efb(9)rio_mport_get_feature(9)rio_std_route_add_entry(9)rio_std_route_clr_table(9)rio_lock_device(9)rio_unlock_device(9)rio_route_add_entry(9)rio_route_get_entry(9)rio_route_clr_table(9)rio_request_mport_dma(9)rio_release_dma(9)rio_dma_prep_xfer(9)rio_register_scan(9)rio_mport_scan(9)
Quick PSA:destidandroute_destidare two separate parameters and they are not the same thing. One is the device you're asking about, the other is the entry in the RT. Ship them swapped and that's on you, not me π
Okay that's the whole page, mwah π This lil icon comes from ./drivers/rapidio and it's dated October 2026, and yes the page itself is called rio_std_route_get_entry(9). Slay, go read your route tables responsibly ππ
π¦ 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