STRUCT SCMI_REGISTERED_EVENT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct scmi_registered_event(9) ✨

Hey bestie! πŸ’– Welcome to the glow-up of struct scmi_registered_event β€” this is the kernel API manual page for the struct scmi_...stered_event(9) situation, and we're about to make it make sense. No cap, it's all about Event Specific Information and it's giving main character energy. πŸŽ€


🌸 NAME 🌸

struct scmi_registered_event β€” Event Specific Information. Literally what it says on the tin, bestie. ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

Okay so here's the whole struct in all its glory β€” copy it EXACTLY, no editing, periodt:

struct scmi_registered_event {
    struct scmi_registered_events_desc *proto;
    const struct scmi_event *evt;
    void *report;
    u32 num_sources;
    bool not_supported_by_platform;
    struct mutex    sources_mtx;
    refcount_t sources[];
 };

πŸ’… Members πŸ’…

Let's break down every single member, one by one, no skipping, fr fr:

  • proto β€” A reference to the associated protocol descriptor. It's like the protocol's little handshake partner, you know? 🫱
  • evt β€” A reference to the associated event descriptor (as provided at registration time). Iconic, honestly.
  • report β€” A pre-allocated buffer used by the deferred worker to fill a customized event report. Very demure, very mindful buffer. πŸ™ˆ
  • num_sources β€” The number of possible sources for this event as stated at events' registration time. Numbers don't lie, bestie. πŸ”’
  • not_supported_by_platform β€” A flag to indicate that not even one source was found to be supported by the platform for this event. Oof, the platform said "not today" πŸ’€
  • sources_mtx β€” A mutex to serialize the access to sources. It's giving bouncer at the club β€” one at a time, please. πŸšͺ
  • sources β€” A reference to a dynamically allocated array used to refcount the events' enable requests for all the existing sources. Refcount queen behavior. πŸ‘‘

🌈 Description 🌈

So here's the tea: all registered events are represented by one of these structures that are stored in the registered_events array at protocol registration time. Cute, right? ✨

Once these descriptors are successfully registered, they are NEVER again removed or modified since protocols do not unregister ever β€” yes, you read that right, NEVER, bold and everything. So once we safely grab a NON-NULL reference from the table we can keep it and use it. It's giving permanent resident energy, and honestly? We stan a stable pointer. πŸ’–

Heads up bestie: the all-caps NEVER is not me being dramatic β€” it's literally in the original. These things stay put. 🫢

πŸ”₯ SEE ALSO πŸ”₯

Okay this list is LONG but we're not skipping a single one, because every reference matters, iykyk:


And that's the whole page, bestie! This gem lives in ./drivers/firmware/arm_scmi and it's dated October 2026 β€” so futuristic, so slay. πŸ’œ Stay curious, keep your pointers non-NULL, and remember: protocols never unregister, and neither should your love for the kernel. 🧚✨

πŸ“¦ where this page comes from