STRUCT ATH_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ath_ops(9) πŸ’…

okay bestie, welcome to the Kernel API Manual β€” this is the struct ath_ops page and it's literally the plug for register read/write operations. yes we're doing kernel plumbing today and yes you're gonna slay it 🫢


✨ NAME ✨

struct ath_ops β€” Register read/write operations. that's the whole vibe. register reads, register writes, that's her πŸ‘‘


🌸 SYNOPSIS 🌸

here's the struct in all her glory, copy it exactly, do not freestyle:

struct ath_ops {
    unsigned int (*read)(void *, u32 reg_offset);
    void (*multi_read)(void *, u32 *addr, u32 *val, u16 count);
    void (*write)(void *, u32 val, u32 reg_offset);
    void (*enable_write_buffer)(void *);
    void (*write_flush) (void *);
    u32 (*rmw)(void *, u32 reg_offset, u32 set, u32 clr);
    void (*enable_rmw_buffer)(void *);
    void (*rmw_flush) (void *);
 };

like… she's just a little bundle of function pointers and honestly? iconic πŸŽ€


πŸ’– Members πŸ’–

the manpage spells out these five for us, so let's go (iykyk):

  • read β€” Register read. you want a register? she reads you a register. one function pointer, zero drama ✨
  • multi_read β€” Multiple register read. it's giving "I'm not doing these one at a time" energy β€” this is the plural version, fr fr 🌈
  • write β€” Register write. you hand her val and reg_offset, she writes it out. no cap πŸ’…
  • enable_write_buffer β€” Enable multiple register writes. turn the buffering ON so the writes can pile up cutely instead of going out one by one πŸ¦‹
  • write_flush β€” flush buffered register writes and disable buffering. okay so this one is the main character moment: she flushes whatever's buffered AND turns buffering back off. both. at once. obsessed πŸ’€
heads up bestie β€” the struct up top also carries rmw, enable_rmw_buffer and rmw_flush, but this page's Members list only spells out the five above. keeping it exactly as written, not gonna invent lore πŸ™ˆ

πŸ”₯ SEE ALSO πŸ”₯

go look at the actual source, she's right here:

Kernel file ./drivers/net/wireless/ath/ath.h


that's the whole page, bestie β€” go read your registers responsibly πŸ§šπŸ’œ

signed off with love from ./drivers/net/wireless/ath, dated October 2026 ⭐

πŸ“¦ where this page comes from