libnvme(9) API Manual libnvme(9)

# [NAME](#NAME)

struct nvme\_self\_test\_log - Device Self-test (Log Identifier 06h)

# [SYNOPSIS](#SYNOPSIS)

struct nvme\_self\_test\_log {  
**\_\_u8 current\_operation;**  
**\_\_u8 completion;**  
**\_\_u8 rsvd\[2];**  
**struct nvme\_st\_result result\[NVME\_LOG\_ST\_MAX\_RESULTS];**  
};

# [Members](#Members)

[current\_operation](#current_operation)

Current Device Self-Test Operation: indicates the status of the current device self-test operation. If a device self-test operation is in process (i.e., this field is set to #NVME\_ST\_CURR\_OP\_SHORT or #NVME\_ST\_CURR\_OP\_EXTENDED), then the controller shall not set this field to #NVME\_ST\_CURR\_OP\_NOT\_RUNNING until a new Self-test Result Data Structure is created (i.e., if a device self-test operation completes or is aborted, then the controller shall create a Self-test Result Data Structure prior to setting this field to #NVME\_ST\_CURR\_OP\_NOT\_RUNNING). See *enum nvme\_st\_curr\_op*.

[completion](#completion)

Current Device Self-Test Completion: indicates the percentage of the device self-test operation that is complete (e.g., a value of 25 indicates that 25% of the device self-test operation is complete and 75% remains to be tested). If the *current\_operation* field is cleared to #NVME\_ST\_CURR\_OP\_NOT\_RUNNING (indicating there is no device self-test operation in progress), then this field is ignored.

[rsvd](#rsvd)

Reserved

[result](#result)

Self-test Result Data Structures, see *struct nvme\_st\_result*.

struct nvme\_self\_test\_log October 2026

---

Document: nvme_self_test_log-libnvme3(2) from nvme-cli 3.2-r0 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
