STRUCT INV_ICM45600_FIFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct inv_icm45600_fifo(9) β€” from the Kernel API Manual, bestie πŸŽ€

okay so picture this: you're deep in the kernel, you cracked open struct inv_icm45600_fifo, and you're like "what even is all this" β€” bestie, same. this is the FIFO state variables struct, and honestly? she's iconic. let's go member by member, no cap, nothing skipped. ✨


🌸 NAME

struct inv_icm45600_fifo β€” the FIFO state variables. that's the whole vibe. that's the gig. πŸ’–


πŸ¦‹ SYNOPSIS

struct inv_icm45600_fifo {
    unsigned int on;
    unsigned int en;
    u32 period;
    struct {
      unsigned int gyro;
      unsigned int accel;
      unsigned int eff_gyro;
      unsigned int eff_accel;
    } watermark;
    size_t count;
    struct {
      size_t gyro;
      size_t accel;
      size_t total;
    } nb;
    u8 *data;
 };

look at her. gorgeous. every field accounted for, not one dropped, and we're about to go through all of them. 🫢


πŸ‘‘ Members

the top-level girlies

  • on β€” the reference counter for FIFO on. think of it like a little tally of how many things are currently like "yeah the FIFO is ON". πŸ“ˆ
  • en β€” a bits field of INV_ICM45600_SENSOR_* for the FIFO EN bits. literally just the enable bits, chillin' in a bitfield. πŸ”₯
  • period β€” the FIFO internal period. that's her timing, that's her rhythm. ⏳
  • watermark β€” the watermark configuration values for accel and gyro. yes she has sub-fields, we'll get to those, patience bestie πŸ’…
  • count β€” number of bytes in the FIFO data buffer. just a count. a byte count. keepin' it real. πŸ“
  • nb β€” the gyro, accel and total samples in the FIFO data buffer. again: sub-fields. coming right up. πŸ‘€
  • data β€” the FIFO data buffer, aligned for DMA (8kB). that's the big one, the main character, the actual payload. ⭐

🧚 inside watermark (yes, she has layers)

  • watermark.gyro β€” the requested watermark for gyro. what you asked for. πŸ™ˆ
  • watermark.accel β€” the requested watermark for accel. again: what you asked for. πŸ™ˆ
  • watermark.eff_gyro β€” the effective watermark for gyro. what actually ended up happening. πŸ’€
  • watermark.eff_accel β€” the effective watermark for accel. ditto, but for accel. 😭
ngl the requested-vs-effective split is giving "me vs the me that actually shows up" and honestly? relatable. keep both in your head, they are not the same thing. ✨

🌈 inside nb

  • nb.gyro β€” gyro samples in the FIFO data buffer. πŸŒ€
  • nb.accel β€” accel samples in the FIFO data buffer. πŸƒβ€β™€οΈ
  • nb.total β€” total samples in the FIFO data buffer. the sum, the whole squad. πŸ‘―β€β™€οΈ

πŸ’œ SEE ALSO

  • Kernel file ./drivers/iio/imu/inv_icm45600/inv_icm45600_buffer.h β€” go read her, she's right there, iykyk πŸ“–

okay that's the whole page, nothing left out, we ate and left no crumbs 🍽️✨

this came to you from ./drivers/iio/imu/inv_icm45600, dated October 2026, and the page itself is struct inv_icm45600_fifo(9). mwah, ily, go write some buffer code bestie πŸ’–πŸŽ€πŸ¦‹
πŸ“¦ where this page comes from