---
name: "libnvme_mi_aem_enable-libnvme3"
section: "2"
platform: "linux"
package: "nvme-cli"
version: "3.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libnvme_mi_aem_enable-libnvme3"
---

# libnvme\_mi\_aem\_enable-libnvme3(2)

Enable AE on the provided endpoint

## NAME

libnvme\_mi\_aem\_enable - Enable AE on the provided endpoint

## SYNOPSIS

**int libnvme\_mi\_aem\_enable** **(struct libnvme\_mi\_ep \*ep** *,* **struct libnvme\_mi\_aem\_config \*config** *,* **void \*userdata** *);*

## ARGUMENTS

- ep

  Endpoint to enable AEs

- config

  AE configuraiton including which events are enabled and the callback function

- userdata

  Application provided context pointer for callback function

## DESCRIPTION

This function is called to enable AE on the endpoint.  Endpoint will provide initial state (if any) of enabled AEs and application can parse those via the aem\_handler fn pointer in callbacks.  Thes can be obtained in the callback by calling **libnvme\_mi\_aem\_get\_next\_event**.

Application should poll the fd that can be obtained from libnvme\_mi\_aem\_get\_fd and then call **libnvme\_mi\_aem\_process** when **poll** indicates data available.

A call to **libnvme\_mi\_aem\_process** will grab AEM data and call the aem\_handler fn pointer. At this point the application can call **libnvme\_mi\_aem\_get\_next\_event** to get information for each triggered event.

## RETURN

0 on success, negative error code otherwise.
