STRUCT RMI_FUNCTION_DESCRIPTOR(9)
β¨ struct rmi_function_descriptor(9) β¨
okay bestie, so this is from the Kernel API Manual and it's literally all about struct rmi_function_descriptor β the RMI function base addresses. yes we're doing kernel structs today, put your hair up, we're getting into it π
πΈ NAME πΈ
struct rmi_function_descriptor β RMI function base addresses. that's the whole vibe. no cap.
π¦ SYNOPSIS π¦
struct rmi_function_descriptor {
u16 query_base_addr;
u16 command_base_addr;
u16 control_base_addr;
u16 data_base_addr;
u8 interrupt_source_count;
u8 function_number;
u8 function_version;
};
look at her. seven fields. perfectly balanced. main character struct honestly π
π Members π
so let's meet the cast, one by one, no skipping:
query_base_addrβ the RMI Query base address. that's it, that's her job πcommand_base_addrβ the RMI Command base address. the girl who takes your orders π«Άcontrol_base_addrβ the RMI Control base address. lowkey the one running the whole operation β¨data_base_addrβ the RMI Data base address. where the actual info lives, iconic πinterrupt_source_countβ the number of irqs this RMI function needs. it's giving "how many alarms is this function setting" πfunction_numberβ the RMI function number. her ID, her little badge πfunction_versionβ the RMI function version. so we know which era of her we're dealing with β
ngl the twou8s at the end are just standing there being small and cute while the fouru16s do all the heavy lifting. balance. periodt.
π₯ Description π₯
okay so here's the tea: this struct is used when iterating the Page Description Table. that's the whole use case, no secret bonus features, don't come for me π
and the reason those four address fields are 16-bit values instead of something baby-sized? because the addresses need to include the current page address. that's literally why. 16-bit so the page address fits in there too. slay π₯
π SEE ALSO π
go read the kernel file ./include/linux/rmi.h first, bestie, then these iconic siblings:
struct rmi_2d_axis_alignment(9)struct rmi_gpio_data(9)struct rmi_f01_power_management(9)struct rmi_device_platform_data_spi(9)struct rmi_device_platform_data(9)struct rmi_transport_dev(9)struct rmi_transport_ops(9)struct rmi_driver(9)struct rmi_device(9)
a whole friend group honestly, they ate π
and that's the page!! sourced from ./include/linux, dated October 2026, and obviously it all lives under struct rmi_f...n_descriptor(9) because that's the star of the show. byeee, go read your structs π§β¨π
π¦ 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