libnvme(9)

πŸ’– NAME πŸ’–

struct nvme_mi_event β€” the AE event info struct, bestie. Like, the little glow-up container that holds everything you wanna know about an asynchronous event. ✨

This page lives in the API Manual for libnvme, so you already know it's the good stuff. 🫢


🌸 SYNOPSIS 🌸

struct nvme_mi_event {
    uint8_t aeoi;
    uint8_t aessi;
    uint32_t aeocidi;
    void *spec_info;
    size_t spec_info_len;
    void *vend_spec_info;
    size_t vend_spec_info_len;
 };

no cap, that's the whole shape of it. seven members, zero drama. πŸ’…

✨ Members ✨

  • aeoi β€” the Event identifier. who dis? it's the event, that's who. πŸ‘‘
  • aessi β€” Event occurrence scope info. the where-ish of it all.
  • aeocidi β€” Event occurrence scope ID info. and this is the actual ID to go with that scope, slay.
  • spec_info β€” the Specific info buffer. a whole buffer of specifics, iconic. πŸŽ€
  • spec_info_len β€” Length of specific info buffer. obviously we need to know how long it is, fr fr.
  • vend_spec_info β€” the Vendor specific info buffer. vendor-only tea, don't touch unless you're the vendor. πŸ“
  • vend_spec_info_len β€” Length of vendor specific info buffer. and yeah, that one's got a length too.

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so here's the vibe: Application callbacks for nvme_mi_aem_process get to call nvme_mi_aem_get_next_event, and that is gonna hand you back a pointer to one of these identifiers β€” the next event your application should parse. 🫑

Like, you don't build these yourself, bestie. They get handed to you, you read the fields, you parse, you move on. main character energy tbh. 🌈

heads up: this is a struct of raw info β€” read the lengths before you go poking at spec_info or vend_spec_info, because we do not do undefined behaviour in this group chat. 😭

πŸ’œ okay that's the whole page, hope it ate πŸ’œ

This was the struct nvme_mi_event page from the libnvme API Manual, dated August 2026. πŸŽ€ Byeeee, go parse some events. πŸ’–βœ¨

πŸ“¦ where this page comes from