STRUCT IPAQ_MICRO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

struct ipaq_micro β€” the iPAQ microcontroller state, bestie πŸ’–

So this is from the Kernel API Manual, which is literally the group chat for kernel devs, and today's main character is struct ipaq_micro. It's the state container for the iPAQ microcontroller, and yes it's giving "small struct, big responsibilities." πŸŽ€


✨ SYNOPSIS ✨

struct ipaq_micro {
    struct device *dev;
    void __iomem *base;
    void __iomem *sdlc;
    char version[5];
    struct ipaq_micro_txdev tx;
    struct ipaq_micro_rxdev rx;
    spinlock_t lock;
    struct ipaq_micro_msg *msg;
    struct list_head queue;
    void (*key) (void *data, int len, unsigned char *rxdata);
    void *key_data;
    void (*ts) (void *data, int len, unsigned char *rxdata);
    void *ts_data;
 };

Like, that's the whole thing. Copy it exactly if you're writing code, ok? No cap. 🫢


πŸ’… Members πŸ’…

Ok so here's the member-by-member breakdown, and ngl every single one matters:

  • dev β€” the corresponding platform device. That's its whole job πŸ’
  • base β€” virtual memory base for the underlying serial device. Iconic memory-mapped realness ✨
  • sdlc β€” virtual memory base for the Synchronous Data Link Controller. Yes it has its own base, it's that girl 🌈
  • version β€” version string. Just char version[5], tiny but mighty πŸ“
  • tx β€” TX state. Sending vibes πŸ“€
  • rx β€” RX state. Receiving vibes πŸ“₯
  • lock β€” lock for this state container. Protect the state at all costs, fr fr πŸ”’
  • msg β€” current message. One at a time, bestie πŸ’Œ
  • queue β€” message queue. Where the messages line up and wait their turn πŸŽ€
  • key β€” callback for asynchronous key events. It literally goes void (*key) (void *data, int len, unsigned char *rxdata); 🎹
  • key_data β€” data to pass along with key events. Ride-along data, obsessed 🧚
  • ts β€” callback for asynchronous touchscreen events. Same signature energy: void (*ts) (void *data, int len, unsigned char *rxdata); πŸ‘†
  • ts_data β€” data to pass along with key events. (Yes, that's what the original says β€” it's ts_data but the description mentions key events. Not me noticing that, but slay, we keep it as documented πŸ’€)

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/linux/mfd/ipaq-micro.h
  • struct ipaq_micro_txdev(9)
  • struct ipaq_micro_rxdev(9)
  • struct ipaq_micro_msg(9)

Go read those too, iykyk πŸ‘‘


Lowkey a vibe check on the whole microcontroller: everything you need to know lives in ./include/linux/mfd/ipaq-micro.h and the friends listed above. No guessing, periodt. πŸ’œ

And that's the whole page, bestie β€” brought to you by the fine folks at ./include/linux/mfd, dated October 2026, and filed under struct ipaq_micro(9). Mwah πŸ’‹πŸŒΈ

πŸ“¦ where this page comes from