libnvme\_get\_ana\_log\_atomic(9) libnvme API manual libnvme\_get\_ana\_log\_atomic(9)

# [NAME](#NAME)

libnvme\_get\_ana\_log\_atomic - Retrieve Asymmetric Namespace Access log page atomically

# [SYNOPSIS](#SYNOPSIS)

**int libnvme\_get\_ana\_log\_atomic** **(struct libnvme\_transport\_handle \*hdl ,** **bool rae ,** **bool rgo ,** **struct nvme\_ana\_log \*log ,** **\_\_u32 \*len ,** **unsigned int retries );**

# [ARGUMENTS](#ARGUMENTS)

[hdl](#hdl)

Transport handle

[rae](#rae)

Whether to retain asynchronous events

[rgo](#rgo)

Whether to retrieve ANA groups only (no NSIDs)

[log](#log)

Pointer to a buffer to receive the ANA log page

[len](#len)

Input: the length of the log page buffer. Output: the actual length of the ANA log page.

[retries](#retries)

The maximum number of times to retry on log page changes

# [DESCRIPTION](#DESCRIPTION)

See *struct nvme\_ana\_log* for the definition of the returned structure.

# [RETURN](#RETURN)

If successful, returns 0 and sets \*len to the actual log page length. If unsuccessful, returns the nvme command status if a response was received (see *enum nvme\_status\_field*) or negative error code otherwise. Sets errno = EINVAL if retries == 0. Sets errno = EAGAIN if unable to read the log page atomically because chgcnt changed during each of the retries attempts. Sets errno = ENOSPC if the full log page does not fit in the provided buffer.

libnvme\_get\_ana\_log\_atomic September 2026

---

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