STRUCT CMB_AREA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct cmb_area(9) β€” like, the kernel API manual bestie πŸŽ€

okay so real talk, this is page struct cmb_area(9) from the Kernel API Manual, and it's short but it matters, so let's get into it ✨


✨ NAME ✨

struct cmb_area β€” the lil container that holds all your global cmb data 🫢 no cap, that's literally its whole job.


🌸 SYNOPSIS 🌸

struct cmb_area {
    struct cmb *mem;
    struct list_head list;
    int num_channels;
    spinlock_t lock;
 };

periodt. four members. that's the whole struct. she's compact and she's iconic πŸ’…


πŸ¦‹ Members πŸ¦‹

  • mem β€” pointer to CMBs, but only in basic measurement mode πŸ’– (so if you're not in basic measurement mode, don't come looking here bestie, it's giving crickets)
  • list β€” holds a linked list of all subchannels 🌈 yes, all of them, she keeps the whole squad together
  • num_channels β€” the number of channels that are to be measured πŸ‘‘ the headcount, essentially
  • lock β€” a spinlock, and its whole personality is protecting concurrent access to mem and list πŸ”₯. like, do not touch those two without holding the lock, i'm literally begging πŸ™ˆ

⭐ SEE ALSO ⭐

go read the rest of the family, iykyk πŸ’œ

Kernel file ./drivers/s390/cio/cmf.c, plus:

enum cmb_format(9), struct cmb_operations(9), struct cmb(9), struct cmbe(9), enable_cmf(9), __disable_cmf(9), disable_cmf(9), cmf_read(9), cmf_readall(9), cmf_reactivate(9)


πŸ’€ friendly reminder that lock protects both mem and list β€” so like, respect the lock or things get real undefined-behaviour-y real fast 😭

k bye bestie!! this page came from ./drivers/s390/cio and it's dated October 2026, so it's fresh πŸ’– mwah πŸ’‹ β€” go forth and lock your mem and list properly πŸ§šβ€β™€οΈβœ¨

πŸ“¦ where this page comes from