---
name: "libnvme_get_ana_log_atomic-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_get_ana_log_atomic-libnvme3"
---

# libnvme\_get\_ana\_log\_atomic-libnvme3(2)

Retrieve Asymmetric Namespace Access log page atomically

## NAME

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

## 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

- hdl

  Transport handle

- rae

  Whether to retain asynchronous events

- rgo

  Whether to retrieve ANA groups only (no NSIDs)

- log

  Pointer to a buffer to receive the ANA log page

- len

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

- retries

  The maximum number of times to retry on log page changes

## DESCRIPTION

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

## 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.
