STRUCT ALPS_PROTOCOL_INFO(9)
π struct alps_protocol_info(9) β like, the whole vibe of a device's protocol, bestie β¨
okay so this is a page from the Kernel API Manual, section 9, and it's all about struct alps_protocol_info β literally the little info card that tells you which protocol a device is speaking π
πΈ NAME πΈ
struct alps_protocol_info β the tea on which protocol a device is using π«β¨
π SYNOPSIS π
here's the struct in all its glory, no cap, copy it exactly:
struct alps_protocol_info {
u16 version;
u8 byte0, mask0;
unsigned int flags;
};
that's it. that's the whole thing. she's small but she's doing a lot π
π Members π
versionβ tells you whether we're in V1 / V2 / V3 / ... territory, iykyk π₯byte0β this one's a little detective π΅οΈββοΈ it helps you figure out whether a position report packet actually matches the known format for this model. the rule is: the first byte of the report, ANDed withmask0, should matchbyte0. that's the vibe check right there β¨mask0β the mask used to check the first byte of the report. yes it works withbyte0above, they're a duo π«Άflagsβ bonus device capabilities, like the passthrough port, trackstick, etc. β the extra little garnish on top π
π¦ SEE ALSO π¦
kernel file ./drivers/input/mouse/alps.h, plus these iconic structs: struct alps_model_info(9), struct alps_nibble_commands(9), struct alps_fields(9), and struct alps_data(9) β go read them, they're all in the same friend group fr fr
okay that's the whole page, mwah π and for the cute sign-off: this one lives under ./drivers/input/mouse and it's dated October 2026 β periodt, go off, and remember: mask first, then match πβ¨π
π¦ 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