libnvme(2)

✨ NAME ✨

okay so bestie, welcome to libnvme(2) β€” the API manual, section 2, and today's main character is:

enum nvme_id_ctrl_oaes β€” Optional Asynchronous Events Supported πŸ’–

like. it's the enum that tells you which optional async events your NVMe controller is vibing with. no cap.


🌸 SYNOPSIS 🌸

enum nvme_id_ctrl_oaes {
    NVME_CTRL_OAES_NA_SHIFT ,
    NVME_CTRL_OAES_FA_SHIFT ,
    NVME_CTRL_OAES_ANA_SHIFT ,
    NVME_CTRL_OAES_PLEA_SHIFT ,
    NVME_CTRL_OAES_LBAS_SHIFT ,
    NVME_CTRL_OAES_EGE_SHIFT ,
    NVME_CTRL_OAES_NS_SHIFT ,
    NVME_CTRL_OAES_TTH_SHIFT ,
    NVME_CTRL_OAES_RGCNS_SHIFT ,
    NVME_CTRL_OAES_ANSAN_SHIFT ,
    NVME_CTRL_OAES_ZD_SHIFT ,
    NVME_CTRL_OAES_DL_SHIFT ,
    NVME_CTRL_OAES_NA_MASK ,
    NVME_CTRL_OAES_FA_MASK ,
    NVME_CTRL_OAES_ANA_MASK ,
    NVME_CTRL_OAES_PLEA_MASK ,
    NVME_CTRL_OAES_LBAS_MASK ,
    NVME_CTRL_OAES_EGE_MASK ,
    NVME_CTRL_OAES_NS_MASK ,
    NVME_CTRL_OAES_TTH_MASK ,
    NVME_CTRL_OAES_RGCNS_MASK ,
    NVME_CTRL_OAES_ANSAN_MASK ,
    NVME_CTRL_OAES_ZD_MASK ,
    NVME_CTRL_OAES_DL_MASK ,
    NVME_CTRL_OAES_NA ,
    NVME_CTRL_OAES_FA ,
    NVME_CTRL_OAES_ANA ,
    NVME_CTRL_OAES_PLEA ,
    NVME_CTRL_OAES_LBAS ,
    NVME_CTRL_OAES_EGE ,
    NVME_CTRL_OAES_NS ,
    NVME_CTRL_OAES_TTH ,
    NVME_CTRL_OAES_RGCNS ,
    NVME_CTRL_OAES_ANSAN ,
    NVME_CTRL_OAES_ZD ,
    NVME_CTRL_OAES_DL

};

like, look at her. thirty-six constants, three flavours, one icon πŸ’…


πŸŽ€ Constants πŸŽ€

πŸ’« the _SHIFT girlies (shift amounts)

these are the shift amounts, bestie β€” how far you gotta slide over to peek at whether each event is supported πŸ¦‹

  • NVME_CTRL_OAES_NA_SHIFT β€” shift amount to get the Namespace Attribute Notices event supported
  • NVME_CTRL_OAES_FA_SHIFT β€” shift amount to get the Firmware Activation Notices event supported
  • NVME_CTRL_OAES_ANA_SHIFT β€” shift amount to get the ANA Change Notices supported
  • NVME_CTRL_OAES_PLEA_SHIFT β€” shift amount to get the Predictable Latency Event Aggregate Log Change Notices event supported
  • NVME_CTRL_OAES_LBAS_SHIFT β€” shift amount to get the LBA Status Information Notices event supported
  • NVME_CTRL_OAES_EGE_SHIFT β€” shift amount to get the Endurance Group Events Aggregate Log Change Notices event supported
  • NVME_CTRL_OAES_NS_SHIFT β€” shift amount to get the Normal NVM Subsystem Shutdown event supported
  • NVME_CTRL_OAES_TTH_SHIFT β€” shift amount to get the Temperature Threshold Hysteresis Recovery event supported
  • NVME_CTRL_OAES_RGCNS_SHIFT β€” shift amount to get the Reachability Groups Change Notices supported
  • NVME_CTRL_OAES_ANSAN_SHIFT β€” shift amount to get the Allocated Namespace Attribute Notices supported
  • NVME_CTRL_OAES_ZD_SHIFT β€” shift amount to get the Zone Descriptor Change Notifications supported
  • NVME_CTRL_OAES_DL_SHIFT β€” shift amount to get the Discover Log Page Change Notifications supported

🌈 the _MASK era (mask values)

and these are the masks β€” swipe right to isolate the bit and find out if it's supported ✨

  • NVME_CTRL_OAES_NA_MASK β€” mask to get the Namespace Attribute Notices event supported
  • NVME_CTRL_OAES_FA_MASK β€” mask to get the Firmware Activation Notices event supported
  • NVME_CTRL_OAES_ANA_MASK β€” mask to get the ANA Change Notices supported
  • NVME_CTRL_OAES_PLEA_MASK β€” mask to get the Predictable Latency Event Aggregate Log Change Notices event supported
  • NVME_CTRL_OAES_LBAS_MASK β€” mask to get the LBA Status Information Notices event supported
  • NVME_CTRL_OAES_EGE_MASK β€” mask to get the Endurance Group Events Aggregate Log Change Notices event supported
  • NVME_CTRL_OAES_NS_MASK β€” mask to get the Normal NVM Subsystem Shutdown event supported
  • NVME_CTRL_OAES_TTH_MASK β€” mask to get the Temperature Threshold Hysteresis Recovery event supported
  • NVME_CTRL_OAES_RGCNS_MASK β€” mask to get the Reachability Groups Change Notices supported
  • NVME_CTRL_OAES_ANSAN_MASK β€” mask to get the Allocated Namespace Attribute Notices supported
  • NVME_CTRL_OAES_ZD_MASK β€” mask to get the Zone Descriptor Change Notifications supported
  • NVME_CTRL_OAES_DL_MASK β€” mask to get the Discover Log Page Change Notifications supported

πŸ‘‘ the plain ones (the actual supported events)

no shift, no mask, just the vibes. each one = that event is supported 🫢

  • NVME_CTRL_OAES_NA β€” Namespace Attribute Notices event supported
  • NVME_CTRL_OAES_FA β€” Firmware Activation Notices event supported
  • NVME_CTRL_OAES_ANA β€” ANA Change Notices supported
  • NVME_CTRL_OAES_PLEA β€” Predictable Latency Event Aggregate Log Change Notices event supported
  • NVME_CTRL_OAES_LBAS β€” LBA Status Information Notices event supported
  • NVME_CTRL_OAES_EGE β€” Endurance Group Events Aggregate Log Change Notices event supported
  • NVME_CTRL_OAES_NS β€” Normal NVM Subsystem Shutdown event supported
  • NVME_CTRL_OAES_TTH β€” Temperature Threshold Hysteresis Recovery event supported
  • NVME_CTRL_OAES_RGCNS β€” Reachability Groups Change Notices supported
  • NVME_CTRL_OAES_ANSAN β€” Allocated Namespace Attribute Notices supported
  • NVME_CTRL_OAES_ZD β€” Zone Descriptor Change Notifications supported
  • NVME_CTRL_OAES_DL β€” Discover Log Page Change Notifications supported

bestie reminder: all of these are optional async events, hence the "OAES" in the name. the controller tells you which ones it's down for, and you go from there. πŸ’–

and that's the whole page, periodt πŸŽ€ this was enum nvme_id_ctrl_oaes from the libnvme(2) API Manual, dated July 2026, written up by your girl with love. mwah πŸ’…βœ¨

πŸ“¦ where this page comes from