summaryrefslogtreecommitdiffstats
path: root/doc/rst/ioctl.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rst/ioctl.rst')
-rw-r--r--doc/rst/ioctl.rst48
1 files changed, 44 insertions, 4 deletions
diff --git a/doc/rst/ioctl.rst b/doc/rst/ioctl.rst
index 7b2003d..050bf99 100644
--- a/doc/rst/ioctl.rst
+++ b/doc/rst/ioctl.rst
@@ -2022,7 +2022,7 @@ This log consists of a header describing the log and descriptors containing
the asymmetric namespace access information for ANA Groups that contain
namespaces that are attached to the controller processing the command.
-See :c:type:`struct nvme_ana_rsp_hdr <nvme_ana_rsp_hdr>` for the definition of the returned structure.
+See :c:type:`struct nvme_ana_log <nvme_ana_log>` for the definition of the returned structure.
**Return**
@@ -2030,7 +2030,7 @@ The nvme command status if a response was received (see
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-.. c:function:: int nvme_get_log_ana_groups (int fd, bool rae, __u32 len, struct nvme_ana_group_desc *log)
+.. c:function:: int nvme_get_log_ana_groups (int fd, bool rae, __u32 len, struct nvme_ana_log *log)
Retrieve Asymmetric Namespace Access groups only log page
@@ -2045,12 +2045,12 @@ The nvme command status if a response was received (see
``__u32 len``
The allocated length of the log page
-``struct nvme_ana_group_desc *log``
+``struct nvme_ana_log *log``
User address to store the ana group log
**Description**
-See :c:type:`struct nvme_ana_group_desc <nvme_ana_group_desc>` for the definition of the returned structure.
+See :c:type:`struct nvme_ana_log <nvme_ana_log>` for the definition of the returned structure.
**Return**
@@ -2058,6 +2058,46 @@ The nvme command status if a response was received (see
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+.. c:function:: int nvme_get_ana_log_atomic (int fd, bool rgo, bool rae, unsigned int retries, struct nvme_ana_log *log, __u32 *len)
+
+ Retrieve Asymmetric Namespace Access log page atomically
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``bool rgo``
+ Whether to retrieve ANA groups only (no NSIDs)
+
+``bool rae``
+ Whether to retain asynchronous events
+
+``unsigned int retries``
+ The maximum number of times to retry on log page changes
+
+``struct nvme_ana_log *log``
+ Pointer to a buffer to receive the ANA log page
+
+``__u32 *len``
+ Input: the length of the log page buffer.
+ Output: the actual length of the ANA log page.
+
+**Description**
+
+See :c:type:`struct nvme_ana_log <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 :c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set 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.
+
+
.. c:function:: int nvme_get_log_lba_status (int fd, bool rae, __u64 offset, __u32 len, void *log)
Retrieve LBA Status