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 supportedNVME_CTRL_OAES_FA_SHIFTβ shift amount to get the Firmware Activation Notices event supportedNVME_CTRL_OAES_ANA_SHIFTβ shift amount to get the ANA Change Notices supportedNVME_CTRL_OAES_PLEA_SHIFTβ shift amount to get the Predictable Latency Event Aggregate Log Change Notices event supportedNVME_CTRL_OAES_LBAS_SHIFTβ shift amount to get the LBA Status Information Notices event supportedNVME_CTRL_OAES_EGE_SHIFTβ shift amount to get the Endurance Group Events Aggregate Log Change Notices event supportedNVME_CTRL_OAES_NS_SHIFTβ shift amount to get the Normal NVM Subsystem Shutdown event supportedNVME_CTRL_OAES_TTH_SHIFTβ shift amount to get the Temperature Threshold Hysteresis Recovery event supportedNVME_CTRL_OAES_RGCNS_SHIFTβ shift amount to get the Reachability Groups Change Notices supportedNVME_CTRL_OAES_ANSAN_SHIFTβ shift amount to get the Allocated Namespace Attribute Notices supportedNVME_CTRL_OAES_ZD_SHIFTβ shift amount to get the Zone Descriptor Change Notifications supportedNVME_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 supportedNVME_CTRL_OAES_FA_MASKβ mask to get the Firmware Activation Notices event supportedNVME_CTRL_OAES_ANA_MASKβ mask to get the ANA Change Notices supportedNVME_CTRL_OAES_PLEA_MASKβ mask to get the Predictable Latency Event Aggregate Log Change Notices event supportedNVME_CTRL_OAES_LBAS_MASKβ mask to get the LBA Status Information Notices event supportedNVME_CTRL_OAES_EGE_MASKβ mask to get the Endurance Group Events Aggregate Log Change Notices event supportedNVME_CTRL_OAES_NS_MASKβ mask to get the Normal NVM Subsystem Shutdown event supportedNVME_CTRL_OAES_TTH_MASKβ mask to get the Temperature Threshold Hysteresis Recovery event supportedNVME_CTRL_OAES_RGCNS_MASKβ mask to get the Reachability Groups Change Notices supportedNVME_CTRL_OAES_ANSAN_MASKβ mask to get the Allocated Namespace Attribute Notices supportedNVME_CTRL_OAES_ZD_MASKβ mask to get the Zone Descriptor Change Notifications supportedNVME_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 supportedNVME_CTRL_OAES_FAβ Firmware Activation Notices event supportedNVME_CTRL_OAES_ANAβ ANA Change Notices supportedNVME_CTRL_OAES_PLEAβ Predictable Latency Event Aggregate Log Change Notices event supportedNVME_CTRL_OAES_LBASβ LBA Status Information Notices event supportedNVME_CTRL_OAES_EGEβ Endurance Group Events Aggregate Log Change Notices event supportedNVME_CTRL_OAES_NSβ Normal NVM Subsystem Shutdown event supportedNVME_CTRL_OAES_TTHβ Temperature Threshold Hysteresis Recovery event supportedNVME_CTRL_OAES_RGCNSβ Reachability Groups Change Notices supportedNVME_CTRL_OAES_ANSANβ Allocated Namespace Attribute Notices supportedNVME_CTRL_OAES_ZDβ Zone Descriptor Change Notifications supportedNVME_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
- ubuntu stonking: libnvme-dev 1.16.2-1build1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms