libnvme(9) API Manual libnvme(9)

# [NAME](#NAME)

struct nvme\_mi\_aem\_msg - AEM Message definition.

# [SYNOPSIS](#SYNOPSIS)

struct nvme\_mi\_aem\_msg {  
**struct nvme\_mi\_msg\_hdr hdr;**  
**struct nvme\_mi\_aem\_occ\_list\_hdr occ\_list\_hdr;**  
};

# [Members](#Members)

[hdr](#hdr)

the general response message header

[occ\_list\_hdr](#occ_list_hdr)

ae occurrence list header.

# [Description](#Description)

Every ae message will start with one of these. The occ\_list\_hder wil define information about how many ae occ data entries are included. Each entry is defined by the nvme\_mi\_aem\_occ\_data structure which will follow the occ\_list\_hdr. Each nvme\_mi\_aem\_occ\_data structure has a fixed length header but a variable length payload ude to occurrence specific and vendor specific info. For this reason, do not index the nvme\_mi\_ae\_occ data structures by array or fixed offset.

struct nvme\_mi\_aem\_msg September 2026

---

Document: nvme_mi_aem_msg-libnvme3(2) from nvme-cli 3.1-r1 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
