diff --git a/.checkpatch.conf b/.checkpatch.conf index 5541a56..e7ea2b1 100644 --- a/.checkpatch.conf +++ b/.checkpatch.conf @@ -4,7 +4,7 @@ # This isn't actually a Linux kernel tree --no-tree ---max-line-length=120 +--max-line-length=100 --ignore EMAIL_SUBJECT @@ -22,3 +22,6 @@ # Avoid "Does not appear to be a unified-diff format patch" message --ignore NOT_UNIFIED_DIFF + +# Do not warn for __attribute__((XXX)) is used +--ignore PREFER_DEFINED_ATTRIBUTE_MACRO diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b0cf58c..752f474 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -17,7 +17,7 @@ jobs: - name: build run: | scripts/build.sh coverage - - uses: codecov/codecov-action@v4 + - uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: true diff --git a/.github/workflows/release-python.yml b/.github/workflows/release-python.yml index d967918..9ae58a0 100644 --- a/.github/workflows/release-python.yml +++ b/.github/workflows/release-python.yml @@ -42,7 +42,7 @@ jobs: path: dist - name: Publish package to TestPyPI - uses: pypa/gh-action-pypi-publish@release/v1.5 + uses: pypa/gh-action-pypi-publish@release/v1.12 with: user: __token__ password: ${{ secrets.TEST_PYPI_API_TOKEN }} @@ -66,7 +66,7 @@ jobs: name: artifact path: dist - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@release/v1.5 + uses: pypa/gh-action-pypi-publish@release/v1.12 if: steps.check-tag.outputs.match == 'true' with: user: __token__ diff --git a/Makefile b/Makefile index 768338a..a7c3268 100644 --- a/Makefile +++ b/Makefile @@ -9,38 +9,52 @@ NAME := libnvme .DEFAULT_GOAL := ${NAME} BUILD-DIR := .build +.PHONY: update-subprojects +update-subprojects: + meson subprojects update + ${BUILD-DIR}: - meson $@ + meson setup $@ @echo "Configuration located in: $@" @echo "-------------------------------------------------------" .PHONY: ${NAME} ${NAME}: ${BUILD-DIR} - ninja -C ${BUILD-DIR} + meson compile -C ${BUILD-DIR} .PHONY: clean clean: ifneq ("$(wildcard ${BUILD-DIR})","") - ninja -C ${BUILD-DIR} -t $@ + meson compile --clean -C ${BUILD-DIR} endif .PHONY: purge purge: ifneq ("$(wildcard ${BUILD-DIR})","") rm -rf ${BUILD-DIR} + meson subprojects purge --confirm endif -.PHONY: install dist -install dist: ${BUILD-DIR} - cd ${BUILD-DIR} && meson $@ +.PHONY: install +install: ${NAME} + meson install -C ${BUILD-DIR} --skip-subprojects .PHONY: uninstall uninstall: cd ${BUILD-DIR} && meson --internal uninstall +.PHONY: dist +dist: ${NAME} + meson dist -C ${BUILD-DIR} --formats gztar + .PHONY: test -test: ${BUILD-DIR} - ninja -C ${BUILD-DIR} $@ +test: ${NAME} + meson test -C ${BUILD-DIR} + +# Test strictly libnvme (do not run tests on all the subprojects) +.PHONY: test-strict +test-strict: ${NAME} + meson test -C ${BUILD-DIR} --suite libnvme .PHONY: rpm rpm: ${BUILD-DIR} diff --git a/README.md b/README.md index 758d5d5..e291566 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,7 @@ A few build options can be specified on the command line when invoking meson. | libdbus | auto, enabled, [disabled] | Enables D-Bus dependent features (libnvme-mi: End point discovery), adds build dependency on libdbus | | json-c | [auto], enabled, disabled | (recommended) Enables JSON-C dependend features (e.g. config.json parsing), adds build depdency on json-c | | keyutils | [auto], enabled, disabled | Enables keyutils dependent features (e.g. authentication), adds build dependency on keyutils | +| liburing | [auto], enabled, disabled | Enables liburing dependent features (e.g. get log page by uring cmd), adds build depdency on liburing | See the full configuration options with diff --git a/doc/man/nbft_control.2 b/doc/man/nbft_control.2 index 0bd8525..202db41 100644 --- a/doc/man/nbft_control.2 +++ b/doc/man/nbft_control.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_control" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_control" "March 2025" "API Manual" LINUX .SH NAME struct nbft_control \- NBFT Table - Control Descriptor (Figure 8) .SH SYNOPSIS diff --git a/doc/man/nbft_control_flags.2 b/doc/man/nbft_control_flags.2 index 4e4e1fc..e5cba3b 100644 --- a/doc/man/nbft_control_flags.2 +++ b/doc/man/nbft_control_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_control_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_control_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_control_flags \- Control Descriptor Flags .SH SYNOPSIS diff --git a/doc/man/nbft_desc_type.2 b/doc/man/nbft_desc_type.2 index d9ff7c3..672f20a 100644 --- a/doc/man/nbft_desc_type.2 +++ b/doc/man/nbft_desc_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_desc_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_desc_type" "March 2025" "API Manual" LINUX .SH NAME enum nbft_desc_type \- NBFT Elements - Descriptor Types (Figure 5) .SH SYNOPSIS diff --git a/doc/man/nbft_discovery.2 b/doc/man/nbft_discovery.2 index f8b7434..43a78cd 100644 --- a/doc/man/nbft_discovery.2 +++ b/doc/man/nbft_discovery.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_discovery" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_discovery" "March 2025" "API Manual" LINUX .SH NAME struct nbft_discovery \- Discovery Descriptor (Figure 24) .SH SYNOPSIS diff --git a/doc/man/nbft_discovery_flags.2 b/doc/man/nbft_discovery_flags.2 index bd2bef6..c125b37 100644 --- a/doc/man/nbft_discovery_flags.2 +++ b/doc/man/nbft_discovery_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_discovery_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_discovery_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_discovery_flags \- Discovery Descriptor Flags .SH SYNOPSIS diff --git a/doc/man/nbft_header.2 b/doc/man/nbft_header.2 index 853c9d7..9e7dd82 100644 --- a/doc/man/nbft_header.2 +++ b/doc/man/nbft_header.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_header" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_header" "March 2025" "API Manual" LINUX .SH NAME struct nbft_header \- NBFT Table - Header (Figure 8) .SH SYNOPSIS diff --git a/doc/man/nbft_heap_obj.2 b/doc/man/nbft_heap_obj.2 index c447de6..aee99d6 100644 --- a/doc/man/nbft_heap_obj.2 +++ b/doc/man/nbft_heap_obj.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_heap_obj" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_heap_obj" "March 2025" "API Manual" LINUX .SH NAME struct nbft_heap_obj \- NBFT Header Driver Signature .SH SYNOPSIS diff --git a/doc/man/nbft_hfi.2 b/doc/man/nbft_hfi.2 index dc6ff99..0abc2f8 100644 --- a/doc/man/nbft_hfi.2 +++ b/doc/man/nbft_hfi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_hfi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_hfi" "March 2025" "API Manual" LINUX .SH NAME struct nbft_hfi \- Host Fabric Interface (HFI) Descriptor (Figure 11) .SH SYNOPSIS diff --git a/doc/man/nbft_hfi_flags.2 b/doc/man/nbft_hfi_flags.2 index f09c7e6..68b4733 100644 --- a/doc/man/nbft_hfi_flags.2 +++ b/doc/man/nbft_hfi_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_hfi_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_hfi_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_hfi_flags \- HFI Descriptor Flags .SH SYNOPSIS diff --git a/doc/man/nbft_hfi_info_tcp.2 b/doc/man/nbft_hfi_info_tcp.2 index a366d89..8e3f845 100644 --- a/doc/man/nbft_hfi_info_tcp.2 +++ b/doc/man/nbft_hfi_info_tcp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_hfi_info_tcp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_hfi_info_tcp" "March 2025" "API Manual" LINUX .SH NAME struct nbft_hfi_info_tcp \- HFI Transport Info Descriptor - NVMe/TCP (Figure 13) .SH SYNOPSIS diff --git a/doc/man/nbft_hfi_info_tcp_flags.2 b/doc/man/nbft_hfi_info_tcp_flags.2 index 832d933..089e65d 100644 --- a/doc/man/nbft_hfi_info_tcp_flags.2 +++ b/doc/man/nbft_hfi_info_tcp_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_hfi_info_tcp_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_hfi_info_tcp_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_hfi_info_tcp_flags \- HFI Transport Flags .SH SYNOPSIS diff --git a/doc/man/nbft_host.2 b/doc/man/nbft_host.2 index 5f92f5f..2284a81 100644 --- a/doc/man/nbft_host.2 +++ b/doc/man/nbft_host.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_host" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_host" "March 2025" "API Manual" LINUX .SH NAME struct nbft_host \- Host Descriptor (Figure 9) .SH SYNOPSIS diff --git a/doc/man/nbft_host_flags.2 b/doc/man/nbft_host_flags.2 index ee94884..f3cedb1 100644 --- a/doc/man/nbft_host_flags.2 +++ b/doc/man/nbft_host_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_host_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_host_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_host_flags \- Host Flags .SH SYNOPSIS diff --git a/doc/man/nbft_info.2 b/doc/man/nbft_info.2 index 4af6774..079d7e6 100644 --- a/doc/man/nbft_info.2 +++ b/doc/man/nbft_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info \- The parsed NBFT table data. .SH SYNOPSIS diff --git a/doc/man/nbft_info_discovery.2 b/doc/man/nbft_info_discovery.2 index 9816ef7..5e17169 100644 --- a/doc/man/nbft_info_discovery.2 +++ b/doc/man/nbft_info_discovery.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_discovery" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_discovery" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_discovery \- Discovery Descriptor .SH SYNOPSIS diff --git a/doc/man/nbft_info_hfi.2 b/doc/man/nbft_info_hfi.2 index 93a05a8..a76f268 100644 --- a/doc/man/nbft_info_hfi.2 +++ b/doc/man/nbft_info_hfi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_hfi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_hfi" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_hfi \- Host Fabric Interface (HFI) Descriptor .SH SYNOPSIS diff --git a/doc/man/nbft_info_hfi_info_tcp.2 b/doc/man/nbft_info_hfi_info_tcp.2 index 630dd18..5d3a26f 100644 --- a/doc/man/nbft_info_hfi_info_tcp.2 +++ b/doc/man/nbft_info_hfi_info_tcp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_hfi_info_tcp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_hfi_info_tcp" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_hfi_info_tcp \- HFI Transport Info Descriptor - NVMe/TCP .SH SYNOPSIS diff --git a/doc/man/nbft_info_host.2 b/doc/man/nbft_info_host.2 index 18ed5fa..c6bf24c 100644 --- a/doc/man/nbft_info_host.2 +++ b/doc/man/nbft_info_host.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_host" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_host" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_host \- Host Descriptor .SH SYNOPSIS diff --git a/doc/man/nbft_info_nid_type.2 b/doc/man/nbft_info_nid_type.2 index 2acbe3a..76d0cef 100644 --- a/doc/man/nbft_info_nid_type.2 +++ b/doc/man/nbft_info_nid_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_info_nid_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_info_nid_type" "March 2025" "API Manual" LINUX .SH NAME enum nbft_info_nid_type \- Namespace Identifier Type (NIDT) .SH SYNOPSIS diff --git a/doc/man/nbft_info_primary_admin_host_flag.2 b/doc/man/nbft_info_primary_admin_host_flag.2 index 8e0ff52..520d5e5 100644 --- a/doc/man/nbft_info_primary_admin_host_flag.2 +++ b/doc/man/nbft_info_primary_admin_host_flag.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_info_primary_admin_host_flag" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_info_primary_admin_host_flag" "March 2025" "API Manual" LINUX .SH NAME enum nbft_info_primary_admin_host_flag \- Primary Administrative Host Descriptor Flags .SH SYNOPSIS diff --git a/doc/man/nbft_info_security.2 b/doc/man/nbft_info_security.2 index 906a6c9..7205e60 100644 --- a/doc/man/nbft_info_security.2 +++ b/doc/man/nbft_info_security.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_security" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_security" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_security \- Security Profile Descriptor .SH SYNOPSIS diff --git a/doc/man/nbft_info_subsystem_ns.2 b/doc/man/nbft_info_subsystem_ns.2 index 8ad9106..0900287 100644 --- a/doc/man/nbft_info_subsystem_ns.2 +++ b/doc/man/nbft_info_subsystem_ns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_subsystem_ns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_subsystem_ns" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_subsystem_ns \- Subsystem Namespace (SSNS) info .SH SYNOPSIS diff --git a/doc/man/nbft_security.2 b/doc/man/nbft_security.2 index e680076..cecc663 100644 --- a/doc/man/nbft_security.2 +++ b/doc/man/nbft_security.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_security" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_security" "March 2025" "API Manual" LINUX .SH NAME struct nbft_security \- Security Profile Descriptor (Figure 21) .SH SYNOPSIS diff --git a/doc/man/nbft_security_flags.2 b/doc/man/nbft_security_flags.2 index 17fec41..2f03e83 100644 --- a/doc/man/nbft_security_flags.2 +++ b/doc/man/nbft_security_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_security_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_security_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_security_flags \- Security Profile Descriptor Flags (Figure 22) .SH SYNOPSIS diff --git a/doc/man/nbft_security_secret_type.2 b/doc/man/nbft_security_secret_type.2 index 906c5c4..a22b313 100644 --- a/doc/man/nbft_security_secret_type.2 +++ b/doc/man/nbft_security_secret_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_security_secret_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_security_secret_type" "March 2025" "API Manual" LINUX .SH NAME enum nbft_security_secret_type \- Security Profile Descriptor Secret Type .SH SYNOPSIS diff --git a/doc/man/nbft_ssns.2 b/doc/man/nbft_ssns.2 index 437d59e..a8eeb21 100644 --- a/doc/man/nbft_ssns.2 +++ b/doc/man/nbft_ssns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_ssns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_ssns" "March 2025" "API Manual" LINUX .SH NAME struct nbft_ssns \- Subsystem Namespace (SSNS) Descriptor (Figure 15) .SH SYNOPSIS diff --git a/doc/man/nbft_ssns_ext_info.2 b/doc/man/nbft_ssns_ext_info.2 index d870ecc..35e4206 100644 --- a/doc/man/nbft_ssns_ext_info.2 +++ b/doc/man/nbft_ssns_ext_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_ssns_ext_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_ssns_ext_info" "March 2025" "API Manual" LINUX .SH NAME struct nbft_ssns_ext_info \- Subsystem and Namespace Extended Information Descriptor (Figure 19) .SH SYNOPSIS diff --git a/doc/man/nbft_ssns_ext_info_flags.2 b/doc/man/nbft_ssns_ext_info_flags.2 index e42ddac..1319515 100644 --- a/doc/man/nbft_ssns_ext_info_flags.2 +++ b/doc/man/nbft_ssns_ext_info_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_ssns_ext_info_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_ssns_ext_info_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_ssns_ext_info_flags \- Subsystem and Namespace Extended Information Descriptor Flags .SH SYNOPSIS diff --git a/doc/man/nbft_ssns_flags.2 b/doc/man/nbft_ssns_flags.2 index 8d03aef..845b431 100644 --- a/doc/man/nbft_ssns_flags.2 +++ b/doc/man/nbft_ssns_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_ssns_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_ssns_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_ssns_flags \- Subsystem and Namespace Specific Flags Field (Figure 16) .SH SYNOPSIS diff --git a/doc/man/nbft_ssns_trflags.2 b/doc/man/nbft_ssns_trflags.2 index 9b52bf2..eddc3b9 100644 --- a/doc/man/nbft_ssns_trflags.2 +++ b/doc/man/nbft_ssns_trflags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_ssns_trflags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_ssns_trflags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_ssns_trflags \- SSNS Transport Specific Flags Field (Figure 17) .SH SYNOPSIS diff --git a/doc/man/nbft_trtype.2 b/doc/man/nbft_trtype.2 index e9a4cb1..6d452b5 100644 --- a/doc/man/nbft_trtype.2 +++ b/doc/man/nbft_trtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_trtype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_trtype" "March 2025" "API Manual" LINUX .SH NAME enum nbft_trtype \- NBFT Interface Transport Types (Figure 7) .SH SYNOPSIS diff --git a/doc/man/nvme_acq.2 b/doc/man/nvme_acq.2 index 550a4fd..e13431e 100644 --- a/doc/man/nvme_acq.2 +++ b/doc/man/nvme_acq.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_acq" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_acq" "March 2025" "API Manual" LINUX .SH NAME enum nvme_acq \- This field indicates the admin completion queue base address .SH SYNOPSIS diff --git a/doc/man/nvme_admin_opcode.2 b/doc/man/nvme_admin_opcode.2 index fb38d60..0ea609e 100644 --- a/doc/man/nvme_admin_opcode.2 +++ b/doc/man/nvme_admin_opcode.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_admin_opcode" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_admin_opcode" "March 2025" "API Manual" LINUX .SH NAME enum nvme_admin_opcode \- Known NVMe admin opcodes .SH SYNOPSIS @@ -112,10 +112,54 @@ enum nvme_admin_opcode { , .br .br +.BI " nvme_admin_clear_export_nvm_res" +, +.br +.br .BI " nvme_admin_fabric_zoning_send" , .br .br +.BI " nvme_admin_create_export_nvms" +, +.br +.br +.BI " nvme_admin_manage_export_nvms" +, +.br +.br +.BI " nvme_admin_manage_export_ns" +, +.br +.br +.BI " nvme_admin_manage_export_port" +, +.br +.br +.BI " nvme_admin_send_disc_log_page" +, +.br +.br +.BI " nvme_admin_track_send" +, +.br +.br +.BI " nvme_admin_track_receive" +, +.br +.br +.BI " nvme_admin_migration_send" +, +.br +.br +.BI " nvme_admin_migration_receive" +, +.br +.br +.BI " nvme_admin_ctrl_data_queue" +, +.br +.br .BI " nvme_admin_dbbuf" , .br @@ -140,7 +184,19 @@ enum nvme_admin_opcode { , .br .br +.BI " nvme_admin_load_program" +, +.br +.br .BI " nvme_admin_get_lba_status" +, +.br +.br +.BI " nvme_admin_program_act_mgmt" +, +.br +.br +.BI " nvme_admin_mem_range_set_mgmt" }; .SH Constants @@ -198,8 +254,30 @@ Fabric Zoning Receive Lockdown .IP "nvme_admin_fabric_zoning_lookup" 12 Fabric Zoning Lookup +.IP "nvme_admin_clear_export_nvm_res" 12 +Clear Exported NVM Resource Configuration .IP "nvme_admin_fabric_zoning_send" 12 Fabric Zoning Send +.IP "nvme_admin_create_export_nvms" 12 +Create Exported NVM Subsystem +.IP "nvme_admin_manage_export_nvms" 12 +Manage Exported NVM Subsystem +.IP "nvme_admin_manage_export_ns" 12 +Manage Exported Namespace +.IP "nvme_admin_manage_export_port" 12 +Manage Exported Port +.IP "nvme_admin_send_disc_log_page" 12 +Send Discovery Log Page +.IP "nvme_admin_track_send" 12 +Track Send +.IP "nvme_admin_track_receive" 12 +Track Receive +.IP "nvme_admin_migration_send" 12 +Migration Send +.IP "nvme_admin_migration_receive" 12 +Migration Receive +.IP "nvme_admin_ctrl_data_queue" 12 +Controller Data Queue .IP "nvme_admin_dbbuf" 12 Doorbell Buffer Config .IP "nvme_admin_fabrics" 12 @@ -212,5 +290,11 @@ Security Send Security Receive .IP "nvme_admin_sanitize_nvm" 12 Sanitize +.IP "nvme_admin_load_program" 12 +Load Program .IP "nvme_admin_get_lba_status" 12 Get LBA Status +.IP "nvme_admin_program_act_mgmt" 12 +Program Activation Management +.IP "nvme_admin_mem_range_set_mgmt" 12 +Memory Range Set Management diff --git a/doc/man/nvme_admin_passthru.2 b/doc/man/nvme_admin_passthru.2 index 71191ad..56451c0 100644 --- a/doc/man/nvme_admin_passthru.2 +++ b/doc/man/nvme_admin_passthru.2 @@ -1,4 +1,4 @@ -.TH "nvme_admin_passthru" 9 "nvme_admin_passthru" "November 2024" "libnvme API manual" LINUX +.TH "nvme_admin_passthru" 9 "nvme_admin_passthru" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_admin_passthru \- Submit an nvme passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_admin_passthru64.2 b/doc/man/nvme_admin_passthru64.2 index 1186f3f..7c9a915 100644 --- a/doc/man/nvme_admin_passthru64.2 +++ b/doc/man/nvme_admin_passthru64.2 @@ -1,4 +1,4 @@ -.TH "nvme_admin_passthru64" 9 "nvme_admin_passthru64" "November 2024" "libnvme API manual" LINUX +.TH "nvme_admin_passthru64" 9 "nvme_admin_passthru64" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_admin_passthru64 \- Submit a 64-bit nvme passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_ae_info_css_nvm.2 b/doc/man/nvme_ae_info_css_nvm.2 index 70d9fa3..f0021ef 100644 --- a/doc/man/nvme_ae_info_css_nvm.2 +++ b/doc/man/nvme_ae_info_css_nvm.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ae_info_css_nvm" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_css_nvm" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ae_info_css_nvm \- Asynchronous Event Information - I/O Command Specific Status .SH SYNOPSIS diff --git a/doc/man/nvme_ae_info_error.2 b/doc/man/nvme_ae_info_error.2 index f8eab0a..36319ed 100644 --- a/doc/man/nvme_ae_info_error.2 +++ b/doc/man/nvme_ae_info_error.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ae_info_error" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_error" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ae_info_error \- Asynchronous Event Information - Error Status .SH SYNOPSIS diff --git a/doc/man/nvme_ae_info_notice.2 b/doc/man/nvme_ae_info_notice.2 index ecae0b3..91da8a0 100644 --- a/doc/man/nvme_ae_info_notice.2 +++ b/doc/man/nvme_ae_info_notice.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ae_info_notice" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_notice" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ae_info_notice \- Asynchronous Event Information - Notice .SH SYNOPSIS diff --git a/doc/man/nvme_ae_info_smart.2 b/doc/man/nvme_ae_info_smart.2 index d263a2d..303db7c 100644 --- a/doc/man/nvme_ae_info_smart.2 +++ b/doc/man/nvme_ae_info_smart.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ae_info_smart" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_smart" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ae_info_smart \- Asynchronous Event Information - SMART / Health Status .SH SYNOPSIS diff --git a/doc/man/nvme_ae_type.2 b/doc/man/nvme_ae_type.2 index 246f0b2..7b628e1 100644 --- a/doc/man/nvme_ae_type.2 +++ b/doc/man/nvme_ae_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ae_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ae_type \- Asynchronous Event Type .SH SYNOPSIS @@ -16,6 +16,14 @@ enum nvme_ae_type { , .br .br +.BI " NVME_AER_IMMEDIATE" +, +.br +.br +.BI " NVME_AER_ONESHOT" +, +.br +.br .BI " NVME_AER_CSS" , .br @@ -30,6 +38,10 @@ Error event SMART / Health Status event .IP "NVME_AER_NOTICE" 12 Notice event +.IP "NVME_AER_IMMEDIATE" 12 +Immediate +.IP "NVME_AER_ONESHOT" 12 +One-Shot .IP "NVME_AER_CSS" 12 NVM Command Set Specific events .IP "NVME_AER_VS" 12 diff --git a/doc/man/nvme_aggregate_endurance_group_event.2 b/doc/man/nvme_aggregate_endurance_group_event.2 index c034a30..54f1df7 100644 --- a/doc/man/nvme_aggregate_endurance_group_event.2 +++ b/doc/man/nvme_aggregate_endurance_group_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_aggregate_endurance_group_event \- Endurance Group Event Aggregate .SH SYNOPSIS diff --git a/doc/man/nvme_aggregate_predictable_lat_event.2 b/doc/man/nvme_aggregate_predictable_lat_event.2 index 5793746..3e623e3 100644 --- a/doc/man/nvme_aggregate_predictable_lat_event.2 +++ b/doc/man/nvme_aggregate_predictable_lat_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_aggregate_predictable_lat_event \- Predictable Latency Event Aggregate Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_ana_group_desc.2 b/doc/man/nvme_ana_group_desc.2 index 0487164..d0f24e9 100644 --- a/doc/man/nvme_ana_group_desc.2 +++ b/doc/man/nvme_ana_group_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ana_group_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ana_group_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ana_group_desc \- ANA Group Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_ana_log.2 b/doc/man/nvme_ana_log.2 index 4516e78..13b97be 100644 --- a/doc/man/nvme_ana_log.2 +++ b/doc/man/nvme_ana_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ana_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ana_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ana_log \- Asymmetric Namespace Access Log .SH SYNOPSIS diff --git a/doc/man/nvme_ana_state.2 b/doc/man/nvme_ana_state.2 index 1a9e4fc..d8b6809 100644 --- a/doc/man/nvme_ana_state.2 +++ b/doc/man/nvme_ana_state.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ana_state" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ana_state" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ana_state \- ANA Group Descriptor - Asymmetric Namespace Access State .SH SYNOPSIS diff --git a/doc/man/nvme_apst_entry.2 b/doc/man/nvme_apst_entry.2 index dbb9ddb..1537c8d 100644 --- a/doc/man/nvme_apst_entry.2 +++ b/doc/man/nvme_apst_entry.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_apst_entry" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_apst_entry" "March 2025" "API Manual" LINUX .SH NAME enum nvme_apst_entry \- Autonomous Power State Transition .SH SYNOPSIS diff --git a/doc/man/nvme_aqa.2 b/doc/man/nvme_aqa.2 index 1fb5b6c..9c3e14f 100644 --- a/doc/man/nvme_aqa.2 +++ b/doc/man/nvme_aqa.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_aqa" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_aqa" "March 2025" "API Manual" LINUX .SH NAME enum nvme_aqa \- This field indicates the admin queue attributes .SH SYNOPSIS diff --git a/doc/man/nvme_asq.2 b/doc/man/nvme_asq.2 index c2d167e..ec8feac 100644 --- a/doc/man/nvme_asq.2 +++ b/doc/man/nvme_asq.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_asq" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_asq" "March 2025" "API Manual" LINUX .SH NAME enum nvme_asq \- This field indicates the admin submission queue base address .SH SYNOPSIS diff --git a/doc/man/nvme_ave_discover_log.2 b/doc/man/nvme_ave_discover_log.2 new file mode 100644 index 0000000..b668e0f --- /dev/null +++ b/doc/man/nvme_ave_discover_log.2 @@ -0,0 +1,39 @@ +.TH "libnvme" 9 "struct nvme_ave_discover_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_ave_discover_log \- AVE Discovery Log +.SH SYNOPSIS +struct nvme_ave_discover_log { +.br +.BI " __le64 genctr;" +.br +.BI " __le64 numrec;" +.br +.BI " __le16 recfmt;" +.br +.BI " __u8 rsvd18[2];" +.br +.BI " __le32 tadlpl;" +.br +.BI " __u8 rsvd24[1000];" +.br +.BI " struct nvme_ave_discover_log_entry adlpe[];" +.br +.BI " +}; +.br + +.SH Members +.IP "genctr" 12 +Generation Counter +.IP "numrec" 12 +Number of Records +.IP "recfmt" 12 +Record Format +.IP "rsvd18" 12 +Reserved +.IP "tadlpl" 12 +Total AVE Discovery Log Page Length +.IP "rsvd24" 12 +Reserved +.IP "adlpe" 12 +AVE Discovery Log Page Entry List diff --git a/doc/man/nvme_ave_discover_log_entry.2 b/doc/man/nvme_ave_discover_log_entry.2 new file mode 100644 index 0000000..9c945cd --- /dev/null +++ b/doc/man/nvme_ave_discover_log_entry.2 @@ -0,0 +1,31 @@ +.TH "libnvme" 9 "struct nvme_ave_discover_log_entry" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_ave_discover_log_entry \- AVE Discovery Log Entry +.SH SYNOPSIS +struct nvme_ave_discover_log_entry { +.br +.BI " __le32 tel;" +.br +.BI " char avenqn[224];" +.br +.BI " __u8 numatr;" +.br +.BI " __u8 rsvd229[3];" +.br +.BI " struct nvme_ave_tr_record atr[];" +.br +.BI " +}; +.br + +.SH Members +.IP "tel" 12 +Total Entry Length +.IP "avenqn" 12 +AVE NQN +.IP "numatr" 12 +Number of AVE Transport Records +.IP "rsvd229" 12 +Reserved +.IP "atr" 12 +AVE Transport Record List diff --git a/doc/man/nvme_ave_tr_record.2 b/doc/man/nvme_ave_tr_record.2 new file mode 100644 index 0000000..43f7e9f --- /dev/null +++ b/doc/man/nvme_ave_tr_record.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_ave_tr_record" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_ave_tr_record \- AVE Transport Record +.SH SYNOPSIS +struct nvme_ave_tr_record { +.br +.BI " __u8 aveadrfam;" +.br +.BI " __u8 rsvd1;" +.br +.BI " __le16 avetrsvcid;" +.br +.BI " __u8 avetraddr[16];" +.br +.BI " +}; +.br + +.SH Members +.IP "aveadrfam" 12 +AVE Address Family +.IP "rsvd1" 12 +Reserved +.IP "avetrsvcid" 12 +AVE Transport Service Identifier +.IP "avetraddr" 12 +AVE Transport Address diff --git a/doc/man/nvme_boot_partition.2 b/doc/man/nvme_boot_partition.2 index c78a1c0..44d9030 100644 --- a/doc/man/nvme_boot_partition.2 +++ b/doc/man/nvme_boot_partition.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_boot_partition" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_boot_partition" "March 2025" "API Manual" LINUX .SH NAME struct nvme_boot_partition \- Boot Partition Log .SH SYNOPSIS diff --git a/doc/man/nvme_boot_partition_info.2 b/doc/man/nvme_boot_partition_info.2 index a758f74..ba9a978 100644 --- a/doc/man/nvme_boot_partition_info.2 +++ b/doc/man/nvme_boot_partition_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_boot_partition_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_boot_partition_info" "March 2025" "API Manual" LINUX .SH NAME enum nvme_boot_partition_info \- This field indicates the boot partition information .SH SYNOPSIS diff --git a/doc/man/nvme_bpinfo.2 b/doc/man/nvme_bpinfo.2 index 4e33d8f..9620fea 100644 --- a/doc/man/nvme_bpinfo.2 +++ b/doc/man/nvme_bpinfo.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_bpinfo" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_bpinfo" "March 2025" "API Manual" LINUX .SH NAME enum nvme_bpinfo \- This field indicates the boot partition information .SH SYNOPSIS diff --git a/doc/man/nvme_bpmbl.2 b/doc/man/nvme_bpmbl.2 index 3d07e5e..0a59402 100644 --- a/doc/man/nvme_bpmbl.2 +++ b/doc/man/nvme_bpmbl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_bpmbl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_bpmbl" "March 2025" "API Manual" LINUX .SH NAME enum nvme_bpmbl \- This field indicates the boot partition memory buffer location .SH SYNOPSIS diff --git a/doc/man/nvme_bprsel.2 b/doc/man/nvme_bprsel.2 index 06db2e3..fb2a69c 100644 --- a/doc/man/nvme_bprsel.2 +++ b/doc/man/nvme_bprsel.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_bprsel" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_bprsel" "March 2025" "API Manual" LINUX .SH NAME enum nvme_bprsel \- This field indicates the boot partition read select .SH SYNOPSIS diff --git a/doc/man/nvme_cap.2 b/doc/man/nvme_cap.2 index 43dff2c..b7c60e1 100644 --- a/doc/man/nvme_cap.2 +++ b/doc/man/nvme_cap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cap" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cap \- This field indicates the controller capabilities register .SH SYNOPSIS diff --git a/doc/man/nvme_capacity_config_desc.2 b/doc/man/nvme_capacity_config_desc.2 index b7d7903..7e97de3 100644 --- a/doc/man/nvme_capacity_config_desc.2 +++ b/doc/man/nvme_capacity_config_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_capacity_config_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_capacity_config_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_capacity_config_desc \- Capacity Configuration structure definitions .SH SYNOPSIS diff --git a/doc/man/nvme_capacity_mgmt.2 b/doc/man/nvme_capacity_mgmt.2 index 9636256..65bb18a 100644 --- a/doc/man/nvme_capacity_mgmt.2 +++ b/doc/man/nvme_capacity_mgmt.2 @@ -1,4 +1,4 @@ -.TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_capacity_mgmt \- Capacity management command .SH SYNOPSIS diff --git a/doc/man/nvme_cc.2 b/doc/man/nvme_cc.2 index cc5df6b..c15bc20 100644 --- a/doc/man/nvme_cc.2 +++ b/doc/man/nvme_cc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cc \- This field indicates the controller configuration .SH SYNOPSIS diff --git a/doc/man/nvme_change_ns_event.2 b/doc/man/nvme_change_ns_event.2 index 0b4ba39..934d02c 100644 --- a/doc/man/nvme_change_ns_event.2 +++ b/doc/man/nvme_change_ns_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_change_ns_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_change_ns_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_change_ns_event \- Change Namespace Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_channel_config_desc.2 b/doc/man/nvme_channel_config_desc.2 index 542ae79..8588d37 100644 --- a/doc/man/nvme_channel_config_desc.2 +++ b/doc/man/nvme_channel_config_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_channel_config_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_channel_config_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_channel_config_desc \- Channel Configuration Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_cmb_size.2 b/doc/man/nvme_cmb_size.2 index 20927df..53e9b6d 100644 --- a/doc/man/nvme_cmb_size.2 +++ b/doc/man/nvme_cmb_size.2 @@ -1,4 +1,4 @@ -.TH "nvme_cmb_size" 9 "nvme_cmb_size" "November 2024" "libnvme API manual" LINUX +.TH "nvme_cmb_size" 9 "nvme_cmb_size" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_cmb_size \- Calculate size of the controller memory buffer .SH SYNOPSIS diff --git a/doc/man/nvme_cmbebs.2 b/doc/man/nvme_cmbebs.2 index 58fa966..9ec209f 100644 --- a/doc/man/nvme_cmbebs.2 +++ b/doc/man/nvme_cmbebs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbebs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbebs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbebs \- This field indicates the controller memory buffer elasticity buffer size .SH SYNOPSIS diff --git a/doc/man/nvme_cmbloc.2 b/doc/man/nvme_cmbloc.2 index bd0ce61..6f931d6 100644 --- a/doc/man/nvme_cmbloc.2 +++ b/doc/man/nvme_cmbloc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbloc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbloc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbloc \- This field indicates the controller memory buffer location .SH SYNOPSIS diff --git a/doc/man/nvme_cmbmsc.2 b/doc/man/nvme_cmbmsc.2 index edbdb43..ae3cbb4 100644 --- a/doc/man/nvme_cmbmsc.2 +++ b/doc/man/nvme_cmbmsc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbmsc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbmsc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbmsc \- This field indicates the controller memory buffer memory space control .SH SYNOPSIS diff --git a/doc/man/nvme_cmbsts.2 b/doc/man/nvme_cmbsts.2 index 565ba55..a98c184 100644 --- a/doc/man/nvme_cmbsts.2 +++ b/doc/man/nvme_cmbsts.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbsts" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbsts" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbsts \- This field indicates the controller memory buffer status .SH SYNOPSIS diff --git a/doc/man/nvme_cmbswtp.2 b/doc/man/nvme_cmbswtp.2 index e1a3fa5..c0729b3 100644 --- a/doc/man/nvme_cmbswtp.2 +++ b/doc/man/nvme_cmbswtp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbswtp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbswtp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbswtp \- This field indicates the controller memory buffer sustained write throughput .SH SYNOPSIS diff --git a/doc/man/nvme_cmbsz.2 b/doc/man/nvme_cmbsz.2 index 3b5989e..2472602 100644 --- a/doc/man/nvme_cmbsz.2 +++ b/doc/man/nvme_cmbsz.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbsz" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbsz" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbsz \- This field indicates the controller memory buffer size .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_effects.2 b/doc/man/nvme_cmd_effects.2 index 453e493..2631583 100644 --- a/doc/man/nvme_cmd_effects.2 +++ b/doc/man/nvme_cmd_effects.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_effects" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_effects" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_effects \- Commands Supported and Effects .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_effects_log.2 b/doc/man/nvme_cmd_effects_log.2 index bd6cc42..5dcbe25 100644 --- a/doc/man/nvme_cmd_effects_log.2 +++ b/doc/man/nvme_cmd_effects_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_cmd_effects_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_cmd_effects_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_cmd_effects_log \- Commands Supported and Effects Log .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_format_mset.2 b/doc/man/nvme_cmd_format_mset.2 index 2a6eab0..2a63a39 100644 --- a/doc/man/nvme_cmd_format_mset.2 +++ b/doc/man/nvme_cmd_format_mset.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_format_mset" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_mset" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_format_mset \- Format NVM - Metadata Settings .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_format_pi.2 b/doc/man/nvme_cmd_format_pi.2 index a8893a1..644e4d9 100644 --- a/doc/man/nvme_cmd_format_pi.2 +++ b/doc/man/nvme_cmd_format_pi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_format_pi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_pi" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_format_pi \- Format NVM - Protection Information .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_format_pil.2 b/doc/man/nvme_cmd_format_pil.2 index 083478b..271efd6 100644 --- a/doc/man/nvme_cmd_format_pil.2 +++ b/doc/man/nvme_cmd_format_pil.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_format_pil" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_pil" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_format_pil \- Format NVM - Protection Information Location .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_format_ses.2 b/doc/man/nvme_cmd_format_ses.2 index 253d708..f8e2c5a 100644 --- a/doc/man/nvme_cmd_format_ses.2 +++ b/doc/man/nvme_cmd_format_ses.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_format_ses" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_ses" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_format_ses \- Format NVM - Secure Erase Settings .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_get_log_lid.2 b/doc/man/nvme_cmd_get_log_lid.2 index 84d869a..fee5ce6 100644 --- a/doc/man/nvme_cmd_get_log_lid.2 +++ b/doc/man/nvme_cmd_get_log_lid.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_get_log_lid" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_get_log_lid" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_get_log_lid \- Get Log Page -Log Page Identifiers .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_get_log_telemetry_host_lsp.2 b/doc/man/nvme_cmd_get_log_telemetry_host_lsp.2 index 56e8c57..9ba5a49 100644 --- a/doc/man/nvme_cmd_get_log_telemetry_host_lsp.2 +++ b/doc/man/nvme_cmd_get_log_telemetry_host_lsp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_get_log_telemetry_host_lsp \- Telemetry Host-Initiated log specific field .SH SYNOPSIS diff --git a/doc/man/nvme_cmic.2 b/doc/man/nvme_cmic.2 index c9d4741..37142bd 100644 --- a/doc/man/nvme_cmic.2 +++ b/doc/man/nvme_cmic.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmic" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmic" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmic \- This field indicates the controller multi-path I/O and NS sharing capabilities .SH SYNOPSIS diff --git a/doc/man/nvme_compare.2 b/doc/man/nvme_compare.2 index f67d441..b9dbf9c 100644 --- a/doc/man/nvme_compare.2 +++ b/doc/man/nvme_compare.2 @@ -1,4 +1,4 @@ -.TH "nvme_compare" 9 "nvme_compare" "November 2024" "libnvme API manual" LINUX +.TH "nvme_compare" 9 "nvme_compare" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_compare \- Submit an nvme user compare command .SH SYNOPSIS diff --git a/doc/man/nvme_connect_err.2 b/doc/man/nvme_connect_err.2 index b146302..9f141a5 100644 --- a/doc/man/nvme_connect_err.2 +++ b/doc/man/nvme_connect_err.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_connect_err" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_connect_err" "March 2025" "API Manual" LINUX .SH NAME enum nvme_connect_err \- nvme connect error codes .SH SYNOPSIS diff --git a/doc/man/nvme_constants.2 b/doc/man/nvme_constants.2 index 4c8fa1d..d705a04 100644 --- a/doc/man/nvme_constants.2 +++ b/doc/man/nvme_constants.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_constants" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_constants" "March 2025" "API Manual" LINUX .SH NAME enum nvme_constants \- A place to stash various constant nvme values .SH SYNOPSIS diff --git a/doc/man/nvme_copy.2 b/doc/man/nvme_copy.2 index 78e5c40..27583f3 100644 --- a/doc/man/nvme_copy.2 +++ b/doc/man/nvme_copy.2 @@ -1,4 +1,4 @@ -.TH "nvme_copy" 9 "nvme_copy" "November 2024" "libnvme API manual" LINUX +.TH "nvme_copy" 9 "nvme_copy" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_copy \- Copy command .SH SYNOPSIS diff --git a/doc/man/nvme_copy_range.2 b/doc/man/nvme_copy_range.2 index 36c7cc8..e83b82c 100644 --- a/doc/man/nvme_copy_range.2 +++ b/doc/man/nvme_copy_range.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_copy_range" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_copy_range" "March 2025" "API Manual" LINUX .SH NAME struct nvme_copy_range \- Copy - Source Range Entries Descriptor Format .SH SYNOPSIS diff --git a/doc/man/nvme_copy_range_f1.2 b/doc/man/nvme_copy_range_f1.2 index 4b39d0c..3d1c7c2 100644 --- a/doc/man/nvme_copy_range_f1.2 +++ b/doc/man/nvme_copy_range_f1.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_copy_range_f1" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_copy_range_f1" "March 2025" "API Manual" LINUX .SH NAME struct nvme_copy_range_f1 \- Copy - Source Range Entries Descriptor Format 1h .SH SYNOPSIS diff --git a/doc/man/nvme_copy_range_f2.2 b/doc/man/nvme_copy_range_f2.2 index cc79531..12f2946 100644 --- a/doc/man/nvme_copy_range_f2.2 +++ b/doc/man/nvme_copy_range_f2.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_copy_range_f2" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_copy_range_f2" "March 2025" "API Manual" LINUX .SH NAME struct nvme_copy_range_f2 \- Copy - Source Range Entries Descriptor Format 2h .SH SYNOPSIS diff --git a/doc/man/nvme_copy_range_f3.2 b/doc/man/nvme_copy_range_f3.2 index 7f80910..d0c8823 100644 --- a/doc/man/nvme_copy_range_f3.2 +++ b/doc/man/nvme_copy_range_f3.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_copy_range_f3" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_copy_range_f3" "March 2025" "API Manual" LINUX .SH NAME struct nvme_copy_range_f3 \- Copy - Source Range Entries Descriptor Format 3h .SH SYNOPSIS diff --git a/doc/man/nvme_copy_range_sopt.2 b/doc/man/nvme_copy_range_sopt.2 index 912bbaf..057db70 100644 --- a/doc/man/nvme_copy_range_sopt.2 +++ b/doc/man/nvme_copy_range_sopt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_copy_range_sopt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_copy_range_sopt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_copy_range_sopt \- NVMe Copy Range Source Options .SH SYNOPSIS diff --git a/doc/man/nvme_create_ctrl.2 b/doc/man/nvme_create_ctrl.2 index 27fb798..d5eb596 100644 --- a/doc/man/nvme_create_ctrl.2 +++ b/doc/man/nvme_create_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_create_ctrl" 9 "nvme_create_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_create_ctrl" 9 "nvme_create_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_create_ctrl \- Allocate an unconnected NVMe controller .SH SYNOPSIS diff --git a/doc/man/nvme_create_root.2 b/doc/man/nvme_create_root.2 index 9fa780c..b9b7703 100644 --- a/doc/man/nvme_create_root.2 +++ b/doc/man/nvme_create_root.2 @@ -1,4 +1,4 @@ -.TH "nvme_create_root" 9 "nvme_create_root" "November 2024" "libnvme API manual" LINUX +.TH "nvme_create_root" 9 "nvme_create_root" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_create_root \- Initialize root object .SH SYNOPSIS diff --git a/doc/man/nvme_crto.2 b/doc/man/nvme_crto.2 index 5464a2b..8a8df46 100644 --- a/doc/man/nvme_crto.2 +++ b/doc/man/nvme_crto.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_crto" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_crto" "March 2025" "API Manual" LINUX .SH NAME enum nvme_crto \- This field indicates the controller ready timeouts .SH SYNOPSIS diff --git a/doc/man/nvme_csi.2 b/doc/man/nvme_csi.2 index a7adfb9..080bf36 100644 --- a/doc/man/nvme_csi.2 +++ b/doc/man/nvme_csi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_csi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_csi" "March 2025" "API Manual" LINUX .SH NAME enum nvme_csi \- Defined command set indicators .SH SYNOPSIS @@ -13,6 +13,14 @@ enum nvme_csi { .br .br .BI " NVME_CSI_ZNS" +, +.br +.br +.BI " NVME_CSI_SLM" +, +.br +.br +.BI " NVME_CSI_CP" }; .SH Constants @@ -22,3 +30,7 @@ NVM Command Set Indicator Key Value Command Set .IP "NVME_CSI_ZNS" 12 Zoned Namespace Command Set +.IP "NVME_CSI_SLM" 12 +Subsystem Local Memory Command Set +.IP "NVME_CSI_CP" 12 +Computational Programs Command Set diff --git a/doc/man/nvme_csts.2 b/doc/man/nvme_csts.2 index bfc9ca3..704b3c0 100644 --- a/doc/man/nvme_csts.2 +++ b/doc/man/nvme_csts.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_csts" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_csts" "March 2025" "API Manual" LINUX .SH NAME enum nvme_csts \- This field indicates the controller status register .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_config_match.2 b/doc/man/nvme_ctrl_config_match.2 index f550771..583fdb3 100644 --- a/doc/man/nvme_ctrl_config_match.2 +++ b/doc/man/nvme_ctrl_config_match.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_config_match" 9 "nvme_ctrl_config_match" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_config_match" 9 "nvme_ctrl_config_match" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_config_match \- Check if ctrl @c matches config params .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_find.2 b/doc/man/nvme_ctrl_find.2 index ca58cc9..8622343 100644 --- a/doc/man/nvme_ctrl_find.2 +++ b/doc/man/nvme_ctrl_find.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_find" 9 "nvme_ctrl_find" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_find" 9 "nvme_ctrl_find" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_find \- Locate an existing controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_first_ns.2 b/doc/man/nvme_ctrl_first_ns.2 index 3b0ca4b..b160b7d 100644 --- a/doc/man/nvme_ctrl_first_ns.2 +++ b/doc/man/nvme_ctrl_first_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_first_ns \- Start namespace iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_first_path.2 b/doc/man/nvme_ctrl_first_path.2 index 9d4619c..54f45cc 100644 --- a/doc/man/nvme_ctrl_first_path.2 +++ b/doc/man/nvme_ctrl_first_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_first_path \- Start path iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_for_each_ns.2 b/doc/man/nvme_ctrl_for_each_ns.2 index 6fd36db..cd33dc7 100644 --- a/doc/man/nvme_ctrl_for_each_ns.2 +++ b/doc/man/nvme_ctrl_for_each_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_for_each_ns \- Traverse namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_for_each_ns_safe.2 b/doc/man/nvme_ctrl_for_each_ns_safe.2 index fb74d29..7d5d7bb 100644 --- a/doc/man/nvme_ctrl_for_each_ns_safe.2 +++ b/doc/man/nvme_ctrl_for_each_ns_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_for_each_ns_safe \- Traverse namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_for_each_path.2 b/doc/man/nvme_ctrl_for_each_path.2 index aadb37f..5c24a28 100644 --- a/doc/man/nvme_ctrl_for_each_path.2 +++ b/doc/man/nvme_ctrl_for_each_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_for_each_path \- Traverse paths .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_for_each_path_safe.2 b/doc/man/nvme_ctrl_for_each_path_safe.2 index ddf0a6c..ab8e047 100644 --- a/doc/man/nvme_ctrl_for_each_path_safe.2 +++ b/doc/man/nvme_ctrl_for_each_path_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_for_each_path_safe \- Traverse paths .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_address.2 b/doc/man/nvme_ctrl_get_address.2 index 9d6f606..3ddc75a 100644 --- a/doc/man/nvme_ctrl_get_address.2 +++ b/doc/man/nvme_ctrl_get_address.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_address \- Address string of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_config.2 b/doc/man/nvme_ctrl_get_config.2 index 011dc4f..a141f89 100644 --- a/doc/man/nvme_ctrl_get_config.2 +++ b/doc/man/nvme_ctrl_get_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_config \- Fabrics configuration of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_dhchap_host_key.2 b/doc/man/nvme_ctrl_get_dhchap_host_key.2 index 8bb6fd0..bd2eeb1 100644 --- a/doc/man/nvme_ctrl_get_dhchap_host_key.2 +++ b/doc/man/nvme_ctrl_get_dhchap_host_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_dhchap_host_key" 9 "nvme_ctrl_get_dhchap_host_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_dhchap_host_key" 9 "nvme_ctrl_get_dhchap_host_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_dhchap_host_key \- Return host key .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_dhchap_key.2 b/doc/man/nvme_ctrl_get_dhchap_key.2 index 3262759..1bfd289 100644 --- a/doc/man/nvme_ctrl_get_dhchap_key.2 +++ b/doc/man/nvme_ctrl_get_dhchap_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_dhchap_key \- Return controller key .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_fd.2 b/doc/man/nvme_ctrl_get_fd.2 index 6521660..4995c77 100644 --- a/doc/man/nvme_ctrl_get_fd.2 +++ b/doc/man/nvme_ctrl_get_fd.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_fd" 9 "nvme_ctrl_get_fd" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_fd" 9 "nvme_ctrl_get_fd" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_fd \- Get associated file descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_firmware.2 b/doc/man/nvme_ctrl_get_firmware.2 index 0835443..4e3ca23 100644 --- a/doc/man/nvme_ctrl_get_firmware.2 +++ b/doc/man/nvme_ctrl_get_firmware.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_firmware \- Firmware string of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_host_iface.2 b/doc/man/nvme_ctrl_get_host_iface.2 index f600fc3..8c9731f 100644 --- a/doc/man/nvme_ctrl_get_host_iface.2 +++ b/doc/man/nvme_ctrl_get_host_iface.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_host_iface \- Host interface name of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_host_traddr.2 b/doc/man/nvme_ctrl_get_host_traddr.2 index cde8627..3fd91c0 100644 --- a/doc/man/nvme_ctrl_get_host_traddr.2 +++ b/doc/man/nvme_ctrl_get_host_traddr.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_host_traddr \- Host transport address of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_keyring.2 b/doc/man/nvme_ctrl_get_keyring.2 index 3450237..a6439b2 100644 --- a/doc/man/nvme_ctrl_get_keyring.2 +++ b/doc/man/nvme_ctrl_get_keyring.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_keyring" 9 "nvme_ctrl_get_keyring" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_keyring" 9 "nvme_ctrl_get_keyring" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_keyring \- Return keyring .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_model.2 b/doc/man/nvme_ctrl_get_model.2 index 8c1c504..8e4464d 100644 --- a/doc/man/nvme_ctrl_get_model.2 +++ b/doc/man/nvme_ctrl_get_model.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_model \- Model of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_name.2 b/doc/man/nvme_ctrl_get_name.2 index 1b9ce60..23637fb 100644 --- a/doc/man/nvme_ctrl_get_name.2 +++ b/doc/man/nvme_ctrl_get_name.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_name \- sysfs name of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_numa_node.2 b/doc/man/nvme_ctrl_get_numa_node.2 index 93c21a2..1a6f271 100644 --- a/doc/man/nvme_ctrl_get_numa_node.2 +++ b/doc/man/nvme_ctrl_get_numa_node.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_numa_node \- NUMA node of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_phy_slot.2 b/doc/man/nvme_ctrl_get_phy_slot.2 index ed416af..ef64995 100644 --- a/doc/man/nvme_ctrl_get_phy_slot.2 +++ b/doc/man/nvme_ctrl_get_phy_slot.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_phy_slot" 9 "nvme_ctrl_get_phy_slot" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_phy_slot" 9 "nvme_ctrl_get_phy_slot" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_phy_slot \- PCI physical slot number of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_queue_count.2 b/doc/man/nvme_ctrl_get_queue_count.2 index 9698a4c..9475a3e 100644 --- a/doc/man/nvme_ctrl_get_queue_count.2 +++ b/doc/man/nvme_ctrl_get_queue_count.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_queue_count \- Queue count of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_serial.2 b/doc/man/nvme_ctrl_get_serial.2 index 4505d1e..e2e2eec 100644 --- a/doc/man/nvme_ctrl_get_serial.2 +++ b/doc/man/nvme_ctrl_get_serial.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_serial \- Serial number of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_sqsize.2 b/doc/man/nvme_ctrl_get_sqsize.2 index 7a565e1..7da37cf 100644 --- a/doc/man/nvme_ctrl_get_sqsize.2 +++ b/doc/man/nvme_ctrl_get_sqsize.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_sqsize \- SQ size of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_src_addr.2 b/doc/man/nvme_ctrl_get_src_addr.2 index 9bb9da4..0be3d0f 100644 --- a/doc/man/nvme_ctrl_get_src_addr.2 +++ b/doc/man/nvme_ctrl_get_src_addr.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_src_addr" 9 "nvme_ctrl_get_src_addr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_src_addr" 9 "nvme_ctrl_get_src_addr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_src_addr \- Extract src_addr from the c->address string .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_state.2 b/doc/man/nvme_ctrl_get_state.2 index 848dad7..755b15a 100644 --- a/doc/man/nvme_ctrl_get_state.2 +++ b/doc/man/nvme_ctrl_get_state.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_state" 9 "nvme_ctrl_get_state" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_state" 9 "nvme_ctrl_get_state" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_state \- Running state of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_subsysnqn.2 b/doc/man/nvme_ctrl_get_subsysnqn.2 index 439768f..7fc4b25 100644 --- a/doc/man/nvme_ctrl_get_subsysnqn.2 +++ b/doc/man/nvme_ctrl_get_subsysnqn.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_subsysnqn" 9 "nvme_ctrl_get_subsysnqn" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_subsysnqn" 9 "nvme_ctrl_get_subsysnqn" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_subsysnqn \- Subsystem NQN of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_subsystem.2 b/doc/man/nvme_ctrl_get_subsystem.2 index 475f27f..06ed7e4 100644 --- a/doc/man/nvme_ctrl_get_subsystem.2 +++ b/doc/man/nvme_ctrl_get_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_subsystem" 9 "nvme_ctrl_get_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_subsystem" 9 "nvme_ctrl_get_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_subsystem \- Parent subsystem of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_sysfs_dir.2 b/doc/man/nvme_ctrl_get_sysfs_dir.2 index d2687c7..9ad91e2 100644 --- a/doc/man/nvme_ctrl_get_sysfs_dir.2 +++ b/doc/man/nvme_ctrl_get_sysfs_dir.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_sysfs_dir" 9 "nvme_ctrl_get_sysfs_dir" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_sysfs_dir" 9 "nvme_ctrl_get_sysfs_dir" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_sysfs_dir \- sysfs directory of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_tls_key.2 b/doc/man/nvme_ctrl_get_tls_key.2 index 6bb4d52..e47c2e8 100644 --- a/doc/man/nvme_ctrl_get_tls_key.2 +++ b/doc/man/nvme_ctrl_get_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_tls_key" 9 "nvme_ctrl_get_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_tls_key" 9 "nvme_ctrl_get_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_tls_key \- Return Derive TLS PSK .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_tls_key_identity.2 b/doc/man/nvme_ctrl_get_tls_key_identity.2 index d41e9f8..99547a2 100644 --- a/doc/man/nvme_ctrl_get_tls_key_identity.2 +++ b/doc/man/nvme_ctrl_get_tls_key_identity.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_tls_key_identity" 9 "nvme_ctrl_get_tls_key_identity" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_tls_key_identity" 9 "nvme_ctrl_get_tls_key_identity" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_tls_key_identity \- Return Derive TLS Identity .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_traddr.2 b/doc/man/nvme_ctrl_get_traddr.2 index 995b987..327daee 100644 --- a/doc/man/nvme_ctrl_get_traddr.2 +++ b/doc/man/nvme_ctrl_get_traddr.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_traddr" 9 "nvme_ctrl_get_traddr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_traddr" 9 "nvme_ctrl_get_traddr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_traddr \- Transport address of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_transport.2 b/doc/man/nvme_ctrl_get_transport.2 index 7c8894e..be00011 100644 --- a/doc/man/nvme_ctrl_get_transport.2 +++ b/doc/man/nvme_ctrl_get_transport.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_transport" 9 "nvme_ctrl_get_transport" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_transport" 9 "nvme_ctrl_get_transport" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_transport \- Transport type of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_trsvcid.2 b/doc/man/nvme_ctrl_get_trsvcid.2 index 4fac3ea..d3bfea4 100644 --- a/doc/man/nvme_ctrl_get_trsvcid.2 +++ b/doc/man/nvme_ctrl_get_trsvcid.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_trsvcid" 9 "nvme_ctrl_get_trsvcid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_trsvcid" 9 "nvme_ctrl_get_trsvcid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_trsvcid \- Transport service identifier of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_identify.2 b/doc/man/nvme_ctrl_identify.2 index 3de6fc2..fd0328a 100644 --- a/doc/man/nvme_ctrl_identify.2 +++ b/doc/man/nvme_ctrl_identify.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_identify" 9 "nvme_ctrl_identify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_identify" 9 "nvme_ctrl_identify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_identify \- Issues an 'identify controller' command .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_is_discovered.2 b/doc/man/nvme_ctrl_is_discovered.2 index c14ef3a..f66eb46 100644 --- a/doc/man/nvme_ctrl_is_discovered.2 +++ b/doc/man/nvme_ctrl_is_discovered.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_is_discovered" 9 "nvme_ctrl_is_discovered" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_discovered" 9 "nvme_ctrl_is_discovered" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_is_discovered \- Returns the value of the 'discovered' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_is_discovery_ctrl.2 b/doc/man/nvme_ctrl_is_discovery_ctrl.2 index 10f5bd9..533edf6 100644 --- a/doc/man/nvme_ctrl_is_discovery_ctrl.2 +++ b/doc/man/nvme_ctrl_is_discovery_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_is_discovery_ctrl" 9 "nvme_ctrl_is_discovery_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_discovery_ctrl" 9 "nvme_ctrl_is_discovery_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_is_discovery_ctrl \- Check the 'discovery_ctrl' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_is_persistent.2 b/doc/man/nvme_ctrl_is_persistent.2 index c7183a1..19dff3d 100644 --- a/doc/man/nvme_ctrl_is_persistent.2 +++ b/doc/man/nvme_ctrl_is_persistent.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_is_persistent" 9 "nvme_ctrl_is_persistent" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_persistent" 9 "nvme_ctrl_is_persistent" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_is_persistent \- Returns the value of the 'persistent' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_is_unique_discovery_ctrl.2 b/doc/man/nvme_ctrl_is_unique_discovery_ctrl.2 index 1cf0235..be99513 100644 --- a/doc/man/nvme_ctrl_is_unique_discovery_ctrl.2 +++ b/doc/man/nvme_ctrl_is_unique_discovery_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_is_unique_discovery_ctrl" 9 "nvme_ctrl_is_unique_discovery_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_unique_discovery_ctrl" 9 "nvme_ctrl_is_unique_discovery_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_is_unique_discovery_ctrl \- Check the 'unique_discovery_ctrl' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_list.2 b/doc/man/nvme_ctrl_list.2 index cd9cfc5..8936137 100644 --- a/doc/man/nvme_ctrl_list.2 +++ b/doc/man/nvme_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ctrl_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ctrl_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ctrl_list \- Controller List .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_metadata_type.2 b/doc/man/nvme_ctrl_metadata_type.2 index 078cdd1..a2c8386 100644 --- a/doc/man/nvme_ctrl_metadata_type.2 +++ b/doc/man/nvme_ctrl_metadata_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ctrl_metadata_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ctrl_metadata_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ctrl_metadata_type \- Controller Metadata Element Types .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_next_ns.2 b/doc/man/nvme_ctrl_next_ns.2 index 2c04033..12f3067 100644 --- a/doc/man/nvme_ctrl_next_ns.2 +++ b/doc/man/nvme_ctrl_next_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_next_ns" 9 "nvme_ctrl_next_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_next_ns" 9 "nvme_ctrl_next_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_next_ns \- Next namespace iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_next_path.2 b/doc/man/nvme_ctrl_next_path.2 index 5f84b65..cafc06f 100644 --- a/doc/man/nvme_ctrl_next_path.2 +++ b/doc/man/nvme_ctrl_next_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_next_path" 9 "nvme_ctrl_next_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_next_path" 9 "nvme_ctrl_next_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_next_path \- Next path iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_release_fd.2 b/doc/man/nvme_ctrl_release_fd.2 index 23de3a6..a4caffa 100644 --- a/doc/man/nvme_ctrl_release_fd.2 +++ b/doc/man/nvme_ctrl_release_fd.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_release_fd" 9 "nvme_ctrl_release_fd" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_release_fd" 9 "nvme_ctrl_release_fd" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_release_fd \- Close fd and clear fd from controller object .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_reset.2 b/doc/man/nvme_ctrl_reset.2 index 22753dd..d04107b 100644 --- a/doc/man/nvme_ctrl_reset.2 +++ b/doc/man/nvme_ctrl_reset.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_reset" 9 "nvme_ctrl_reset" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_reset" 9 "nvme_ctrl_reset" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_reset \- Initiate a controller reset .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_dhchap_host_key.2 b/doc/man/nvme_ctrl_set_dhchap_host_key.2 index 8cf06b5..4531f33 100644 --- a/doc/man/nvme_ctrl_set_dhchap_host_key.2 +++ b/doc/man/nvme_ctrl_set_dhchap_host_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_dhchap_host_key" 9 "nvme_ctrl_set_dhchap_host_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_dhchap_host_key" 9 "nvme_ctrl_set_dhchap_host_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_dhchap_host_key \- Set host key .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_dhchap_key.2 b/doc/man/nvme_ctrl_set_dhchap_key.2 index f4dc6d4..de6d71a 100644 --- a/doc/man/nvme_ctrl_set_dhchap_key.2 +++ b/doc/man/nvme_ctrl_set_dhchap_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_dhchap_key" 9 "nvme_ctrl_set_dhchap_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_dhchap_key" 9 "nvme_ctrl_set_dhchap_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_dhchap_key \- Set controller key .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_discovered.2 b/doc/man/nvme_ctrl_set_discovered.2 index f790762..97ecbef 100644 --- a/doc/man/nvme_ctrl_set_discovered.2 +++ b/doc/man/nvme_ctrl_set_discovered.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_discovered" 9 "nvme_ctrl_set_discovered" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_discovered" 9 "nvme_ctrl_set_discovered" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_discovered \- Set the 'discovered' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_discovery_ctrl.2 b/doc/man/nvme_ctrl_set_discovery_ctrl.2 index 616c3e1..b8d1114 100644 --- a/doc/man/nvme_ctrl_set_discovery_ctrl.2 +++ b/doc/man/nvme_ctrl_set_discovery_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_discovery_ctrl" 9 "nvme_ctrl_set_discovery_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_discovery_ctrl" 9 "nvme_ctrl_set_discovery_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_discovery_ctrl \- Set the 'discovery_ctrl' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_keyring.2 b/doc/man/nvme_ctrl_set_keyring.2 index 009daa9..586e5f6 100644 --- a/doc/man/nvme_ctrl_set_keyring.2 +++ b/doc/man/nvme_ctrl_set_keyring.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_keyring" 9 "nvme_ctrl_set_keyring" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_keyring" 9 "nvme_ctrl_set_keyring" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_keyring \- Set keyring .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_persistent.2 b/doc/man/nvme_ctrl_set_persistent.2 index e4be07f..597b82f 100644 --- a/doc/man/nvme_ctrl_set_persistent.2 +++ b/doc/man/nvme_ctrl_set_persistent.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_persistent" 9 "nvme_ctrl_set_persistent" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_persistent" 9 "nvme_ctrl_set_persistent" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_persistent \- Set the 'persistent' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_tls_key.2 b/doc/man/nvme_ctrl_set_tls_key.2 index a80bd41..41ef419 100644 --- a/doc/man/nvme_ctrl_set_tls_key.2 +++ b/doc/man/nvme_ctrl_set_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_tls_key" 9 "nvme_ctrl_set_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_tls_key" 9 "nvme_ctrl_set_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_tls_key \- Set Derive TLS PSK .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_tls_key_identity.2 b/doc/man/nvme_ctrl_set_tls_key_identity.2 index 018804e..c5834ba 100644 --- a/doc/man/nvme_ctrl_set_tls_key_identity.2 +++ b/doc/man/nvme_ctrl_set_tls_key_identity.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_tls_key_identity" 9 "nvme_ctrl_set_tls_key_identity" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_tls_key_identity" 9 "nvme_ctrl_set_tls_key_identity" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_tls_key_identity \- Set Derive TLS Identity .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 b/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 index 04d0c27..43d5b50 100644 --- a/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 +++ b/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_unique_discovery_ctrl" 9 "nvme_ctrl_set_unique_discovery_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_unique_discovery_ctrl" 9 "nvme_ctrl_set_unique_discovery_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_unique_discovery_ctrl \- Set the 'unique_discovery_ctrl' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrls_filter.2 b/doc/man/nvme_ctrls_filter.2 index fb9e461..19b6363 100644 --- a/doc/man/nvme_ctrls_filter.2 +++ b/doc/man/nvme_ctrls_filter.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrls_filter" 9 "nvme_ctrls_filter" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrls_filter" 9 "nvme_ctrls_filter" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrls_filter \- Filter for controllers .SH SYNOPSIS diff --git a/doc/man/nvme_data_tfr.2 b/doc/man/nvme_data_tfr.2 index 93e31e3..120d4ab 100644 --- a/doc/man/nvme_data_tfr.2 +++ b/doc/man/nvme_data_tfr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_data_tfr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_data_tfr" "March 2025" "API Manual" LINUX .SH NAME enum nvme_data_tfr \- Data transfer direction of the command .SH SYNOPSIS diff --git a/doc/man/nvme_default_host.2 b/doc/man/nvme_default_host.2 index 75ef97e..79a3d3d 100644 --- a/doc/man/nvme_default_host.2 +++ b/doc/man/nvme_default_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_default_host" 9 "nvme_default_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_default_host" 9 "nvme_default_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_default_host \- Initializes the default host .SH SYNOPSIS diff --git a/doc/man/nvme_describe_key_serial.2 b/doc/man/nvme_describe_key_serial.2 index 3c7d1e7..6908d50 100644 --- a/doc/man/nvme_describe_key_serial.2 +++ b/doc/man/nvme_describe_key_serial.2 @@ -1,4 +1,4 @@ -.TH "nvme_describe_key_serial" 9 "nvme_describe_key_serial" "November 2024" "libnvme API manual" LINUX +.TH "nvme_describe_key_serial" 9 "nvme_describe_key_serial" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_describe_key_serial \- Return key description .SH SYNOPSIS diff --git a/doc/man/nvme_dev_self_test.2 b/doc/man/nvme_dev_self_test.2 index c4812f0..d5cc7e6 100644 --- a/doc/man/nvme_dev_self_test.2 +++ b/doc/man/nvme_dev_self_test.2 @@ -1,4 +1,4 @@ -.TH "nvme_dev_self_test" 9 "nvme_dev_self_test" "November 2024" "libnvme API manual" LINUX +.TH "nvme_dev_self_test" 9 "nvme_dev_self_test" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_dev_self_test \- Start or abort a self test .SH SYNOPSIS diff --git a/doc/man/nvme_directive_dtype.2 b/doc/man/nvme_directive_dtype.2 index 5927e4e..29a3a7c 100644 --- a/doc/man/nvme_directive_dtype.2 +++ b/doc/man/nvme_directive_dtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_directive_dtype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_dtype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_directive_dtype \- Directive Types .SH SYNOPSIS diff --git a/doc/man/nvme_directive_receive_doper.2 b/doc/man/nvme_directive_receive_doper.2 index 21dfd6c..8190e59 100644 --- a/doc/man/nvme_directive_receive_doper.2 +++ b/doc/man/nvme_directive_receive_doper.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_directive_receive_doper" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_receive_doper" "March 2025" "API Manual" LINUX .SH NAME enum nvme_directive_receive_doper \- Directive Receive Directive Operation .SH SYNOPSIS diff --git a/doc/man/nvme_directive_recv.2 b/doc/man/nvme_directive_recv.2 index f2a11a2..17c2ec9 100644 --- a/doc/man/nvme_directive_recv.2 +++ b/doc/man/nvme_directive_recv.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_recv" 9 "nvme_directive_recv" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_recv" 9 "nvme_directive_recv" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_recv \- Receive directive specific data .SH SYNOPSIS diff --git a/doc/man/nvme_directive_recv_identify_parameters.2 b/doc/man/nvme_directive_recv_identify_parameters.2 index 86b3960..209eb9d 100644 --- a/doc/man/nvme_directive_recv_identify_parameters.2 +++ b/doc/man/nvme_directive_recv_identify_parameters.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_recv_identify_parameters" 9 "nvme_directive_recv_identify_parameters" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_recv_identify_parameters" 9 "nvme_directive_recv_identify_parameters" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_recv_identify_parameters \- Directive receive identifier parameters .SH SYNOPSIS diff --git a/doc/man/nvme_directive_recv_stream_allocate.2 b/doc/man/nvme_directive_recv_stream_allocate.2 index 1cfbfdb..4a3182e 100644 --- a/doc/man/nvme_directive_recv_stream_allocate.2 +++ b/doc/man/nvme_directive_recv_stream_allocate.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_recv_stream_allocate" 9 "nvme_directive_recv_stream_allocate" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_recv_stream_allocate" 9 "nvme_directive_recv_stream_allocate" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_recv_stream_allocate \- Directive receive stream allocate .SH SYNOPSIS diff --git a/doc/man/nvme_directive_recv_stream_parameters.2 b/doc/man/nvme_directive_recv_stream_parameters.2 index 5f21f42..6dc14ed 100644 --- a/doc/man/nvme_directive_recv_stream_parameters.2 +++ b/doc/man/nvme_directive_recv_stream_parameters.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_recv_stream_parameters" 9 "nvme_directive_recv_stream_parameters" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_recv_stream_parameters" 9 "nvme_directive_recv_stream_parameters" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_recv_stream_parameters \- Directive receive stream parameters .SH SYNOPSIS diff --git a/doc/man/nvme_directive_recv_stream_status.2 b/doc/man/nvme_directive_recv_stream_status.2 index 4ecbb03..7f1ae3f 100644 --- a/doc/man/nvme_directive_recv_stream_status.2 +++ b/doc/man/nvme_directive_recv_stream_status.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_recv_stream_status" 9 "nvme_directive_recv_stream_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_recv_stream_status" 9 "nvme_directive_recv_stream_status" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_recv_stream_status \- Directive receive stream status .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send.2 b/doc/man/nvme_directive_send.2 index 63fe57d..77221dd 100644 --- a/doc/man/nvme_directive_send.2 +++ b/doc/man/nvme_directive_send.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_send" 9 "nvme_directive_send" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_send" 9 "nvme_directive_send" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_send \- Send directive command .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send_doper.2 b/doc/man/nvme_directive_send_doper.2 index 266022e..f5759f0 100644 --- a/doc/man/nvme_directive_send_doper.2 +++ b/doc/man/nvme_directive_send_doper.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_directive_send_doper" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_send_doper" "March 2025" "API Manual" LINUX .SH NAME enum nvme_directive_send_doper \- Directive Send Directive Operation .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send_id_endir.2 b/doc/man/nvme_directive_send_id_endir.2 index 2a2e1e5..4359da2 100644 --- a/doc/man/nvme_directive_send_id_endir.2 +++ b/doc/man/nvme_directive_send_id_endir.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_send_id_endir" 9 "nvme_directive_send_id_endir" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_send_id_endir" 9 "nvme_directive_send_id_endir" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_send_id_endir \- Directive Send Enable Directive .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send_identify_endir.2 b/doc/man/nvme_directive_send_identify_endir.2 index 3f243b3..d8b09ef 100644 --- a/doc/man/nvme_directive_send_identify_endir.2 +++ b/doc/man/nvme_directive_send_identify_endir.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_directive_send_identify_endir" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_send_identify_endir" "March 2025" "API Manual" LINUX .SH NAME enum nvme_directive_send_identify_endir \- Enable Directive .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send_stream_release_identifier.2 b/doc/man/nvme_directive_send_stream_release_identifier.2 index 3f6f79f..54d362b 100644 --- a/doc/man/nvme_directive_send_stream_release_identifier.2 +++ b/doc/man/nvme_directive_send_stream_release_identifier.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_send_stream_release_identifier" 9 "nvme_directive_send_stream_release_identifier" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_send_stream_release_identifier" 9 "nvme_directive_send_stream_release_identifier" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_send_stream_release_identifier \- Directive Send Stream release .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send_stream_release_resource.2 b/doc/man/nvme_directive_send_stream_release_resource.2 index efdc852..013bebc 100644 --- a/doc/man/nvme_directive_send_stream_release_resource.2 +++ b/doc/man/nvme_directive_send_stream_release_resource.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_send_stream_release_resource" 9 "nvme_directive_send_stream_release_resource" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_send_stream_release_resource" 9 "nvme_directive_send_stream_release_resource" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_send_stream_release_resource \- Directive Send Stream release resources .SH SYNOPSIS diff --git a/doc/man/nvme_directive_types.2 b/doc/man/nvme_directive_types.2 index 34c9cfd..a206886 100644 --- a/doc/man/nvme_directive_types.2 +++ b/doc/man/nvme_directive_types.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_directive_types" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_types" "March 2025" "API Manual" LINUX .SH NAME enum nvme_directive_types \- Directives Supported or Enabled .SH SYNOPSIS diff --git a/doc/man/nvme_disconnect_ctrl.2 b/doc/man/nvme_disconnect_ctrl.2 index 4a2ffc3..d02ed16 100644 --- a/doc/man/nvme_disconnect_ctrl.2 +++ b/doc/man/nvme_disconnect_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_disconnect_ctrl" 9 "nvme_disconnect_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_disconnect_ctrl" 9 "nvme_disconnect_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_disconnect_ctrl \- Disconnect a controller .SH SYNOPSIS diff --git a/doc/man/nvme_dispersed_ns_participating_nss_log.2 b/doc/man/nvme_dispersed_ns_participating_nss_log.2 new file mode 100644 index 0000000..830e38f --- /dev/null +++ b/doc/man/nvme_dispersed_ns_participating_nss_log.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_dispersed_ns_participating_nss_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_dispersed_ns_participating_nss_log \- Dispersed Namespace Participating NVM Subsystems Log +.SH SYNOPSIS +struct nvme_dispersed_ns_participating_nss_log { +.br +.BI " __le64 genctr;" +.br +.BI " __le64 numpsub;" +.br +.BI " __u8 rsvd16[240];" +.br +.BI " __u8 participating_nss[];" +.br +.BI " +}; +.br + +.SH Members +.IP "genctr" 12 +Generation Counter +.IP "numpsub" 12 +Number of Participating NVM Subsystems +.IP "rsvd16" 12 +Reserved +.IP "participating_nss" 12 +Participating NVM Subsystem Entry diff --git a/doc/man/nvme_dsm.2 b/doc/man/nvme_dsm.2 index c9ca322..03003c3 100644 --- a/doc/man/nvme_dsm.2 +++ b/doc/man/nvme_dsm.2 @@ -1,4 +1,4 @@ -.TH "nvme_dsm" 9 "nvme_dsm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_dsm" 9 "nvme_dsm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_dsm \- Send an nvme data set management command .SH SYNOPSIS diff --git a/doc/man/nvme_dsm_attributes.2 b/doc/man/nvme_dsm_attributes.2 index bcfde76..94750fa 100644 --- a/doc/man/nvme_dsm_attributes.2 +++ b/doc/man/nvme_dsm_attributes.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_dsm_attributes" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_dsm_attributes" "March 2025" "API Manual" LINUX .SH NAME enum nvme_dsm_attributes \- Dataset Management attributes .SH SYNOPSIS diff --git a/doc/man/nvme_dsm_range.2 b/doc/man/nvme_dsm_range.2 index 1f4db1a..81a8ad1 100644 --- a/doc/man/nvme_dsm_range.2 +++ b/doc/man/nvme_dsm_range.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_dsm_range" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_dsm_range" "March 2025" "API Manual" LINUX .SH NAME struct nvme_dsm_range \- Dataset Management - Range Definition .SH SYNOPSIS diff --git a/doc/man/nvme_dst_stc.2 b/doc/man/nvme_dst_stc.2 index d863800..c7cd0fd 100644 --- a/doc/man/nvme_dst_stc.2 +++ b/doc/man/nvme_dst_stc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_dst_stc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_dst_stc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_dst_stc \- Action taken by the Device Self-test command .SH SYNOPSIS @@ -12,6 +12,10 @@ enum nvme_dst_stc { , .br .br +.BI " NVME_DST_STC_HOST_INIT" +, +.br +.br .BI " NVME_DST_STC_VS" , .br @@ -24,6 +28,8 @@ enum nvme_dst_stc { Start a short device self-test operation .IP "NVME_DST_STC_LONG" 12 Start an extended device self-test operation +.IP "NVME_DST_STC_HOST_INIT" 12 +Start a Host-Initiated Refresh operation .IP "NVME_DST_STC_VS" 12 Start a vendor specific device self-test operation .IP "NVME_DST_STC_ABORT" 12 diff --git a/doc/man/nvme_dump_config.2 b/doc/man/nvme_dump_config.2 index f645700..038c362 100644 --- a/doc/man/nvme_dump_config.2 +++ b/doc/man/nvme_dump_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_dump_config" 9 "nvme_dump_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_dump_config" 9 "nvme_dump_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_dump_config \- Print the JSON configuration .SH SYNOPSIS diff --git a/doc/man/nvme_dump_tree.2 b/doc/man/nvme_dump_tree.2 index 6e3ce6c..ae9a417 100644 --- a/doc/man/nvme_dump_tree.2 +++ b/doc/man/nvme_dump_tree.2 @@ -1,4 +1,4 @@ -.TH "nvme_dump_tree" 9 "nvme_dump_tree" "November 2024" "libnvme API manual" LINUX +.TH "nvme_dump_tree" 9 "nvme_dump_tree" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_dump_tree \- Dump internal object tree .SH SYNOPSIS diff --git a/doc/man/nvme_eg_critical_warning_flags.2 b/doc/man/nvme_eg_critical_warning_flags.2 index dd77348..549385c 100644 --- a/doc/man/nvme_eg_critical_warning_flags.2 +++ b/doc/man/nvme_eg_critical_warning_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_eg_critical_warning_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_eg_critical_warning_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_eg_critical_warning_flags \- Endurance Group Information Log - Critical Warning .SH SYNOPSIS diff --git a/doc/man/nvme_eg_event_aggregate_log.2 b/doc/man/nvme_eg_event_aggregate_log.2 index f97dadb..9b0ba9f 100644 --- a/doc/man/nvme_eg_event_aggregate_log.2 +++ b/doc/man/nvme_eg_event_aggregate_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_eg_event_aggregate_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_eg_event_aggregate_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_eg_event_aggregate_log \- Endurance Group Event Aggregate .SH SYNOPSIS diff --git a/doc/man/nvme_end_grp_chan_desc.2 b/doc/man/nvme_end_grp_chan_desc.2 index 48912ac..f4a4d08 100644 --- a/doc/man/nvme_end_grp_chan_desc.2 +++ b/doc/man/nvme_end_grp_chan_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_end_grp_chan_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_end_grp_chan_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_end_grp_chan_desc \- Endurance Group Channel Configuration Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_end_grp_config_desc.2 b/doc/man/nvme_end_grp_config_desc.2 index 62bb631..cdfae39 100644 --- a/doc/man/nvme_end_grp_config_desc.2 +++ b/doc/man/nvme_end_grp_config_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_end_grp_config_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_end_grp_config_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_end_grp_config_desc \- Endurance Group Configuration Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_endurance_group_log.2 b/doc/man/nvme_endurance_group_log.2 index 8c362cf..75ff329 100644 --- a/doc/man/nvme_endurance_group_log.2 +++ b/doc/man/nvme_endurance_group_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_endurance_group_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_endurance_group_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_endurance_group_log \- Endurance Group Information Log .SH SYNOPSIS diff --git a/doc/man/nvme_eom_lane_desc.2 b/doc/man/nvme_eom_lane_desc.2 index 0662a41..6cebde5 100644 --- a/doc/man/nvme_eom_lane_desc.2 +++ b/doc/man/nvme_eom_lane_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_eom_lane_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_eom_lane_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_eom_lane_desc \- EOM Lane Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_eom_optional_data.2 b/doc/man/nvme_eom_optional_data.2 index d0a6b99..1926f06 100644 --- a/doc/man/nvme_eom_optional_data.2 +++ b/doc/man/nvme_eom_optional_data.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_eom_optional_data" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_eom_optional_data" "March 2025" "API Manual" LINUX .SH NAME enum nvme_eom_optional_data \- EOM Optional Data Present Fields (Deprecated) .SH SYNOPSIS diff --git a/doc/man/nvme_eom_optional_data_present.2 b/doc/man/nvme_eom_optional_data_present.2 index cfd5648..490a773 100644 --- a/doc/man/nvme_eom_optional_data_present.2 +++ b/doc/man/nvme_eom_optional_data_present.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_eom_optional_data_present" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_eom_optional_data_present" "March 2025" "API Manual" LINUX .SH NAME enum nvme_eom_optional_data_present \- EOM Optional Data Present Fields .SH SYNOPSIS diff --git a/doc/man/nvme_err_status_field.2 b/doc/man/nvme_err_status_field.2 new file mode 100644 index 0000000..797ef18 --- /dev/null +++ b/doc/man/nvme_err_status_field.2 @@ -0,0 +1,30 @@ +.TH "libnvme" 9 "enum nvme_err_status_field" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_err_status_field \- This field indicates the error information log entry status field +.SH SYNOPSIS +enum nvme_err_status_field { +.br +.BI " NVME_ERR_SF_PHASE_TAG_SHIFT" +, +.br +.br +.BI " NVME_ERR_SF_STATUS_FIELD_SHIFT" +, +.br +.br +.BI " NVME_ERR_SF_PHASE_TAG_MASK" +, +.br +.br +.BI " NVME_ERR_SF_STATUS_FIELD_MASK" + +}; +.SH Constants +.IP "NVME_ERR_SF_PHASE_TAG_SHIFT" 12 +Shift amount to get the phase tag +.IP "NVME_ERR_SF_STATUS_FIELD_SHIFT" 12 +Shift amount to get the status field +.IP "NVME_ERR_SF_PHASE_TAG_MASK" 12 +Mask to get the phase tag +.IP "NVME_ERR_SF_STATUS_FIELD_MASK" 12 +Mask to get the status field diff --git a/doc/man/nvme_errno_to_string.2 b/doc/man/nvme_errno_to_string.2 index c41f4ae..81121f1 100644 --- a/doc/man/nvme_errno_to_string.2 +++ b/doc/man/nvme_errno_to_string.2 @@ -1,4 +1,4 @@ -.TH "nvme_errno_to_string" 9 "nvme_errno_to_string" "November 2024" "libnvme API manual" LINUX +.TH "nvme_errno_to_string" 9 "nvme_errno_to_string" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_errno_to_string \- Returns string describing nvme connect failures .SH SYNOPSIS diff --git a/doc/man/nvme_error_log_page.2 b/doc/man/nvme_error_log_page.2 index daaac2c..a7bd8e2 100644 --- a/doc/man/nvme_error_log_page.2 +++ b/doc/man/nvme_error_log_page.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_error_log_page" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_error_log_page" "March 2025" "API Manual" LINUX .SH NAME struct nvme_error_log_page \- Error Information Log Entry (Log Identifier 01h) .SH SYNOPSIS diff --git a/doc/man/nvme_export_tls_key.2 b/doc/man/nvme_export_tls_key.2 index 0f0738b..3e1c2f3 100644 --- a/doc/man/nvme_export_tls_key.2 +++ b/doc/man/nvme_export_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_export_tls_key" 9 "nvme_export_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_export_tls_key" 9 "nvme_export_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_export_tls_key \- Export a TLS key .SH SYNOPSIS diff --git a/doc/man/nvme_export_tls_key_versioned.2 b/doc/man/nvme_export_tls_key_versioned.2 index 3648916..d873f2e 100644 --- a/doc/man/nvme_export_tls_key_versioned.2 +++ b/doc/man/nvme_export_tls_key_versioned.2 @@ -1,4 +1,4 @@ -.TH "nvme_export_tls_key_versioned" 9 "nvme_export_tls_key_versioned" "November 2024" "libnvme API manual" LINUX +.TH "nvme_export_tls_key_versioned" 9 "nvme_export_tls_key_versioned" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_export_tls_key_versioned \- Export a TLS pre-shared key .SH SYNOPSIS diff --git a/doc/man/nvme_fabrics_config.2 b/doc/man/nvme_fabrics_config.2 index f5f2ead..069e9d9 100644 --- a/doc/man/nvme_fabrics_config.2 +++ b/doc/man/nvme_fabrics_config.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fabrics_config" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fabrics_config" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fabrics_config \- Defines all linux nvme fabrics initiator options .SH SYNOPSIS diff --git a/doc/man/nvme_fabrics_uri.2 b/doc/man/nvme_fabrics_uri.2 index 1ebeeef..7da1307 100644 --- a/doc/man/nvme_fabrics_uri.2 +++ b/doc/man/nvme_fabrics_uri.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fabrics_uri" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fabrics_uri" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fabrics_uri \- Parsed URI structure .SH SYNOPSIS diff --git a/doc/man/nvme_fctype.2 b/doc/man/nvme_fctype.2 index 30ada39..265cfcf 100644 --- a/doc/man/nvme_fctype.2 +++ b/doc/man/nvme_fctype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fctype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fctype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fctype \- Fabrics Command Types .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_config_desc.2 b/doc/man/nvme_fdp_config_desc.2 index 851c950..e0cfad8 100644 --- a/doc/man/nvme_fdp_config_desc.2 +++ b/doc/man/nvme_fdp_config_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_config_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_config_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_config_desc \- FDP Configuration Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_config_fdpa.2 b/doc/man/nvme_fdp_config_fdpa.2 index 6137829..7432a59 100644 --- a/doc/man/nvme_fdp_config_fdpa.2 +++ b/doc/man/nvme_fdp_config_fdpa.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_config_fdpa" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_config_fdpa" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_config_fdpa \- FDP Attributes .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_config_log.2 b/doc/man/nvme_fdp_config_log.2 index 4f01b4b..100f502 100644 --- a/doc/man/nvme_fdp_config_log.2 +++ b/doc/man/nvme_fdp_config_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_config_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_config_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_config_log \- FDP Configurations Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_event.2 b/doc/man/nvme_fdp_event.2 index e7913a3..5066ba1 100644 --- a/doc/man/nvme_fdp_event.2 +++ b/doc/man/nvme_fdp_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_event \- FDP Event .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_event_flags.2 b/doc/man/nvme_fdp_event_flags.2 index 1698186..0df5012 100644 --- a/doc/man/nvme_fdp_event_flags.2 +++ b/doc/man/nvme_fdp_event_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_event_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_event_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_event_flags \- FDP Event Flags .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_event_realloc.2 b/doc/man/nvme_fdp_event_realloc.2 index cb99178..8171cd3 100644 --- a/doc/man/nvme_fdp_event_realloc.2 +++ b/doc/man/nvme_fdp_event_realloc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_event_realloc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_event_realloc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_event_realloc \- Media Reallocated Event Type Specific Information .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_event_realloc_flags.2 b/doc/man/nvme_fdp_event_realloc_flags.2 index 099b15e..69b4fd1 100644 --- a/doc/man/nvme_fdp_event_realloc_flags.2 +++ b/doc/man/nvme_fdp_event_realloc_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_event_realloc_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_event_realloc_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_event_realloc_flags \- Media Reallocated Event Type Specific Flags .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_event_type.2 b/doc/man/nvme_fdp_event_type.2 index 4b21df0..b5d979c 100644 --- a/doc/man/nvme_fdp_event_type.2 +++ b/doc/man/nvme_fdp_event_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_event_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_event_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_event_type \- FDP Event Types .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_events_log.2 b/doc/man/nvme_fdp_events_log.2 index 40ba190..7db2a3d 100644 --- a/doc/man/nvme_fdp_events_log.2 +++ b/doc/man/nvme_fdp_events_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_events_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_events_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_events_log \- FDP Events Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_reclaim_unit_handle_status.2 b/doc/man/nvme_fdp_reclaim_unit_handle_status.2 index ab6cb3e..23ed32a 100644 --- a/doc/man/nvme_fdp_reclaim_unit_handle_status.2 +++ b/doc/man/nvme_fdp_reclaim_unit_handle_status.2 @@ -1,4 +1,4 @@ -.TH "nvme_fdp_reclaim_unit_handle_status" 9 "nvme_fdp_reclaim_unit_handle_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_fdp_reclaim_unit_handle_status" 9 "nvme_fdp_reclaim_unit_handle_status" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_fdp_reclaim_unit_handle_status \- Get reclaim unit handle status .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_reclaim_unit_handle_update.2 b/doc/man/nvme_fdp_reclaim_unit_handle_update.2 index b963c7d..67ee1fc 100644 --- a/doc/man/nvme_fdp_reclaim_unit_handle_update.2 +++ b/doc/man/nvme_fdp_reclaim_unit_handle_update.2 @@ -1,4 +1,4 @@ -.TH "nvme_fdp_reclaim_unit_handle_update" 9 "nvme_fdp_reclaim_unit_handle_update" "November 2024" "libnvme API manual" LINUX +.TH "nvme_fdp_reclaim_unit_handle_update" 9 "nvme_fdp_reclaim_unit_handle_update" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_fdp_reclaim_unit_handle_update \- Update a list of reclaim unit handles .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruh_desc.2 b/doc/man/nvme_fdp_ruh_desc.2 index 51769e8..a89efe2 100644 --- a/doc/man/nvme_fdp_ruh_desc.2 +++ b/doc/man/nvme_fdp_ruh_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_ruh_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_ruh_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_ruh_desc \- Reclaim Unit Handle Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruh_status.2 b/doc/man/nvme_fdp_ruh_status.2 index 9d12b55..9743c24 100644 --- a/doc/man/nvme_fdp_ruh_status.2 +++ b/doc/man/nvme_fdp_ruh_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_ruh_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_ruh_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_ruh_status \- Reclaim Unit Handle Status .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruh_status_desc.2 b/doc/man/nvme_fdp_ruh_status_desc.2 index 20dc4fb..ec310b5 100644 --- a/doc/man/nvme_fdp_ruh_status_desc.2 +++ b/doc/man/nvme_fdp_ruh_status_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_ruh_status_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_ruh_status_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_ruh_status_desc \- Reclaim Unit Handle Status Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruh_type.2 b/doc/man/nvme_fdp_ruh_type.2 index b8f512e..502fbf1 100644 --- a/doc/man/nvme_fdp_ruh_type.2 +++ b/doc/man/nvme_fdp_ruh_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_ruh_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_ruh_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_ruh_type \- Reclaim Unit Handle Type .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruha.2 b/doc/man/nvme_fdp_ruha.2 index 7ed6935..d75ed32 100644 --- a/doc/man/nvme_fdp_ruha.2 +++ b/doc/man/nvme_fdp_ruha.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_ruha" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_ruha" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_ruha \- Reclaim Unit Handle Attributes .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruhu_desc.2 b/doc/man/nvme_fdp_ruhu_desc.2 index 1e9eaea..b975d41 100644 --- a/doc/man/nvme_fdp_ruhu_desc.2 +++ b/doc/man/nvme_fdp_ruhu_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_ruhu_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_ruhu_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_ruhu_desc \- Reclaim Unit Handle Usage Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruhu_log.2 b/doc/man/nvme_fdp_ruhu_log.2 index 418d938..5538215 100644 --- a/doc/man/nvme_fdp_ruhu_log.2 +++ b/doc/man/nvme_fdp_ruhu_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_ruhu_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_ruhu_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_ruhu_log \- Reclaim Unit Handle Usage Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_stats_log.2 b/doc/man/nvme_fdp_stats_log.2 index 6854c99..5b8f224 100644 --- a/doc/man/nvme_fdp_stats_log.2 +++ b/doc/man/nvme_fdp_stats_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_stats_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_stats_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_stats_log \- FDP Statistics Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_supported_event_attributes.2 b/doc/man/nvme_fdp_supported_event_attributes.2 index d8770a3..3dbb29d 100644 --- a/doc/man/nvme_fdp_supported_event_attributes.2 +++ b/doc/man/nvme_fdp_supported_event_attributes.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_supported_event_attributes" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_supported_event_attributes" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_supported_event_attributes \- Supported FDP Event Attributes .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_supported_event_desc.2 b/doc/man/nvme_fdp_supported_event_desc.2 index 8f14ccc..dffe4da 100644 --- a/doc/man/nvme_fdp_supported_event_desc.2 +++ b/doc/man/nvme_fdp_supported_event_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_supported_event_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_supported_event_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_supported_event_desc \- Supported FDP Event Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_feat.2 b/doc/man/nvme_feat.2 index e85e673..1c6b25b 100644 --- a/doc/man/nvme_feat.2 +++ b/doc/man/nvme_feat.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat" "March 2025" "API Manual" LINUX .SH NAME enum nvme_feat \- Features Access Shifts/Masks values .SH SYNOPSIS @@ -228,6 +228,86 @@ enum nvme_feat { , .br .br +.BI " NVME_FEAT_AE_NNSSHDN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_NNSSHDN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_TTHRY_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_TTHRY_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_RASSN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_RASSN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_RGRP0_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_RGRP0_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_ANSAN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_ANSAN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_ZDCN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_ZDCN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_PMDRLPCN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_PMDRLPCN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_ADLPCN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_ADLPCN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_HDLPCN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_HDLPCN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_DLPCN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_DLPCN_MASK" +, +.br +.br .BI " NVME_FEAT_APST_APSTE_SHIFT" , .br @@ -332,6 +412,22 @@ enum nvme_feat { , .br .br +.BI " NVME_FEAT_FDPE_PHNDL_SHIFT" +, +.br +.br +.BI " NVME_FEAT_FDPE_PHNDL_MASK" +, +.br +.br +.BI " NVME_FEAT_FDPE_NOET_SHIFT" +, +.br +.br +.BI " NVME_FEAT_FDPE_NOET_MASK" +, +.br +.br .BI " NVME_FEAT_SPM_PBSLC_SHIFT" , .br @@ -396,6 +492,22 @@ enum nvme_feat { , .br .br +.BI " NVME_FEAT_SPINUP_CONTROL_SHIFT" +, +.br +.br +.BI " NVME_FEAT_SPINUP_CONTROL_MASK" +, +.br +.br +.BI " NVME_FEAT_PLS_MODE_SHIFT" +, +.br +.br +.BI " NVME_FEAT_PLS_MODE_MASK" +, +.br +.br .BI " NVME_FEAT_FDP_ENABLED_SHIFT" , .br @@ -476,6 +588,26 @@ enum nvme_feat { .IP "NVME_FEAT_AE_LBAS_MASK" 12 .IP "NVME_FEAT_AE_EGA_SHIFT" 12 .IP "NVME_FEAT_AE_EGA_MASK" 12 +.IP "NVME_FEAT_AE_NNSSHDN_SHIFT" 12 +.IP "NVME_FEAT_AE_NNSSHDN_MASK" 12 +.IP "NVME_FEAT_AE_TTHRY_SHIFT" 12 +.IP "NVME_FEAT_AE_TTHRY_MASK" 12 +.IP "NVME_FEAT_AE_RASSN_SHIFT" 12 +.IP "NVME_FEAT_AE_RASSN_MASK" 12 +.IP "NVME_FEAT_AE_RGRP0_SHIFT" 12 +.IP "NVME_FEAT_AE_RGRP0_MASK" 12 +.IP "NVME_FEAT_AE_ANSAN_SHIFT" 12 +.IP "NVME_FEAT_AE_ANSAN_MASK" 12 +.IP "NVME_FEAT_AE_ZDCN_SHIFT" 12 +.IP "NVME_FEAT_AE_ZDCN_MASK" 12 +.IP "NVME_FEAT_AE_PMDRLPCN_SHIFT" 12 +.IP "NVME_FEAT_AE_PMDRLPCN_MASK" 12 +.IP "NVME_FEAT_AE_ADLPCN_SHIFT" 12 +.IP "NVME_FEAT_AE_ADLPCN_MASK" 12 +.IP "NVME_FEAT_AE_HDLPCN_SHIFT" 12 +.IP "NVME_FEAT_AE_HDLPCN_MASK" 12 +.IP "NVME_FEAT_AE_DLPCN_SHIFT" 12 +.IP "NVME_FEAT_AE_DLPCN_MASK" 12 .IP "NVME_FEAT_APST_APSTE_SHIFT" 12 .IP "NVME_FEAT_APST_APSTE_MASK" 12 .IP "NVME_FEAT_HMEM_EHM_SHIFT" 12 @@ -502,6 +634,10 @@ enum nvme_feat { .IP "NVME_FEAT_EG_ENDGID_MASK" 12 .IP "NVME_FEAT_EG_EGCW_SHIFT" 12 .IP "NVME_FEAT_EG_EGCW_MASK" 12 +.IP "NVME_FEAT_FDPE_PHNDL_SHIFT" 12 +.IP "NVME_FEAT_FDPE_PHNDL_MASK" 12 +.IP "NVME_FEAT_FDPE_NOET_SHIFT" 12 +.IP "NVME_FEAT_FDPE_NOET_MASK" 12 .IP "NVME_FEAT_SPM_PBSLC_SHIFT" 12 .IP "NVME_FEAT_SPM_PBSLC_MASK" 12 .IP "NVME_FEAT_HOSTID_EXHID_SHIFT" 12 @@ -518,6 +654,10 @@ enum nvme_feat { .IP "NVME_FEAT_WP_WPS_MASK" 12 .IP "NVME_FEAT_IOCSP_IOCSCI_SHIFT" 12 .IP "NVME_FEAT_IOCSP_IOCSCI_MASK" 12 +.IP "NVME_FEAT_SPINUP_CONTROL_SHIFT" 12 +.IP "NVME_FEAT_SPINUP_CONTROL_MASK" 12 +.IP "NVME_FEAT_PLS_MODE_SHIFT" 12 +.IP "NVME_FEAT_PLS_MODE_MASK" 12 .IP "NVME_FEAT_FDP_ENABLED_SHIFT" 12 .IP "NVME_FEAT_FDP_ENABLED_MASK" 12 .IP "NVME_FEAT_FDP_INDEX_SHIFT" 12 diff --git a/doc/man/nvme_feat_auto_pst.2 b/doc/man/nvme_feat_auto_pst.2 index 7e24c37..4ca98dc 100644 --- a/doc/man/nvme_feat_auto_pst.2 +++ b/doc/man/nvme_feat_auto_pst.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_feat_auto_pst" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_feat_auto_pst" "March 2025" "API Manual" LINUX .SH NAME struct nvme_feat_auto_pst \- Autonomous Power State Transition .SH SYNOPSIS diff --git a/doc/man/nvme_feat_fdp_events_cdw11.2 b/doc/man/nvme_feat_fdp_events_cdw11.2 index 5281441..97ac478 100644 --- a/doc/man/nvme_feat_fdp_events_cdw11.2 +++ b/doc/man/nvme_feat_fdp_events_cdw11.2 @@ -1,6 +1,6 @@ -.TH "libnvme" 9 "struct nvme_feat_fdp_events_cdw11" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_feat_fdp_events_cdw11" "March 2025" "API Manual" LINUX .SH NAME -struct nvme_feat_fdp_events_cdw11 \- FDP Events Feature Command Dword 11 +struct nvme_feat_fdp_events_cdw11 \- FDP Events Feature Command Dword 11 Deprecated: doesn't support this struct. Use NVME_FEAT_FDPE_*** definitions instead. .SH SYNOPSIS struct nvme_feat_fdp_events_cdw11 { .br diff --git a/doc/man/nvme_feat_host_behavior.2 b/doc/man/nvme_feat_host_behavior.2 index 785a94a..9b6b535 100644 --- a/doc/man/nvme_feat_host_behavior.2 +++ b/doc/man/nvme_feat_host_behavior.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_feat_host_behavior" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_feat_host_behavior" "March 2025" "API Manual" LINUX .SH NAME struct nvme_feat_host_behavior \- Host Behavior Support - Data Structure .SH SYNOPSIS @@ -10,9 +10,9 @@ struct nvme_feat_host_behavior { .br .BI " __u8 lbafee;" .br -.BI " __u8 rsvd3;" +.BI " __u8 hdisns;" .br -.BI " __u16 cdfe;" +.BI " __le16 cdfe;" .br .BI " __u8 rsvd6[506];" .br @@ -27,8 +27,8 @@ Advanced Command Retry Enable Extended Telemetry Data Area 4 Supported .IP "lbafee" 12 LBA Format Extension Enable -.IP "rsvd3" 12 -Reserved +.IP "hdisns" 12 +Host Dispersed Namespace Support .IP "cdfe" 12 Copy Descriptor Formats Enable .IP "rsvd6" 12 diff --git a/doc/man/nvme_feat_nswpcfg_state.2 b/doc/man/nvme_feat_nswpcfg_state.2 index cf755dc..3ad81c7 100644 --- a/doc/man/nvme_feat_nswpcfg_state.2 +++ b/doc/man/nvme_feat_nswpcfg_state.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat_nswpcfg_state" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_nswpcfg_state" "March 2025" "API Manual" LINUX .SH NAME enum nvme_feat_nswpcfg_state \- Write Protection - Write Protection State .SH SYNOPSIS diff --git a/doc/man/nvme_feat_plm_window_select.2 b/doc/man/nvme_feat_plm_window_select.2 index 9610773..f137033 100644 --- a/doc/man/nvme_feat_plm_window_select.2 +++ b/doc/man/nvme_feat_plm_window_select.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat_plm_window_select" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_plm_window_select" "March 2025" "API Manual" LINUX .SH NAME enum nvme_feat_plm_window_select \- Predictable Latency Per NVM Set Log .SH SYNOPSIS diff --git a/doc/man/nvme_feat_resv_notify_flags.2 b/doc/man/nvme_feat_resv_notify_flags.2 index fa820a7..6ee4f9c 100644 --- a/doc/man/nvme_feat_resv_notify_flags.2 +++ b/doc/man/nvme_feat_resv_notify_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat_resv_notify_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_resv_notify_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_feat_resv_notify_flags \- Reservation Notification Configuration .SH SYNOPSIS diff --git a/doc/man/nvme_feat_tmpthresh_thsel.2 b/doc/man/nvme_feat_tmpthresh_thsel.2 index 8ac61cd..be6c3e8 100644 --- a/doc/man/nvme_feat_tmpthresh_thsel.2 +++ b/doc/man/nvme_feat_tmpthresh_thsel.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat_tmpthresh_thsel" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_tmpthresh_thsel" "March 2025" "API Manual" LINUX .SH NAME enum nvme_feat_tmpthresh_thsel \- Temperature Threshold - Threshold Type Select .SH SYNOPSIS diff --git a/doc/man/nvme_features_async_event_config_flags.2 b/doc/man/nvme_features_async_event_config_flags.2 index e6aa938..01eb0b8 100644 --- a/doc/man/nvme_features_async_event_config_flags.2 +++ b/doc/man/nvme_features_async_event_config_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_features_async_event_config_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_features_async_event_config_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_features_async_event_config_flags \- Asynchronous Event Configuration configuration flags .SH SYNOPSIS diff --git a/doc/man/nvme_features_id.2 b/doc/man/nvme_features_id.2 index f2cee72..10aabd7 100644 --- a/doc/man/nvme_features_id.2 +++ b/doc/man/nvme_features_id.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_features_id" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_features_id" "March 2025" "API Manual" LINUX .SH NAME enum nvme_features_id \- Features - Feature Identifiers .SH SYNOPSIS @@ -108,6 +108,14 @@ enum nvme_features_id { , .br .br +.BI " NVME_FEAT_FID_POWER_LOSS_SIGNAL" +, +.br +.br +.BI " NVME_FEAT_FID_PERF_CHARACTERISTICS" +, +.br +.br .BI " NVME_FEAT_FID_FDP" , .br @@ -116,6 +124,26 @@ enum nvme_features_id { , .br .br +.BI " NVME_FEAT_FID_NS_ADMIN_LABEL" +, +.br +.br +.BI " NVME_FEAT_FID_KEY_VALUE" +, +.br +.br +.BI " NVME_FEAT_FID_CTRL_DATA_QUEUE" +, +.br +.br +.BI " NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR" +, +.br +.br +.BI " NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR" +, +.br +.br .BI " NVME_FEAT_FID_ENH_CTRL_METADATA" , .br @@ -145,6 +173,10 @@ enum nvme_features_id { .br .br .BI " NVME_FEAT_FID_WRITE_PROTECT" +, +.br +.br +.BI " NVME_FEAT_FID_BP_WRITE_PROTECT" }; .SH Constants @@ -193,17 +225,31 @@ LBA Status Information Report Interval .IP "NVME_FEAT_FID_HOST_BEHAVIOR" 12 Host Behavior Support .IP "NVME_FEAT_FID_SANITIZE" 12 -Endurance Group Event Configuration +Sanitize Config .IP "NVME_FEAT_FID_ENDURANCE_EVT_CFG" 12 Endurance Group Event Configuration .IP "NVME_FEAT_FID_IOCS_PROFILE" 12 I/O Command Set Profile .IP "NVME_FEAT_FID_SPINUP_CONTROL" 12 Spinup Control +.IP "NVME_FEAT_FID_POWER_LOSS_SIGNAL" 12 +Power Loss Signaling Config +.IP "NVME_FEAT_FID_PERF_CHARACTERISTICS" 12 +Performance Characteristics .IP "NVME_FEAT_FID_FDP" 12 Flexible Data Placement .IP "NVME_FEAT_FID_FDP_EVENTS" 12 FDP Events +.IP "NVME_FEAT_FID_NS_ADMIN_LABEL" 12 +Namespace Admin Label +.IP "NVME_FEAT_FID_KEY_VALUE" 12 +Key Value Configuration +.IP "NVME_FEAT_FID_CTRL_DATA_QUEUE" 12 +Controller Data Queue +.IP "NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR" 12 +Embedded Management Controller Address +.IP "NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR" 12 +Host Management Agent Address .IP "NVME_FEAT_FID_ENH_CTRL_METADATA" 12 Enhanced Controller Metadata .IP "NVME_FEAT_FID_CTRL_METADATA" 12 @@ -220,3 +266,5 @@ Reservation Notification Mask Reservation Persistence .IP "NVME_FEAT_FID_WRITE_PROTECT" 12 Namespace Write Protection Config +.IP "NVME_FEAT_FID_BP_WRITE_PROTECT" 12 +Boot Partition Write Protection Config diff --git a/doc/man/nvme_fid_supported_effects.2 b/doc/man/nvme_fid_supported_effects.2 index 43aa5f4..a7335c9 100644 --- a/doc/man/nvme_fid_supported_effects.2 +++ b/doc/man/nvme_fid_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fid_supported_effects" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fid_supported_effects" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fid_supported_effects \- FID Supported and Effects Data Structure definitions .SH SYNOPSIS @@ -57,6 +57,10 @@ enum nvme_fid_supported_effects { .br .br .BI " NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS" +, +.br +.br +.BI " NVME_FID_SUPPORTED_EFFECTS_CDQSCP" }; .SH Constants @@ -88,3 +92,5 @@ Endurance Group Scope Domain Scope .IP "NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS" 12 NVM Subsystem Scope +.IP "NVME_FID_SUPPORTED_EFFECTS_CDQSCP" 12 +Controller Data Queue diff --git a/doc/man/nvme_fid_supported_effects_log.2 b/doc/man/nvme_fid_supported_effects_log.2 index 7ede4bc..23686ea 100644 --- a/doc/man/nvme_fid_supported_effects_log.2 +++ b/doc/man/nvme_fid_supported_effects_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fid_supported_effects_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fid_supported_effects_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fid_supported_effects_log \- Feature Identifiers Supported and Effects .SH SYNOPSIS diff --git a/doc/man/nvme_firmware_slot.2 b/doc/man/nvme_firmware_slot.2 index 8b627fd..5a6b964 100644 --- a/doc/man/nvme_firmware_slot.2 +++ b/doc/man/nvme_firmware_slot.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_firmware_slot" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_firmware_slot" "March 2025" "API Manual" LINUX .SH NAME struct nvme_firmware_slot \- Firmware Slot Information Log .SH SYNOPSIS diff --git a/doc/man/nvme_first_host.2 b/doc/man/nvme_first_host.2 index 46b6c2f..f177e1b 100644 --- a/doc/man/nvme_first_host.2 +++ b/doc/man/nvme_first_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_first_host" 9 "nvme_first_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_first_host" 9 "nvme_first_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_first_host \- Start host iterator .SH SYNOPSIS diff --git a/doc/man/nvme_first_subsystem.2 b/doc/man/nvme_first_subsystem.2 index 10d885f..55992f1 100644 --- a/doc/man/nvme_first_subsystem.2 +++ b/doc/man/nvme_first_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_first_subsystem" 9 "nvme_first_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_first_subsystem" 9 "nvme_first_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_first_subsystem \- Start subsystem iterator .SH SYNOPSIS diff --git a/doc/man/nvme_flbas.2 b/doc/man/nvme_flbas.2 index 54124b0..f6040c6 100644 --- a/doc/man/nvme_flbas.2 +++ b/doc/man/nvme_flbas.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_flbas" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_flbas" "March 2025" "API Manual" LINUX .SH NAME enum nvme_flbas \- This field indicates the formatted LBA size .SH SYNOPSIS diff --git a/doc/man/nvme_flush.2 b/doc/man/nvme_flush.2 index 6c5972e..649d89f 100644 --- a/doc/man/nvme_flush.2 +++ b/doc/man/nvme_flush.2 @@ -1,4 +1,4 @@ -.TH "nvme_flush" 9 "nvme_flush" "November 2024" "libnvme API manual" LINUX +.TH "nvme_flush" 9 "nvme_flush" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_flush \- Send an nvme flush command .SH SYNOPSIS diff --git a/doc/man/nvme_for_each_host.2 b/doc/man/nvme_for_each_host.2 index 87a69a0..222850c 100644 --- a/doc/man/nvme_for_each_host.2 +++ b/doc/man/nvme_for_each_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_for_each_host" 9 "nvme_for_each_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_for_each_host" 9 "nvme_for_each_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_for_each_host \- Traverse host list .SH SYNOPSIS diff --git a/doc/man/nvme_for_each_host_safe.2 b/doc/man/nvme_for_each_host_safe.2 index a7526f3..20a6c76 100644 --- a/doc/man/nvme_for_each_host_safe.2 +++ b/doc/man/nvme_for_each_host_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_for_each_host_safe" 9 "nvme_for_each_host_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_for_each_host_safe" 9 "nvme_for_each_host_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_for_each_host_safe \- Traverse host list .SH SYNOPSIS diff --git a/doc/man/nvme_for_each_subsystem.2 b/doc/man/nvme_for_each_subsystem.2 index 9d65487..65f09fa 100644 --- a/doc/man/nvme_for_each_subsystem.2 +++ b/doc/man/nvme_for_each_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_for_each_subsystem" 9 "nvme_for_each_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_for_each_subsystem" 9 "nvme_for_each_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_for_each_subsystem \- Traverse subsystems .SH SYNOPSIS diff --git a/doc/man/nvme_for_each_subsystem_safe.2 b/doc/man/nvme_for_each_subsystem_safe.2 index a68fa9c..1039c96 100644 --- a/doc/man/nvme_for_each_subsystem_safe.2 +++ b/doc/man/nvme_for_each_subsystem_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_for_each_subsystem_safe" 9 "nvme_for_each_subsystem_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_for_each_subsystem_safe" 9 "nvme_for_each_subsystem_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_for_each_subsystem_safe \- Traverse subsystems .SH SYNOPSIS diff --git a/doc/man/nvme_format_nvm.2 b/doc/man/nvme_format_nvm.2 index f8b3071..d88c4b9 100644 --- a/doc/man/nvme_format_nvm.2 +++ b/doc/man/nvme_format_nvm.2 @@ -1,4 +1,4 @@ -.TH "nvme_format_nvm" 9 "nvme_format_nvm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_format_nvm" 9 "nvme_format_nvm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_format_nvm \- Format nvme namespace(s) .SH SYNOPSIS diff --git a/doc/man/nvme_format_nvm_compln_event.2 b/doc/man/nvme_format_nvm_compln_event.2 index c8cddf0..054589a 100644 --- a/doc/man/nvme_format_nvm_compln_event.2 +++ b/doc/man/nvme_format_nvm_compln_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_format_nvm_compln_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_format_nvm_compln_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_format_nvm_compln_event \- Format NVM Completion Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_format_nvm_start_event.2 b/doc/man/nvme_format_nvm_start_event.2 index 592d33c..a1ed266 100644 --- a/doc/man/nvme_format_nvm_start_event.2 +++ b/doc/man/nvme_format_nvm_start_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_format_nvm_start_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_format_nvm_start_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_format_nvm_start_event \- Format NVM Start Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_free_ctrl.2 b/doc/man/nvme_free_ctrl.2 index ae30499..2684457 100644 --- a/doc/man/nvme_free_ctrl.2 +++ b/doc/man/nvme_free_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_ctrl" 9 "nvme_free_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_ctrl" 9 "nvme_free_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_ctrl \- Free controller .SH SYNOPSIS diff --git a/doc/man/nvme_free_host.2 b/doc/man/nvme_free_host.2 index 85a678e..a15d019 100644 --- a/doc/man/nvme_free_host.2 +++ b/doc/man/nvme_free_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_host" 9 "nvme_free_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_host" 9 "nvme_free_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_host \- Free nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_free_ns.2 b/doc/man/nvme_free_ns.2 index 07529f2..89abbe6 100644 --- a/doc/man/nvme_free_ns.2 +++ b/doc/man/nvme_free_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_ns" 9 "nvme_free_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_ns" 9 "nvme_free_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_ns \- Free a namespace object .SH SYNOPSIS diff --git a/doc/man/nvme_free_subsystem.2 b/doc/man/nvme_free_subsystem.2 index cde3e15..0154b50 100644 --- a/doc/man/nvme_free_subsystem.2 +++ b/doc/man/nvme_free_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_subsystem" 9 "nvme_free_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_subsystem" 9 "nvme_free_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_subsystem \- Free a subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_free_tree.2 b/doc/man/nvme_free_tree.2 index 73c1446..e4f76ed 100644 --- a/doc/man/nvme_free_tree.2 +++ b/doc/man/nvme_free_tree.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_tree" 9 "nvme_free_tree" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_tree" 9 "nvme_free_tree" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_tree \- Free root object .SH SYNOPSIS diff --git a/doc/man/nvme_free_uri.2 b/doc/man/nvme_free_uri.2 index 85262a1..d3e687f 100644 --- a/doc/man/nvme_free_uri.2 +++ b/doc/man/nvme_free_uri.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_uri" 9 "nvme_free_uri" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_uri" 9 "nvme_free_uri" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_uri \- Free the URI structure .SH SYNOPSIS diff --git a/doc/man/nvme_fw_commit.2 b/doc/man/nvme_fw_commit.2 index 612729e..8cdd6e3 100644 --- a/doc/man/nvme_fw_commit.2 +++ b/doc/man/nvme_fw_commit.2 @@ -1,4 +1,4 @@ -.TH "nvme_fw_commit" 9 "nvme_fw_commit" "November 2024" "libnvme API manual" LINUX +.TH "nvme_fw_commit" 9 "nvme_fw_commit" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_fw_commit \- Commit firmware using the specified action .SH SYNOPSIS diff --git a/doc/man/nvme_fw_commit_ca.2 b/doc/man/nvme_fw_commit_ca.2 index 8f01ca0..a847960 100644 --- a/doc/man/nvme_fw_commit_ca.2 +++ b/doc/man/nvme_fw_commit_ca.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fw_commit_ca" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fw_commit_ca" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fw_commit_ca \- Firmware Commit - Commit Action .SH SYNOPSIS diff --git a/doc/man/nvme_fw_commit_event.2 b/doc/man/nvme_fw_commit_event.2 index 9138d57..64ccb79 100644 --- a/doc/man/nvme_fw_commit_event.2 +++ b/doc/man/nvme_fw_commit_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fw_commit_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fw_commit_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fw_commit_event \- Firmware Commit Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_fw_download.2 b/doc/man/nvme_fw_download.2 index 7723a1f..3e6b506 100644 --- a/doc/man/nvme_fw_download.2 +++ b/doc/man/nvme_fw_download.2 @@ -1,4 +1,4 @@ -.TH "nvme_fw_download" 9 "nvme_fw_download" "November 2024" "libnvme API manual" LINUX +.TH "nvme_fw_download" 9 "nvme_fw_download" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_fw_download \- Download part or all of a firmware image to the controller .SH SYNOPSIS diff --git a/doc/man/nvme_fw_download_seq.2 b/doc/man/nvme_fw_download_seq.2 index dbb6603..0c0a1bc 100644 --- a/doc/man/nvme_fw_download_seq.2 +++ b/doc/man/nvme_fw_download_seq.2 @@ -1,4 +1,4 @@ -.TH "nvme_fw_download_seq" 9 "nvme_fw_download_seq" "November 2024" "libnvme API manual" LINUX +.TH "nvme_fw_download_seq" 9 "nvme_fw_download_seq" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_fw_download_seq \- Firmware download sequence .SH SYNOPSIS diff --git a/doc/man/nvme_gen_dhchap_key.2 b/doc/man/nvme_gen_dhchap_key.2 index 2f4445e..be97e34 100644 --- a/doc/man/nvme_gen_dhchap_key.2 +++ b/doc/man/nvme_gen_dhchap_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_gen_dhchap_key" 9 "nvme_gen_dhchap_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_gen_dhchap_key" 9 "nvme_gen_dhchap_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_gen_dhchap_key \- DH-HMAC-CHAP key generation .SH SYNOPSIS diff --git a/doc/man/nvme_generate_tls_key_identity.2 b/doc/man/nvme_generate_tls_key_identity.2 index 1363259..20a3b9e 100644 --- a/doc/man/nvme_generate_tls_key_identity.2 +++ b/doc/man/nvme_generate_tls_key_identity.2 @@ -1,4 +1,4 @@ -.TH "nvme_generate_tls_key_identity" 9 "nvme_generate_tls_key_identity" "November 2024" "libnvme API manual" LINUX +.TH "nvme_generate_tls_key_identity" 9 "nvme_generate_tls_key_identity" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_generate_tls_key_identity \- Generate the TLS key identity .SH SYNOPSIS diff --git a/doc/man/nvme_get_ana_log_atomic.2 b/doc/man/nvme_get_ana_log_atomic.2 index fe5f964..96e2ad2 100644 --- a/doc/man/nvme_get_ana_log_atomic.2 +++ b/doc/man/nvme_get_ana_log_atomic.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ana_log_atomic" 9 "nvme_get_ana_log_atomic" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ana_log_atomic" 9 "nvme_get_ana_log_atomic" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ana_log_atomic \- Retrieve Asymmetric Namespace Access log page atomically .SH SYNOPSIS diff --git a/doc/man/nvme_get_ana_log_len.2 b/doc/man/nvme_get_ana_log_len.2 index 0792af7..6ae5997 100644 --- a/doc/man/nvme_get_ana_log_len.2 +++ b/doc/man/nvme_get_ana_log_len.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ana_log_len" 9 "nvme_get_ana_log_len" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ana_log_len" 9 "nvme_get_ana_log_len" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ana_log_len \- Retrieve size of the current ANA log .SH SYNOPSIS diff --git a/doc/man/nvme_get_ana_log_len_from_id_ctrl.2 b/doc/man/nvme_get_ana_log_len_from_id_ctrl.2 index d1f3551..fe3a0b6 100644 --- a/doc/man/nvme_get_ana_log_len_from_id_ctrl.2 +++ b/doc/man/nvme_get_ana_log_len_from_id_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ana_log_len_from_id_ctrl" 9 "nvme_get_ana_log_len_from_id_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ana_log_len_from_id_ctrl" 9 "nvme_get_ana_log_len_from_id_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ana_log_len_from_id_ctrl \- Retrieve maximum possible ANA log size .SH SYNOPSIS diff --git a/doc/man/nvme_get_attr.2 b/doc/man/nvme_get_attr.2 index ea26929..7e5baa6 100644 --- a/doc/man/nvme_get_attr.2 +++ b/doc/man/nvme_get_attr.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_attr" 9 "nvme_get_attr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_attr" 9 "nvme_get_attr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_attr \- Read sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_ctrl_attr.2 b/doc/man/nvme_get_ctrl_attr.2 index a3411fe..b71a049 100644 --- a/doc/man/nvme_get_ctrl_attr.2 +++ b/doc/man/nvme_get_ctrl_attr.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ctrl_attr" 9 "nvme_get_ctrl_attr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ctrl_attr" 9 "nvme_get_ctrl_attr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ctrl_attr \- Read controller sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_ctrl_telemetry.2 b/doc/man/nvme_get_ctrl_telemetry.2 index b77daed..0303c4b 100644 --- a/doc/man/nvme_get_ctrl_telemetry.2 +++ b/doc/man/nvme_get_ctrl_telemetry.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ctrl_telemetry" 9 "nvme_get_ctrl_telemetry" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ctrl_telemetry" 9 "nvme_get_ctrl_telemetry" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ctrl_telemetry \- Get controller telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_get_directive_receive_length.2 b/doc/man/nvme_get_directive_receive_length.2 index a80f362..48a871f 100644 --- a/doc/man/nvme_get_directive_receive_length.2 +++ b/doc/man/nvme_get_directive_receive_length.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_directive_receive_length" 9 "nvme_get_directive_receive_length" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_directive_receive_length" 9 "nvme_get_directive_receive_length" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_directive_receive_length \- Get directive receive length .SH SYNOPSIS diff --git a/doc/man/nvme_get_discovery_args.2 b/doc/man/nvme_get_discovery_args.2 index 7f422c4..24206eb 100644 --- a/doc/man/nvme_get_discovery_args.2 +++ b/doc/man/nvme_get_discovery_args.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_get_discovery_args" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_get_discovery_args" "March 2025" "API Manual" LINUX .SH NAME struct nvme_get_discovery_args \- Arguments for nvmf_get_discovery_wargs() .SH SYNOPSIS diff --git a/doc/man/nvme_get_feature_length.2 b/doc/man/nvme_get_feature_length.2 index 56a4241..adda44e 100644 --- a/doc/man/nvme_get_feature_length.2 +++ b/doc/man/nvme_get_feature_length.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_feature_length" 9 "nvme_get_feature_length" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_feature_length" 9 "nvme_get_feature_length" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_feature_length \- Retreive the command payload length for a specific feature identifier .SH SYNOPSIS diff --git a/doc/man/nvme_get_feature_length2.2 b/doc/man/nvme_get_feature_length2.2 index a9346e7..e49db6e 100644 --- a/doc/man/nvme_get_feature_length2.2 +++ b/doc/man/nvme_get_feature_length2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_feature_length2" 9 "nvme_get_feature_length2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_feature_length2" 9 "nvme_get_feature_length2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_feature_length2 \- Retreive the command payload length for a specific feature identifier .SH SYNOPSIS diff --git a/doc/man/nvme_get_features.2 b/doc/man/nvme_get_features.2 index 452fecd..0d846e2 100644 --- a/doc/man/nvme_get_features.2 +++ b/doc/man/nvme_get_features.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features" 9 "nvme_get_features" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features" 9 "nvme_get_features" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features \- Retrieve a feature attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_arbitration.2 b/doc/man/nvme_get_features_arbitration.2 index 973e039..fe0c15f 100644 --- a/doc/man/nvme_get_features_arbitration.2 +++ b/doc/man/nvme_get_features_arbitration.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_arbitration" 9 "nvme_get_features_arbitration" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_arbitration" 9 "nvme_get_features_arbitration" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_arbitration \- Get arbitration feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_async_event.2 b/doc/man/nvme_get_features_async_event.2 index 7a85041..96a2bc5 100644 --- a/doc/man/nvme_get_features_async_event.2 +++ b/doc/man/nvme_get_features_async_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_async_event" 9 "nvme_get_features_async_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_async_event" 9 "nvme_get_features_async_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_async_event \- Get asynchronous event feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_auto_pst.2 b/doc/man/nvme_get_features_auto_pst.2 index 20a9cd7..eb2f284 100644 --- a/doc/man/nvme_get_features_auto_pst.2 +++ b/doc/man/nvme_get_features_auto_pst.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_auto_pst" 9 "nvme_get_features_auto_pst" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_auto_pst" 9 "nvme_get_features_auto_pst" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_auto_pst \- Get autonomous power state feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_data.2 b/doc/man/nvme_get_features_data.2 index 513bc65..6a93334 100644 --- a/doc/man/nvme_get_features_data.2 +++ b/doc/man/nvme_get_features_data.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_data" 9 "nvme_get_features_data" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_data" 9 "nvme_get_features_data" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_data \- Helper function for @nvme_get_features() .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_endurance_event_cfg.2 b/doc/man/nvme_get_features_endurance_event_cfg.2 index c72e794..d893014 100644 --- a/doc/man/nvme_get_features_endurance_event_cfg.2 +++ b/doc/man/nvme_get_features_endurance_event_cfg.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_endurance_event_cfg" 9 "nvme_get_features_endurance_event_cfg" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_endurance_event_cfg" 9 "nvme_get_features_endurance_event_cfg" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_endurance_event_cfg \- Get endurance event config feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_err_recovery.2 b/doc/man/nvme_get_features_err_recovery.2 index 49347cf..4d2a371 100644 --- a/doc/man/nvme_get_features_err_recovery.2 +++ b/doc/man/nvme_get_features_err_recovery.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_err_recovery" 9 "nvme_get_features_err_recovery" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_err_recovery" 9 "nvme_get_features_err_recovery" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_err_recovery \- Get error recovery feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_err_recovery2.2 b/doc/man/nvme_get_features_err_recovery2.2 index 852efcc..95b702f 100644 --- a/doc/man/nvme_get_features_err_recovery2.2 +++ b/doc/man/nvme_get_features_err_recovery2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_err_recovery2" 9 "nvme_get_features_err_recovery2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_err_recovery2" 9 "nvme_get_features_err_recovery2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_err_recovery2 \- Get error recovery feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_hctm.2 b/doc/man/nvme_get_features_hctm.2 index 4a6a3fa..80215a5 100644 --- a/doc/man/nvme_get_features_hctm.2 +++ b/doc/man/nvme_get_features_hctm.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_hctm" 9 "nvme_get_features_hctm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_hctm" 9 "nvme_get_features_hctm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_hctm \- Get thermal management feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_host_behavior.2 b/doc/man/nvme_get_features_host_behavior.2 index e9a1f5a..1736a64 100644 --- a/doc/man/nvme_get_features_host_behavior.2 +++ b/doc/man/nvme_get_features_host_behavior.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_host_behavior" 9 "nvme_get_features_host_behavior" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_host_behavior" 9 "nvme_get_features_host_behavior" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_host_behavior \- Get host behavior feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_host_id.2 b/doc/man/nvme_get_features_host_id.2 index 01228d2..8e5f322 100644 --- a/doc/man/nvme_get_features_host_id.2 +++ b/doc/man/nvme_get_features_host_id.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_host_id" 9 "nvme_get_features_host_id" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_host_id" 9 "nvme_get_features_host_id" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_host_id \- Get host id feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_host_mem_buf.2 b/doc/man/nvme_get_features_host_mem_buf.2 index 7fc66a7..7cba222 100644 --- a/doc/man/nvme_get_features_host_mem_buf.2 +++ b/doc/man/nvme_get_features_host_mem_buf.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_host_mem_buf" 9 "nvme_get_features_host_mem_buf" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_host_mem_buf" 9 "nvme_get_features_host_mem_buf" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_host_mem_buf \- Get host memory buffer feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_host_mem_buf2.2 b/doc/man/nvme_get_features_host_mem_buf2.2 index 987a281..2ca1501 100644 --- a/doc/man/nvme_get_features_host_mem_buf2.2 +++ b/doc/man/nvme_get_features_host_mem_buf2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_host_mem_buf2" 9 "nvme_get_features_host_mem_buf2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_host_mem_buf2" 9 "nvme_get_features_host_mem_buf2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_host_mem_buf2 \- Get host memory buffer feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_iocs_profile.2 b/doc/man/nvme_get_features_iocs_profile.2 index b399455..080bd5e 100644 --- a/doc/man/nvme_get_features_iocs_profile.2 +++ b/doc/man/nvme_get_features_iocs_profile.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_iocs_profile" 9 "nvme_get_features_iocs_profile" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_iocs_profile" 9 "nvme_get_features_iocs_profile" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_iocs_profile \- Get IOCS profile feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_irq_coalesce.2 b/doc/man/nvme_get_features_irq_coalesce.2 index 3b0f327..aeca929 100644 --- a/doc/man/nvme_get_features_irq_coalesce.2 +++ b/doc/man/nvme_get_features_irq_coalesce.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_irq_coalesce" 9 "nvme_get_features_irq_coalesce" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_irq_coalesce" 9 "nvme_get_features_irq_coalesce" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_irq_coalesce \- Get IRQ coalesce feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_irq_config.2 b/doc/man/nvme_get_features_irq_config.2 index 3f7c75a..98b45cd 100644 --- a/doc/man/nvme_get_features_irq_config.2 +++ b/doc/man/nvme_get_features_irq_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_irq_config" 9 "nvme_get_features_irq_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_irq_config" 9 "nvme_get_features_irq_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_irq_config \- Get IRQ config feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_kato.2 b/doc/man/nvme_get_features_kato.2 index 7436a87..e26200f 100644 --- a/doc/man/nvme_get_features_kato.2 +++ b/doc/man/nvme_get_features_kato.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_kato" 9 "nvme_get_features_kato" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_kato" 9 "nvme_get_features_kato" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_kato \- Get keep alive timeout feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_lba_range.2 b/doc/man/nvme_get_features_lba_range.2 index 38c8834..8d7fdab 100644 --- a/doc/man/nvme_get_features_lba_range.2 +++ b/doc/man/nvme_get_features_lba_range.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_lba_range" 9 "nvme_get_features_lba_range" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_lba_range" 9 "nvme_get_features_lba_range" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_lba_range \- Get LBA range feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_lba_range2.2 b/doc/man/nvme_get_features_lba_range2.2 index 75806ad..482b2d2 100644 --- a/doc/man/nvme_get_features_lba_range2.2 +++ b/doc/man/nvme_get_features_lba_range2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_lba_range2" 9 "nvme_get_features_lba_range2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_lba_range2" 9 "nvme_get_features_lba_range2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_lba_range2 \- Get LBA range feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_lba_sts_interval.2 b/doc/man/nvme_get_features_lba_sts_interval.2 index 5d70d1f..6dd4957 100644 --- a/doc/man/nvme_get_features_lba_sts_interval.2 +++ b/doc/man/nvme_get_features_lba_sts_interval.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_lba_sts_interval" 9 "nvme_get_features_lba_sts_interval" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_lba_sts_interval" 9 "nvme_get_features_lba_sts_interval" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_lba_sts_interval \- Get LBA status information feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_nopsc.2 b/doc/man/nvme_get_features_nopsc.2 index 07e79c9..7d031bc 100644 --- a/doc/man/nvme_get_features_nopsc.2 +++ b/doc/man/nvme_get_features_nopsc.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_nopsc" 9 "nvme_get_features_nopsc" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_nopsc" 9 "nvme_get_features_nopsc" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_nopsc \- Get non-operational power state feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_num_queues.2 b/doc/man/nvme_get_features_num_queues.2 index e50bdc5..849159a 100644 --- a/doc/man/nvme_get_features_num_queues.2 +++ b/doc/man/nvme_get_features_num_queues.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_num_queues" 9 "nvme_get_features_num_queues" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_num_queues" 9 "nvme_get_features_num_queues" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_num_queues \- Get number of queues feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_plm_config.2 b/doc/man/nvme_get_features_plm_config.2 index a132034..7854878 100644 --- a/doc/man/nvme_get_features_plm_config.2 +++ b/doc/man/nvme_get_features_plm_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_plm_config" 9 "nvme_get_features_plm_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_plm_config" 9 "nvme_get_features_plm_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_plm_config \- Get predictable latency feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_plm_window.2 b/doc/man/nvme_get_features_plm_window.2 index 2b1cd67..4e849a1 100644 --- a/doc/man/nvme_get_features_plm_window.2 +++ b/doc/man/nvme_get_features_plm_window.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_plm_window" 9 "nvme_get_features_plm_window" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_plm_window" 9 "nvme_get_features_plm_window" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_plm_window \- Get window select feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_power_mgmt.2 b/doc/man/nvme_get_features_power_mgmt.2 index 906f22c..e5619a0 100644 --- a/doc/man/nvme_get_features_power_mgmt.2 +++ b/doc/man/nvme_get_features_power_mgmt.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_power_mgmt" 9 "nvme_get_features_power_mgmt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_power_mgmt" 9 "nvme_get_features_power_mgmt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_power_mgmt \- Get power management feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_resv_mask.2 b/doc/man/nvme_get_features_resv_mask.2 index 53846e6..4f1e251 100644 --- a/doc/man/nvme_get_features_resv_mask.2 +++ b/doc/man/nvme_get_features_resv_mask.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_resv_mask" 9 "nvme_get_features_resv_mask" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_resv_mask" 9 "nvme_get_features_resv_mask" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_resv_mask \- Get reservation mask feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_resv_mask2.2 b/doc/man/nvme_get_features_resv_mask2.2 index 7c8b9ee..9610a11 100644 --- a/doc/man/nvme_get_features_resv_mask2.2 +++ b/doc/man/nvme_get_features_resv_mask2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_resv_mask2" 9 "nvme_get_features_resv_mask2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_resv_mask2" 9 "nvme_get_features_resv_mask2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_resv_mask2 \- Get reservation mask feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_resv_persist.2 b/doc/man/nvme_get_features_resv_persist.2 index 60414b2..5ed3bb9 100644 --- a/doc/man/nvme_get_features_resv_persist.2 +++ b/doc/man/nvme_get_features_resv_persist.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_resv_persist" 9 "nvme_get_features_resv_persist" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_resv_persist" 9 "nvme_get_features_resv_persist" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_resv_persist \- Get reservation persist feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_resv_persist2.2 b/doc/man/nvme_get_features_resv_persist2.2 index c56328a..de35d0d 100644 --- a/doc/man/nvme_get_features_resv_persist2.2 +++ b/doc/man/nvme_get_features_resv_persist2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_resv_persist2" 9 "nvme_get_features_resv_persist2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_resv_persist2" 9 "nvme_get_features_resv_persist2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_resv_persist2 \- Get reservation persist feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_rrl.2 b/doc/man/nvme_get_features_rrl.2 index 4fa13ae..c282847 100644 --- a/doc/man/nvme_get_features_rrl.2 +++ b/doc/man/nvme_get_features_rrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_rrl" 9 "nvme_get_features_rrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_rrl" 9 "nvme_get_features_rrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_rrl \- Get read recovery level feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_sanitize.2 b/doc/man/nvme_get_features_sanitize.2 index 6fa03f2..89c0a69 100644 --- a/doc/man/nvme_get_features_sanitize.2 +++ b/doc/man/nvme_get_features_sanitize.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_sanitize" 9 "nvme_get_features_sanitize" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_sanitize" 9 "nvme_get_features_sanitize" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_sanitize \- Get sanitize feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_sel.2 b/doc/man/nvme_get_features_sel.2 index 393a503..b65e4d5 100644 --- a/doc/man/nvme_get_features_sel.2 +++ b/doc/man/nvme_get_features_sel.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_get_features_sel" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_get_features_sel" "March 2025" "API Manual" LINUX .SH NAME enum nvme_get_features_sel \- Get Features - Select .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_simple.2 b/doc/man/nvme_get_features_simple.2 index 689a882..596d5a2 100644 --- a/doc/man/nvme_get_features_simple.2 +++ b/doc/man/nvme_get_features_simple.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_simple" 9 "nvme_get_features_simple" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_simple" 9 "nvme_get_features_simple" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_simple \- Helper function for @nvme_get_features() .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_sw_progress.2 b/doc/man/nvme_get_features_sw_progress.2 index dccb89e..70298cb 100644 --- a/doc/man/nvme_get_features_sw_progress.2 +++ b/doc/man/nvme_get_features_sw_progress.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_sw_progress" 9 "nvme_get_features_sw_progress" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_sw_progress" 9 "nvme_get_features_sw_progress" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_sw_progress \- Get software progress feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_temp_thresh.2 b/doc/man/nvme_get_features_temp_thresh.2 index 14c3a9b..0752b1a 100644 --- a/doc/man/nvme_get_features_temp_thresh.2 +++ b/doc/man/nvme_get_features_temp_thresh.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_temp_thresh" 9 "nvme_get_features_temp_thresh" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_temp_thresh" 9 "nvme_get_features_temp_thresh" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_temp_thresh \- Get temperature threshold feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_timestamp.2 b/doc/man/nvme_get_features_timestamp.2 index 15a8479..1091a93 100644 --- a/doc/man/nvme_get_features_timestamp.2 +++ b/doc/man/nvme_get_features_timestamp.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_timestamp" 9 "nvme_get_features_timestamp" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_timestamp" 9 "nvme_get_features_timestamp" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_timestamp \- Get timestamp feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_volatile_wc.2 b/doc/man/nvme_get_features_volatile_wc.2 index d31dc4d..4a34135 100644 --- a/doc/man/nvme_get_features_volatile_wc.2 +++ b/doc/man/nvme_get_features_volatile_wc.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_volatile_wc" 9 "nvme_get_features_volatile_wc" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_volatile_wc" 9 "nvme_get_features_volatile_wc" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_volatile_wc \- Get volatile write cache feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_write_atomic.2 b/doc/man/nvme_get_features_write_atomic.2 index 90b1bff..dec1f56 100644 --- a/doc/man/nvme_get_features_write_atomic.2 +++ b/doc/man/nvme_get_features_write_atomic.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_write_atomic" 9 "nvme_get_features_write_atomic" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_write_atomic" 9 "nvme_get_features_write_atomic" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_write_atomic \- Get write atomic feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_write_protect.2 b/doc/man/nvme_get_features_write_protect.2 index 5d37d07..79689d8 100644 --- a/doc/man/nvme_get_features_write_protect.2 +++ b/doc/man/nvme_get_features_write_protect.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_write_protect" 9 "nvme_get_features_write_protect" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_write_protect" 9 "nvme_get_features_write_protect" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_write_protect \- Get write protect feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_host_telemetry.2 b/doc/man/nvme_get_host_telemetry.2 index 84a4145..5d60e3c 100644 --- a/doc/man/nvme_get_host_telemetry.2 +++ b/doc/man/nvme_get_host_telemetry.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_host_telemetry" 9 "nvme_get_host_telemetry" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_host_telemetry" 9 "nvme_get_host_telemetry" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_host_telemetry \- Get host telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_get_lba_status.2 b/doc/man/nvme_get_lba_status.2 index 4fa70df..3a0f63d 100644 --- a/doc/man/nvme_get_lba_status.2 +++ b/doc/man/nvme_get_lba_status.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_lba_status" 9 "nvme_get_lba_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_lba_status" 9 "nvme_get_lba_status" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_lba_status \- Retrieve information on possibly unrecoverable LBAs .SH SYNOPSIS diff --git a/doc/man/nvme_get_lba_status_log.2 b/doc/man/nvme_get_lba_status_log.2 index 2896310..6d5b50a 100644 --- a/doc/man/nvme_get_lba_status_log.2 +++ b/doc/man/nvme_get_lba_status_log.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_lba_status_log" 9 "nvme_get_lba_status_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_lba_status_log" 9 "nvme_get_lba_status_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_lba_status_log \- Retrieve the LBA Status log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log.2 b/doc/man/nvme_get_log.2 index c4becd7..b6918b7 100644 --- a/doc/man/nvme_get_log.2 +++ b/doc/man/nvme_get_log.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log" 9 "nvme_get_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log" 9 "nvme_get_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log \- NVMe Admin Get Log command .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_ana.2 b/doc/man/nvme_get_log_ana.2 index 8403dc3..f5dab1f 100644 --- a/doc/man/nvme_get_log_ana.2 +++ b/doc/man/nvme_get_log_ana.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_ana" 9 "nvme_get_log_ana" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_ana" 9 "nvme_get_log_ana" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_ana \- Retrieve Asymmetric Namespace Access log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_ana_groups.2 b/doc/man/nvme_get_log_ana_groups.2 index 76ef120..8cd329a 100644 --- a/doc/man/nvme_get_log_ana_groups.2 +++ b/doc/man/nvme_get_log_ana_groups.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_ana_groups" 9 "nvme_get_log_ana_groups" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_ana_groups" 9 "nvme_get_log_ana_groups" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_ana_groups \- Retrieve Asymmetric Namespace Access groups only log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_ave_discover.2 b/doc/man/nvme_get_log_ave_discover.2 new file mode 100644 index 0000000..ba2af63 --- /dev/null +++ b/doc/man/nvme_get_log_ave_discover.2 @@ -0,0 +1,21 @@ +.TH "nvme_get_log_ave_discover" 9 "nvme_get_log_ave_discover" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_ave_discover \- Retrieve AVE Discovery Log +.SH SYNOPSIS +.B "int" nvme_get_log_ave_discover +.BI "(int fd " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_ave_discover_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_boot_partition.2 b/doc/man/nvme_get_log_boot_partition.2 index d1f190d..93d3f0c 100644 --- a/doc/man/nvme_get_log_boot_partition.2 +++ b/doc/man/nvme_get_log_boot_partition.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_boot_partition" 9 "nvme_get_log_boot_partition" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_boot_partition" 9 "nvme_get_log_boot_partition" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_boot_partition \- Retrieve Boot Partition .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_changed_alloc_ns_list.2 b/doc/man/nvme_get_log_changed_alloc_ns_list.2 new file mode 100644 index 0000000..ce9d6d0 --- /dev/null +++ b/doc/man/nvme_get_log_changed_alloc_ns_list.2 @@ -0,0 +1,21 @@ +.TH "nvme_get_log_changed_alloc_ns_list" 9 "nvme_get_log_changed_alloc_ns_list" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_changed_alloc_ns_list \- Retrieve Changed Allocated Namespace List Log +.SH SYNOPSIS +.B "int" nvme_get_log_changed_alloc_ns_list +.BI "(int fd " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_ns_list *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_changed_ns_list.2 b/doc/man/nvme_get_log_changed_ns_list.2 index 8968878..b52c16c 100644 --- a/doc/man/nvme_get_log_changed_ns_list.2 +++ b/doc/man/nvme_get_log_changed_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_changed_ns_list" 9 "nvme_get_log_changed_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_changed_ns_list" 9 "nvme_get_log_changed_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_changed_ns_list \- Retrieve namespace changed list .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_cmd_effects.2 b/doc/man/nvme_get_log_cmd_effects.2 index 3f5edee..f1f056c 100644 --- a/doc/man/nvme_get_log_cmd_effects.2 +++ b/doc/man/nvme_get_log_cmd_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_cmd_effects" 9 "nvme_get_log_cmd_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_cmd_effects" 9 "nvme_get_log_cmd_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_cmd_effects \- Retrieve nvme command effects log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_create_telemetry_host.2 b/doc/man/nvme_get_log_create_telemetry_host.2 index 5d0fd6e..fbf87f5 100644 --- a/doc/man/nvme_get_log_create_telemetry_host.2 +++ b/doc/man/nvme_get_log_create_telemetry_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_create_telemetry_host" 9 "nvme_get_log_create_telemetry_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_create_telemetry_host" 9 "nvme_get_log_create_telemetry_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_create_telemetry_host \- Create host telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_create_telemetry_host_mcda.2 b/doc/man/nvme_get_log_create_telemetry_host_mcda.2 new file mode 100644 index 0000000..f8f4515 --- /dev/null +++ b/doc/man/nvme_get_log_create_telemetry_host_mcda.2 @@ -0,0 +1,18 @@ +.TH "nvme_get_log_create_telemetry_host_mcda" 9 "nvme_get_log_create_telemetry_host_mcda" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_create_telemetry_host_mcda \- Create host telemetry log +.SH SYNOPSIS +.B "int" nvme_get_log_create_telemetry_host_mcda +.BI "(int fd " "," +.BI "enum nvme_telemetry_da mcda " "," +.BI "struct nvme_telemetry_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "mcda" 12 +Maximum Created Data Area +.IP "log" 12 +Userspace address of the log payload +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise. diff --git a/doc/man/nvme_get_log_device_self_test.2 b/doc/man/nvme_get_log_device_self_test.2 index fc47ed8..f450396 100644 --- a/doc/man/nvme_get_log_device_self_test.2 +++ b/doc/man/nvme_get_log_device_self_test.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_device_self_test" 9 "nvme_get_log_device_self_test" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_device_self_test" 9 "nvme_get_log_device_self_test" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_device_self_test \- Retrieve the device self test log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_discovery.2 b/doc/man/nvme_get_log_discovery.2 index 8a3e1d3..1f627a7 100644 --- a/doc/man/nvme_get_log_discovery.2 +++ b/doc/man/nvme_get_log_discovery.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_discovery" 9 "nvme_get_log_discovery" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_discovery" 9 "nvme_get_log_discovery" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_discovery \- Retrieve Discovery log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_dispersed_ns_participating_nss.2 b/doc/man/nvme_get_log_dispersed_ns_participating_nss.2 new file mode 100644 index 0000000..5927a82 --- /dev/null +++ b/doc/man/nvme_get_log_dispersed_ns_participating_nss.2 @@ -0,0 +1,21 @@ +.TH "nvme_get_log_dispersed_ns_participating_nss" 9 "nvme_get_log_dispersed_ns_participating_nss" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_dispersed_ns_participating_nss \- Retrieve Dispersed Namespace Participating NVM Subsystems Log +.SH SYNOPSIS +.B "int" nvme_get_log_dispersed_ns_participating_nss +.BI "(int fd " "," +.BI "__u32 nsid " "," +.BI "__u32 len " "," +.BI "struct nvme_dispersed_ns_participating_nss_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "nsid" 12 +Namespace Identifier +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_endurance_group.2 b/doc/man/nvme_get_log_endurance_group.2 index f0f68f2..58abecb 100644 --- a/doc/man/nvme_get_log_endurance_group.2 +++ b/doc/man/nvme_get_log_endurance_group.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_endurance_group" 9 "nvme_get_log_endurance_group" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_endurance_group" 9 "nvme_get_log_endurance_group" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_endurance_group \- Get Endurance Group log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_endurance_grp_evt.2 b/doc/man/nvme_get_log_endurance_grp_evt.2 index fd7bc13..1dd84d2 100644 --- a/doc/man/nvme_get_log_endurance_grp_evt.2 +++ b/doc/man/nvme_get_log_endurance_grp_evt.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_endurance_grp_evt" 9 "nvme_get_log_endurance_grp_evt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_endurance_grp_evt" 9 "nvme_get_log_endurance_grp_evt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_endurance_grp_evt \- Retrieve Rotational Media Information .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_error.2 b/doc/man/nvme_get_log_error.2 index 2fa264c..a9c03a1 100644 --- a/doc/man/nvme_get_log_error.2 +++ b/doc/man/nvme_get_log_error.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_error" 9 "nvme_get_log_error" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_error" 9 "nvme_get_log_error" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_error \- Retrieve nvme error log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_fdp_configurations.2 b/doc/man/nvme_get_log_fdp_configurations.2 index 0e678cc..4afec70 100644 --- a/doc/man/nvme_get_log_fdp_configurations.2 +++ b/doc/man/nvme_get_log_fdp_configurations.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_fdp_configurations" 9 "nvme_get_log_fdp_configurations" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_fdp_configurations" 9 "nvme_get_log_fdp_configurations" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_fdp_configurations \- Get list of Flexible Data Placement configurations .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_fdp_events.2 b/doc/man/nvme_get_log_fdp_events.2 index 1588d49..33c3666 100644 --- a/doc/man/nvme_get_log_fdp_events.2 +++ b/doc/man/nvme_get_log_fdp_events.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_fdp_events" 9 "nvme_get_log_fdp_events" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_fdp_events" 9 "nvme_get_log_fdp_events" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_fdp_events \- Get Flexible Data Placement events .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_fdp_stats.2 b/doc/man/nvme_get_log_fdp_stats.2 index e22dc6c..cd19ffe 100644 --- a/doc/man/nvme_get_log_fdp_stats.2 +++ b/doc/man/nvme_get_log_fdp_stats.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_fdp_stats" 9 "nvme_get_log_fdp_stats" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_fdp_stats" 9 "nvme_get_log_fdp_stats" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_fdp_stats \- Get Flexible Data Placement statistics .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_fid_supported_effects.2 b/doc/man/nvme_get_log_fid_supported_effects.2 index 6e65e4d..5a1dfc2 100644 --- a/doc/man/nvme_get_log_fid_supported_effects.2 +++ b/doc/man/nvme_get_log_fid_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_fid_supported_effects" 9 "nvme_get_log_fid_supported_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_fid_supported_effects" 9 "nvme_get_log_fid_supported_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_fid_supported_effects \- Retrieve Feature Identifiers Supported and Effects .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_fw_slot.2 b/doc/man/nvme_get_log_fw_slot.2 index 5e07a4e..4c4cf54 100644 --- a/doc/man/nvme_get_log_fw_slot.2 +++ b/doc/man/nvme_get_log_fw_slot.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_fw_slot" 9 "nvme_get_log_fw_slot" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_fw_slot" 9 "nvme_get_log_fw_slot" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_fw_slot \- Retrieves the controller firmware log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_host_discover.2 b/doc/man/nvme_get_log_host_discover.2 new file mode 100644 index 0000000..76e47e5 --- /dev/null +++ b/doc/man/nvme_get_log_host_discover.2 @@ -0,0 +1,24 @@ +.TH "nvme_get_log_host_discover" 9 "nvme_get_log_host_discover" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_host_discover \- Retrieve Host Discovery Log +.SH SYNOPSIS +.B "int" nvme_get_log_host_discover +.BI "(int fd " "," +.BI "bool allhoste " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_host_discover_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "allhoste" 12 +All host entries +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_lba_status.2 b/doc/man/nvme_get_log_lba_status.2 index 6c11cf1..6a7b6c0 100644 --- a/doc/man/nvme_get_log_lba_status.2 +++ b/doc/man/nvme_get_log_lba_status.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_lba_status \- Retrieve LBA Status .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_lockdown.2 b/doc/man/nvme_get_log_lockdown.2 index d9e404e..1180163 100644 --- a/doc/man/nvme_get_log_lockdown.2 +++ b/doc/man/nvme_get_log_lockdown.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_lockdown" 9 "nvme_get_log_lockdown" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_lockdown" 9 "nvme_get_log_lockdown" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_lockdown \- Retrieve lockdown Log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_media_unit_stat.2 b/doc/man/nvme_get_log_media_unit_stat.2 index a81282c..8c9cd47 100644 --- a/doc/man/nvme_get_log_media_unit_stat.2 +++ b/doc/man/nvme_get_log_media_unit_stat.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_media_unit_stat" 9 "nvme_get_log_media_unit_stat" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_media_unit_stat" 9 "nvme_get_log_media_unit_stat" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_media_unit_stat \- Retrieve Media Unit Status .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_mgmt_addr_list.2 b/doc/man/nvme_get_log_mgmt_addr_list.2 new file mode 100644 index 0000000..57d47f5 --- /dev/null +++ b/doc/man/nvme_get_log_mgmt_addr_list.2 @@ -0,0 +1,18 @@ +.TH "nvme_get_log_mgmt_addr_list" 9 "nvme_get_log_mgmt_addr_list" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_mgmt_addr_list \- Retrieve Management Address List Log +.SH SYNOPSIS +.B "int" nvme_get_log_mgmt_addr_list +.BI "(int fd " "," +.BI "__u32 len " "," +.BI "struct nvme_mgmt_addr_list_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_mi_cmd_supported_effects.2 b/doc/man/nvme_get_log_mi_cmd_supported_effects.2 index 555785c..82e9bff 100644 --- a/doc/man/nvme_get_log_mi_cmd_supported_effects.2 +++ b/doc/man/nvme_get_log_mi_cmd_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_mi_cmd_supported_effects" 9 "nvme_get_log_mi_cmd_supported_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_mi_cmd_supported_effects" 9 "nvme_get_log_mi_cmd_supported_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_mi_cmd_supported_effects \- displays the MI Commands Supported by the controller .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_page.2 b/doc/man/nvme_get_log_page.2 index e6ba106..1ac6fd3 100644 --- a/doc/man/nvme_get_log_page.2 +++ b/doc/man/nvme_get_log_page.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_page" 9 "nvme_get_log_page" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_page" 9 "nvme_get_log_page" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_page \- Get log page data .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_persistent_event.2 b/doc/man/nvme_get_log_persistent_event.2 index b67f5a3..9af652a 100644 --- a/doc/man/nvme_get_log_persistent_event.2 +++ b/doc/man/nvme_get_log_persistent_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_persistent_event" 9 "nvme_get_log_persistent_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_persistent_event" 9 "nvme_get_log_persistent_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_persistent_event \- Retrieve Persistent Event Log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_phy_rx_eom.2 b/doc/man/nvme_get_log_phy_rx_eom.2 index e653960..45a1a09 100644 --- a/doc/man/nvme_get_log_phy_rx_eom.2 +++ b/doc/man/nvme_get_log_phy_rx_eom.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_phy_rx_eom" 9 "nvme_get_log_phy_rx_eom" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_phy_rx_eom" 9 "nvme_get_log_phy_rx_eom" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_phy_rx_eom \- Retrieve Physical Interface Receiver Eye Opening Measurement Log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_predictable_lat_event.2 b/doc/man/nvme_get_log_predictable_lat_event.2 index 530ef26..2cb86db 100644 --- a/doc/man/nvme_get_log_predictable_lat_event.2 +++ b/doc/man/nvme_get_log_predictable_lat_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_predictable_lat_event" 9 "nvme_get_log_predictable_lat_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_predictable_lat_event" 9 "nvme_get_log_predictable_lat_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_predictable_lat_event \- Retrieve Predictable Latency Event Aggregate Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_predictable_lat_nvmset.2 b/doc/man/nvme_get_log_predictable_lat_nvmset.2 index 9066b24..5810f5a 100644 --- a/doc/man/nvme_get_log_predictable_lat_nvmset.2 +++ b/doc/man/nvme_get_log_predictable_lat_nvmset.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_predictable_lat_nvmset" 9 "nvme_get_log_predictable_lat_nvmset" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_predictable_lat_nvmset" 9 "nvme_get_log_predictable_lat_nvmset" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_predictable_lat_nvmset \- Predictable Latency Per NVM Set .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_pull_model_ddc_req.2 b/doc/man/nvme_get_log_pull_model_ddc_req.2 new file mode 100644 index 0000000..9145f27 --- /dev/null +++ b/doc/man/nvme_get_log_pull_model_ddc_req.2 @@ -0,0 +1,21 @@ +.TH "nvme_get_log_pull_model_ddc_req" 9 "nvme_get_log_pull_model_ddc_req" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_pull_model_ddc_req \- Retrieve Pull Model DDC Request Log +.SH SYNOPSIS +.B "int" nvme_get_log_pull_model_ddc_req +.BI "(int fd " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_pull_model_ddc_req_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_reachability_associations.2 b/doc/man/nvme_get_log_reachability_associations.2 new file mode 100644 index 0000000..8024be1 --- /dev/null +++ b/doc/man/nvme_get_log_reachability_associations.2 @@ -0,0 +1,24 @@ +.TH "nvme_get_log_reachability_associations" 9 "nvme_get_log_reachability_associations" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_reachability_associations \- Retrieve Reachability Associations Log +.SH SYNOPSIS +.B "int" nvme_get_log_reachability_associations +.BI "(int fd " "," +.BI "bool rao " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_reachability_associations_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "rao" 12 +Return associations only +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_reachability_groups.2 b/doc/man/nvme_get_log_reachability_groups.2 new file mode 100644 index 0000000..daca99d --- /dev/null +++ b/doc/man/nvme_get_log_reachability_groups.2 @@ -0,0 +1,24 @@ +.TH "nvme_get_log_reachability_groups" 9 "nvme_get_log_reachability_groups" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_reachability_groups \- Retrieve Reachability Groups Log +.SH SYNOPSIS +.B "int" nvme_get_log_reachability_groups +.BI "(int fd " "," +.BI "bool rgo " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_reachability_groups_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "rgo" 12 +Return groups only +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_reclaim_unit_handle_usage.2 b/doc/man/nvme_get_log_reclaim_unit_handle_usage.2 index d9e884d..df06050 100644 --- a/doc/man/nvme_get_log_reclaim_unit_handle_usage.2 +++ b/doc/man/nvme_get_log_reclaim_unit_handle_usage.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_reclaim_unit_handle_usage" 9 "nvme_get_log_reclaim_unit_handle_usage" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_reclaim_unit_handle_usage" 9 "nvme_get_log_reclaim_unit_handle_usage" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_reclaim_unit_handle_usage \- Get reclaim unit handle usage .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_reservation.2 b/doc/man/nvme_get_log_reservation.2 index 040f568..93ad027 100644 --- a/doc/man/nvme_get_log_reservation.2 +++ b/doc/man/nvme_get_log_reservation.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_reservation" 9 "nvme_get_log_reservation" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_reservation" 9 "nvme_get_log_reservation" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_reservation \- Retrieve Reservation Notification .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_rotational_media_info.2 b/doc/man/nvme_get_log_rotational_media_info.2 new file mode 100644 index 0000000..27133b5 --- /dev/null +++ b/doc/man/nvme_get_log_rotational_media_info.2 @@ -0,0 +1,21 @@ +.TH "nvme_get_log_rotational_media_info" 9 "nvme_get_log_rotational_media_info" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_rotational_media_info \- Retrieve Rotational Media Information Log +.SH SYNOPSIS +.B "int" nvme_get_log_rotational_media_info +.BI "(int fd " "," +.BI "__u16 endgid " "," +.BI "__u32 len " "," +.BI "struct nvme_rotational_media_info_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "endgid" 12 +Endurance Group Identifier +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_sanitize.2 b/doc/man/nvme_get_log_sanitize.2 index f86d29c..7b409d0 100644 --- a/doc/man/nvme_get_log_sanitize.2 +++ b/doc/man/nvme_get_log_sanitize.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_sanitize" 9 "nvme_get_log_sanitize" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_sanitize" 9 "nvme_get_log_sanitize" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_sanitize \- Retrieve Sanitize Status .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_smart.2 b/doc/man/nvme_get_log_smart.2 index 6f62b48..8d23eb4 100644 --- a/doc/man/nvme_get_log_smart.2 +++ b/doc/man/nvme_get_log_smart.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_smart" 9 "nvme_get_log_smart" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_smart" 9 "nvme_get_log_smart" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_smart \- Retrieve nvme smart log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_support_cap_config_list.2 b/doc/man/nvme_get_log_support_cap_config_list.2 index b5fd920..6ea215c 100644 --- a/doc/man/nvme_get_log_support_cap_config_list.2 +++ b/doc/man/nvme_get_log_support_cap_config_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_support_cap_config_list" 9 "nvme_get_log_support_cap_config_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_support_cap_config_list" 9 "nvme_get_log_support_cap_config_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_support_cap_config_list \- Retrieve Supported Capacity Configuration List .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_supported_log_pages.2 b/doc/man/nvme_get_log_supported_log_pages.2 index 9b16092..a980126 100644 --- a/doc/man/nvme_get_log_supported_log_pages.2 +++ b/doc/man/nvme_get_log_supported_log_pages.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_supported_log_pages" 9 "nvme_get_log_supported_log_pages" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_supported_log_pages" 9 "nvme_get_log_supported_log_pages" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_supported_log_pages \- Retrieve nmve supported log pages .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_telemetry_ctrl.2 b/doc/man/nvme_get_log_telemetry_ctrl.2 index 95f3b58..65ff935 100644 --- a/doc/man/nvme_get_log_telemetry_ctrl.2 +++ b/doc/man/nvme_get_log_telemetry_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_telemetry_ctrl" 9 "nvme_get_log_telemetry_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_telemetry_ctrl" 9 "nvme_get_log_telemetry_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_telemetry_ctrl \- Get Telemetry Controller-Initiated log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_telemetry_host.2 b/doc/man/nvme_get_log_telemetry_host.2 index 3dc3dc9..3ac4c91 100644 --- a/doc/man/nvme_get_log_telemetry_host.2 +++ b/doc/man/nvme_get_log_telemetry_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_telemetry_host" 9 "nvme_get_log_telemetry_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_telemetry_host" 9 "nvme_get_log_telemetry_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_telemetry_host \- Get Telemetry Host-Initiated log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_zns_changed_zones.2 b/doc/man/nvme_get_log_zns_changed_zones.2 index 0203b47..fefb482 100644 --- a/doc/man/nvme_get_log_zns_changed_zones.2 +++ b/doc/man/nvme_get_log_zns_changed_zones.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_zns_changed_zones" 9 "nvme_get_log_zns_changed_zones" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_zns_changed_zones" 9 "nvme_get_log_zns_changed_zones" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_zns_changed_zones \- Retrieve list of zones that have changed .SH SYNOPSIS diff --git a/doc/man/nvme_get_logging_level.2 b/doc/man/nvme_get_logging_level.2 index 03164d2..edc71e2 100644 --- a/doc/man/nvme_get_logging_level.2 +++ b/doc/man/nvme_get_logging_level.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_logging_level" 9 "nvme_get_logging_level" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_logging_level" 9 "nvme_get_logging_level" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_logging_level \- Get current logging level .SH SYNOPSIS diff --git a/doc/man/nvme_get_logical_block_size.2 b/doc/man/nvme_get_logical_block_size.2 index fb56422..4d37d95 100644 --- a/doc/man/nvme_get_logical_block_size.2 +++ b/doc/man/nvme_get_logical_block_size.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_logical_block_size" 9 "nvme_get_logical_block_size" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_logical_block_size" 9 "nvme_get_logical_block_size" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_logical_block_size \- Retrieve block size .SH SYNOPSIS diff --git a/doc/man/nvme_get_new_host_telemetry.2 b/doc/man/nvme_get_new_host_telemetry.2 index 65dc910..e6b3e90 100644 --- a/doc/man/nvme_get_new_host_telemetry.2 +++ b/doc/man/nvme_get_new_host_telemetry.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_new_host_telemetry" 9 "nvme_get_new_host_telemetry" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_new_host_telemetry" 9 "nvme_get_new_host_telemetry" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_new_host_telemetry \- Get new host telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_get_ns_attr.2 b/doc/man/nvme_get_ns_attr.2 index 3654513..8b93f82 100644 --- a/doc/man/nvme_get_ns_attr.2 +++ b/doc/man/nvme_get_ns_attr.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ns_attr" 9 "nvme_get_ns_attr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ns_attr" 9 "nvme_get_ns_attr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ns_attr \- Read namespace sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_nsid.2 b/doc/man/nvme_get_nsid.2 index e4956dc..cee30e4 100644 --- a/doc/man/nvme_get_nsid.2 +++ b/doc/man/nvme_get_nsid.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_nsid" 9 "nvme_get_nsid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_nsid" 9 "nvme_get_nsid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_nsid \- Retrieve the NSID from a namespace file descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_get_path_attr.2 b/doc/man/nvme_get_path_attr.2 index 59ff50b..c8dee4c 100644 --- a/doc/man/nvme_get_path_attr.2 +++ b/doc/man/nvme_get_path_attr.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_path_attr" 9 "nvme_get_path_attr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_path_attr" 9 "nvme_get_path_attr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_path_attr \- Read path sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_property.2 b/doc/man/nvme_get_property.2 index f7e7617..2682523 100644 --- a/doc/man/nvme_get_property.2 +++ b/doc/man/nvme_get_property.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_property" 9 "nvme_get_property" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_property" 9 "nvme_get_property" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_property \- Get a controller property .SH SYNOPSIS diff --git a/doc/man/nvme_get_subsys_attr.2 b/doc/man/nvme_get_subsys_attr.2 index 2be2437..d883782 100644 --- a/doc/man/nvme_get_subsys_attr.2 +++ b/doc/man/nvme_get_subsys_attr.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_subsys_attr" 9 "nvme_get_subsys_attr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_subsys_attr" 9 "nvme_get_subsys_attr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_subsys_attr \- Read subsystem sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_telemetry_log.2 b/doc/man/nvme_get_telemetry_log.2 index bbd8a99..1d6b241 100644 --- a/doc/man/nvme_get_telemetry_log.2 +++ b/doc/man/nvme_get_telemetry_log.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_telemetry_log" 9 "nvme_get_telemetry_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_telemetry_log" 9 "nvme_get_telemetry_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_telemetry_log \- Get specified telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_get_telemetry_max.2 b/doc/man/nvme_get_telemetry_max.2 index 51a918a..916d954 100644 --- a/doc/man/nvme_get_telemetry_max.2 +++ b/doc/man/nvme_get_telemetry_max.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_telemetry_max" 9 "nvme_get_telemetry_max" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_telemetry_max" 9 "nvme_get_telemetry_max" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_telemetry_max \- Get telemetry limits .SH SYNOPSIS diff --git a/doc/man/nvme_hmac_alg.2 b/doc/man/nvme_hmac_alg.2 index 48500c6..93e3740 100644 --- a/doc/man/nvme_hmac_alg.2 +++ b/doc/man/nvme_hmac_alg.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_hmac_alg" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_hmac_alg" "March 2025" "API Manual" LINUX .SH NAME enum nvme_hmac_alg \- HMAC algorithm .SH SYNOPSIS diff --git a/doc/man/nvme_host_behavior_support.2 b/doc/man/nvme_host_behavior_support.2 index 8c2d3b5..5f5bab6 100644 --- a/doc/man/nvme_host_behavior_support.2 +++ b/doc/man/nvme_host_behavior_support.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_host_behavior_support" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_host_behavior_support" "March 2025" "API Manual" LINUX .SH NAME enum nvme_host_behavior_support \- Enable Advanced Command .SH SYNOPSIS diff --git a/doc/man/nvme_host_discover_log.2 b/doc/man/nvme_host_discover_log.2 new file mode 100644 index 0000000..c47071c --- /dev/null +++ b/doc/man/nvme_host_discover_log.2 @@ -0,0 +1,43 @@ +.TH "libnvme" 9 "struct nvme_host_discover_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_host_discover_log \- Host Discovery Log +.SH SYNOPSIS +struct nvme_host_discover_log { +.br +.BI " __le64 genctr;" +.br +.BI " __le64 numrec;" +.br +.BI " __le16 recfmt;" +.br +.BI " __u8 hdlpf;" +.br +.BI " __u8 rsvd19;" +.br +.BI " __le32 thdlpl;" +.br +.BI " __u8 rsvd24[1000];" +.br +.BI " struct nvme_host_ext_discover_log hedlpe[];" +.br +.BI " +}; +.br + +.SH Members +.IP "genctr" 12 +Generation Counter +.IP "numrec" 12 +Number of Records +.IP "recfmt" 12 +Record Format +.IP "hdlpf" 12 +Host Discovery Log Page Flags +.IP "rsvd19" 12 +Reserved +.IP "thdlpl" 12 +Total Host Discovery Log Page Length +.IP "rsvd24" 12 +Reserved +.IP "hedlpe" 12 +Host Extended Discovery Log Page Entry List diff --git a/doc/man/nvme_host_ext_discover_log.2 b/doc/man/nvme_host_ext_discover_log.2 new file mode 100644 index 0000000..9a1e9db --- /dev/null +++ b/doc/man/nvme_host_ext_discover_log.2 @@ -0,0 +1,59 @@ +.TH "libnvme" 9 "struct nvme_host_ext_discover_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_host_ext_discover_log \- Host Extended Discovery Log +.SH SYNOPSIS +struct nvme_host_ext_discover_log { +.br +.BI " __u8 trtype;" +.br +.BI " __u8 adrfam;" +.br +.BI " __u8 rsvd2[8];" +.br +.BI " __le16 eflags;" +.br +.BI " __u8 rsvd12[244];" +.br +.BI " char hostnqn[NVME_NQN_LENGTH];" +.br +.BI " char traddr[NVMF_TRADDR_SIZE];" +.br +.BI " union nvmf_tsas tsas;" +.br +.BI " __le32 tel;" +.br +.BI " __le16 numexat;" +.br +.BI " __u8 rsvd1030[2];" +.br +.BI " struct nvmf_ext_attr exat[];" +.br +.BI " +}; +.br + +.SH Members +.IP "trtype" 12 +Transport Type +.IP "adrfam" 12 +Address Family +.IP "rsvd2" 12 +Reserved +.IP "eflags" 12 +Entry Flags +.IP "rsvd12" 12 +Reserved +.IP "hostnqn" 12 +Host NVMe Qualified Name +.IP "traddr" 12 +Transport Address +.IP "tsas" 12 +Transport Specific Address Subtype +.IP "tel" 12 +Total Entry Length +.IP "numexat" 12 +Number of Extended Attributes +.IP "rsvd1030" 12 +Reserved +.IP "exat" 12 +Extended Attributes List diff --git a/doc/man/nvme_host_get_dhchap_key.2 b/doc/man/nvme_host_get_dhchap_key.2 index 35688b0..1e6e73d 100644 --- a/doc/man/nvme_host_get_dhchap_key.2 +++ b/doc/man/nvme_host_get_dhchap_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_get_dhchap_key" 9 "nvme_host_get_dhchap_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_get_dhchap_key" 9 "nvme_host_get_dhchap_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_get_dhchap_key \- Return host key .SH SYNOPSIS diff --git a/doc/man/nvme_host_get_hostid.2 b/doc/man/nvme_host_get_hostid.2 index 94ba985..ad86372 100644 --- a/doc/man/nvme_host_get_hostid.2 +++ b/doc/man/nvme_host_get_hostid.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_get_hostid" 9 "nvme_host_get_hostid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_get_hostid" 9 "nvme_host_get_hostid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_get_hostid \- Host ID of an nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_host_get_hostnqn.2 b/doc/man/nvme_host_get_hostnqn.2 index aa705b2..7b3baba 100644 --- a/doc/man/nvme_host_get_hostnqn.2 +++ b/doc/man/nvme_host_get_hostnqn.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_get_hostnqn" 9 "nvme_host_get_hostnqn" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_get_hostnqn" 9 "nvme_host_get_hostnqn" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_get_hostnqn \- Host NQN of an nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_host_get_hostsymname.2 b/doc/man/nvme_host_get_hostsymname.2 index 1909767..683bb25 100644 --- a/doc/man/nvme_host_get_hostsymname.2 +++ b/doc/man/nvme_host_get_hostsymname.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_get_hostsymname" 9 "nvme_host_get_hostsymname" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_get_hostsymname" 9 "nvme_host_get_hostsymname" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_get_hostsymname \- Get the host's symbolic name .SH SYNOPSIS diff --git a/doc/man/nvme_host_get_root.2 b/doc/man/nvme_host_get_root.2 index 6623a5a..4f71704 100644 --- a/doc/man/nvme_host_get_root.2 +++ b/doc/man/nvme_host_get_root.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_get_root" 9 "nvme_host_get_root" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_get_root" 9 "nvme_host_get_root" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_get_root \- Returns nvme_root_t object .SH SYNOPSIS diff --git a/doc/man/nvme_host_is_pdc_enabled.2 b/doc/man/nvme_host_is_pdc_enabled.2 index 5455256..3663534 100644 --- a/doc/man/nvme_host_is_pdc_enabled.2 +++ b/doc/man/nvme_host_is_pdc_enabled.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_is_pdc_enabled" 9 "nvme_host_is_pdc_enabled" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_is_pdc_enabled" 9 "nvme_host_is_pdc_enabled" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_is_pdc_enabled \- Is Persistenct Discovery Controller enabled .SH SYNOPSIS diff --git a/doc/man/nvme_host_mem_buf_attrs.2 b/doc/man/nvme_host_mem_buf_attrs.2 index eb3739b..23278f2 100644 --- a/doc/man/nvme_host_mem_buf_attrs.2 +++ b/doc/man/nvme_host_mem_buf_attrs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_host_mem_buf_attrs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_host_mem_buf_attrs" "March 2025" "API Manual" LINUX .SH NAME struct nvme_host_mem_buf_attrs \- Host Memory Buffer - Attributes Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_host_metadata.2 b/doc/man/nvme_host_metadata.2 index 2c35c14..985924d 100644 --- a/doc/man/nvme_host_metadata.2 +++ b/doc/man/nvme_host_metadata.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_host_metadata" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_host_metadata" "March 2025" "API Manual" LINUX .SH NAME struct nvme_host_metadata \- Host Metadata Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_host_release_fds.2 b/doc/man/nvme_host_release_fds.2 index 3de4b55..091f9af 100644 --- a/doc/man/nvme_host_release_fds.2 +++ b/doc/man/nvme_host_release_fds.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_release_fds" 9 "nvme_host_release_fds" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_release_fds" 9 "nvme_host_release_fds" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_release_fds \- Close all opened file descriptors under host .SH SYNOPSIS diff --git a/doc/man/nvme_host_set_dhchap_key.2 b/doc/man/nvme_host_set_dhchap_key.2 index 2e7f5b3..4f8f9b5 100644 --- a/doc/man/nvme_host_set_dhchap_key.2 +++ b/doc/man/nvme_host_set_dhchap_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_set_dhchap_key" 9 "nvme_host_set_dhchap_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_set_dhchap_key" 9 "nvme_host_set_dhchap_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_set_dhchap_key \- set host key .SH SYNOPSIS diff --git a/doc/man/nvme_host_set_hostsymname.2 b/doc/man/nvme_host_set_hostsymname.2 index 54015b3..d6335c8 100644 --- a/doc/man/nvme_host_set_hostsymname.2 +++ b/doc/man/nvme_host_set_hostsymname.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_set_hostsymname" 9 "nvme_host_set_hostsymname" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_set_hostsymname" 9 "nvme_host_set_hostsymname" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_set_hostsymname \- Set the host's symbolic name .SH SYNOPSIS diff --git a/doc/man/nvme_host_set_pdc_enabled.2 b/doc/man/nvme_host_set_pdc_enabled.2 index 8a8da38..a8072ee 100644 --- a/doc/man/nvme_host_set_pdc_enabled.2 +++ b/doc/man/nvme_host_set_pdc_enabled.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_set_pdc_enabled" 9 "nvme_host_set_pdc_enabled" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_set_pdc_enabled" 9 "nvme_host_set_pdc_enabled" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_set_pdc_enabled \- Set Persistent Discovery Controller flag .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl.2 b/doc/man/nvme_id_ctrl.2 index c9df499..178a496 100644 --- a/doc/man/nvme_id_ctrl.2 +++ b/doc/man/nvme_id_ctrl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_ctrl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ctrl" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_ctrl \- Identify Controller data structure .SH SYNOPSIS @@ -36,7 +36,15 @@ struct nvme_id_ctrl { .br .BI " __le16 rrls;" .br -.BI " __u8 rsvd102[9];" +.BI " __u8 bpcap;" +.br +.BI " __u8 rsvd103;" +.br +.BI " __le32 nssl;" +.br +.BI " __u8 rsvd108[2];" +.br +.BI " __u8 plsi;" .br .BI " __u8 cntrltype;" .br @@ -48,7 +56,9 @@ struct nvme_id_ctrl { .br .BI " __le16 crdt3;" .br -.BI " __u8 rsvd134[119];" +.BI " __u8 crcap;" +.br +.BI " __u8 rsvd135[118];" .br .BI " __u8 nvmsr;" .br @@ -126,13 +136,23 @@ struct nvme_id_ctrl { .br .BI " __le16 domainid;" .br -.BI " __u8 rsvd358[10];" +.BI " __u8 kpioc;" +.br +.BI " __u8 rsvd359;" +.br +.BI " __le16 mptfawr;" +.br +.BI " __u8 rsvd362[6];" .br .BI " __u8 megcap[16];" .br .BI " __u8 tmpthha;" .br -.BI " __u8 rsvd385[127];" +.BI " __u8 rsvd385;" +.br +.BI " __le16 cqt;" +.br +.BI " __u8 rsvd388[124];" .br .BI " __u8 sqes;" .br @@ -172,11 +192,13 @@ struct nvme_id_ctrl { .br .BI " __le32 oaqd;" .br -.BI " __u8 rsvd568[2];" +.BI " __u8 rhiri;" .br -.BI " __u16 cmmrtd;" +.BI " __u8 hirt;" .br -.BI " __u16 nmmrtd;" +.BI " __le16 cmmrtd;" +.br +.BI " __le16 nmmrtd;" .br .BI " __u8 minmrtg;" .br @@ -186,15 +208,15 @@ struct nvme_id_ctrl { .br .BI " __u8 rsvd577;" .br -.BI " __u16 mcudmq;" +.BI " __le16 mcudmq;" .br -.BI " __u16 mnsudmq;" +.BI " __le16 mnsudmq;" .br -.BI " __u16 mcmr;" +.BI " __le16 mcmr;" .br -.BI " __u16 nmcmr;" +.BI " __le16 nmcmr;" .br -.BI " __u16 mcdqpc;" +.BI " __le16 mcdqpc;" .br .BI " __u8 rsvd588[180];" .br @@ -272,8 +294,18 @@ Controller Attributes, see \fIenum\fP nvme_id_ctrl_ctratt. Read Recovery Levels. If a bit is set, then the corresponding Read Recovery Level is supported. If a bit is cleared, then the corresponding Read Recovery Level is not supported. -.IP "rsvd102" 12 +.IP "bpcap" 12 +Boot Partition Capabilities, see \fIenum nvme_id_ctrl_bpcap\fP. +.IP "rsvd103" 12 Reserved +.IP "nssl" 12 +NVM Subsystem Shutdown Latency (NSSL). This field indicates the +typical latency in microseconds for an NVM Subsystem Shutdown to +complete. +.IP "rsvd108" 12 +Reserved +.IP "plsi" 12 +Power Loss Signaling Information (PLSI), see \fIenum nvme_id_ctrl_plsi\fP .IP "cntrltype" 12 Controller Type, see \fIenum nvme_id_ctrl_cntrltype\fP .IP "fguid" 12 @@ -288,7 +320,10 @@ field is 2 .IP "crdt3" 12 Controller Retry Delay time in 100 millisecond units if CQE CRD field is 3 -.IP "rsvd134" 12 +.IP "crcap" 12 +Controller Reachability Capabilities (CRCAP), see +\fIenum nvme_id_ctrl_crcap\fP +.IP "rsvd135" 12 Reserved .IP "nvmsr" 12 NVM Subsystem Report, see \fIenum nvme_id_ctrl_nvmsr\fP @@ -429,7 +464,17 @@ for the Persistent Event Log. .IP "domainid" 12 Domain Identifier indicates the identifier of the domain that contains this controller. -.IP "rsvd358" 12 +.IP "kpioc" 12 +Key Per I/O Capabilities (KPIOC), see \fIenum nvme_id_ctrl_kpioc\fP +.IP "rsvd359" 12 +Reserved +.IP "mptfawr" 12 +Maximum Processing Time for Firmware Activation Without Reset +(MPTFAWR). This field shall indicate the estimated maximum time +in 100 ms units required by the controller to process a Firmware +Commit command that specifies a value of 011b in the Commit +Action field +.IP "rsvd362" 12 Reserved .IP "megcap" 12 Max Endurance Group Capacity indicates the maximum capacity @@ -438,6 +483,13 @@ of a single Endurance Group. Temperature Threshold Hysteresis Attributes .IP "rsvd385" 12 Reserved +.IP "cqt" 12 +Command Quiesce Time (CQT). his field indicates the expected +worst-case time in 1 millisecond units for the controller to +quiesce all outstanding commands after a Keep Alive Timeout or +other communication loss. +.IP "rsvd388" 12 +Reserved .IP "sqes" 12 Submission Queue Entry Size, see \fIenum nvme_id_ctrl_sqes\fP. .IP "cqes" 12 @@ -503,8 +555,19 @@ this I/O controller. Optimal Aggregated Queue Depth indicates the recommended maximum total number of outstanding I/O commands across all I/O queues on the controller for optimal operation. -.IP "rsvd568" 12 -Reserved +.IP "rhiri" 12 +Recommended Host-Initiated Refresh Interval (RHIRI). If the +Host-Initiated Refresh capability is supported, then this field +indicates the recommended time interval in days from last power +down to the time at which the host should initiate the +Host-Initiated Refresh operation. If this field is cleared to +0h, then this field is not reported. +.IP "hirt" 12 +Host-Initiated Refresh Time (HIRT). If the Host-Initiated +Refresh capability is supported, then this field indicates the +nominal amount of time in minutes that the controller takes to +complete the Host-Initiated Refresh operation. If this field is +cleared to 0h, then this field is not reported. .IP "cmmrtd" 12 Controller Maximum Memory Range Tracking Descriptors indicates the maximum number of Memory Range Tracking Descriptors the @@ -524,8 +587,8 @@ value supported in the Requested Memory Range Tracking Granularity (RMRTG) field of the Track Memory Ranges data structure. .IP "trattr" 12 -Tracking Attributes indicates supported attributes for the -Track Send command and Track Receive command. +Tracking Attributes indicates supported attributes for the Track Send +command and Track Receive command. see \fIenum nvme_id_ctrl_trattr\fP .IP "rsvd577" 12 Reserved .IP "mcudmq" 12 diff --git a/doc/man/nvme_id_ctrl_anacap.2 b/doc/man/nvme_id_ctrl_anacap.2 index 4dfa65f..c339e17 100644 --- a/doc/man/nvme_id_ctrl_anacap.2 +++ b/doc/man/nvme_id_ctrl_anacap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_anacap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_anacap" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_anacap \- This field indicates the capabilities associated with Asymmetric Namespace Access Reporting. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_apsta.2 b/doc/man/nvme_id_ctrl_apsta.2 index cd76284..e0cdaa3 100644 --- a/doc/man/nvme_id_ctrl_apsta.2 +++ b/doc/man/nvme_id_ctrl_apsta.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_apsta" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_apsta" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_apsta \- Flags indicating the attributes of the autonomous power state transition feature. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_avscc.2 b/doc/man/nvme_id_ctrl_avscc.2 index c0e0b79..7ca2198 100644 --- a/doc/man/nvme_id_ctrl_avscc.2 +++ b/doc/man/nvme_id_ctrl_avscc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_avscc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_avscc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_avscc \- Flags indicating the configuration settings for Admin Vendor Specific command handling. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_bpcap.2 b/doc/man/nvme_id_ctrl_bpcap.2 new file mode 100644 index 0000000..de920d8 --- /dev/null +++ b/doc/man/nvme_id_ctrl_bpcap.2 @@ -0,0 +1,59 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_bpcap" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_bpcap \- Boot Partition Capabilities +.SH SYNOPSIS +enum nvme_id_ctrl_bpcap { +.br +.BI " NVME_CTRL_BACAP_RPMBBPWPS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_BACAP_SFBPWPS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_BACAP_RPMBBPWPS_MASK" +, +.br +.br +.BI " NVME_CTRL_BACAP_SFBPWPS_MASK" +, +.br +.br +.BI " NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED" +, +.br +.br +.BI " NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED" +, +.br +.br +.BI " NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED" + +}; +.SH Constants +.IP "NVME_CTRL_BACAP_RPMBBPWPS_SHIFT" 12 +Shift amount to get the RPMB Boot Partition Write +Protection Support from the \fIstruct +nvme_id_ctrl\fP.bpcap field. +.IP "NVME_CTRL_BACAP_SFBPWPS_SHIFT" 12 +Shift amount to get the Set Features Boot Partition +Write Protection Support from the \fIstruct +nvme_id_ctrl\fP.bpcap field. +.IP "NVME_CTRL_BACAP_RPMBBPWPS_MASK" 12 +Mask to get the RPMB Boot Partition Write +Protection Support from the \fIstruct +nvme_id_ctrl\fP.bpcap field. +.IP "NVME_CTRL_BACAP_SFBPWPS_MASK" 12 +Mask to get the Set Features Boot Partition Write +Protection Support from the \fIstruct +nvme_id_ctrl\fP.bpcap field. +.IP "NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED" 12 +Support for RPMB Boot Partition Write Protection +is not specified. +.IP "NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED" 12 +RPMB Boot Partition Write Protection is not +supported by this controller. +.IP "NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED" 12 +RPMB Boot Partition Write Protection is supported +by this controller. diff --git a/doc/man/nvme_id_ctrl_cmic.2 b/doc/man/nvme_id_ctrl_cmic.2 index c832183..39acee3 100644 --- a/doc/man/nvme_id_ctrl_cmic.2 +++ b/doc/man/nvme_id_ctrl_cmic.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_cmic" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_cmic" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_cmic \- Controller Multipath IO and Namespace Sharing Capabilities of the controller and NVM subsystem. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_cntrltype.2 b/doc/man/nvme_id_ctrl_cntrltype.2 index a5760f1..62ffe14 100644 --- a/doc/man/nvme_id_ctrl_cntrltype.2 +++ b/doc/man/nvme_id_ctrl_cntrltype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_cntrltype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_cntrltype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_cntrltype \- Controller types .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_cqes.2 b/doc/man/nvme_id_ctrl_cqes.2 index d728790..0f3675a 100644 --- a/doc/man/nvme_id_ctrl_cqes.2 +++ b/doc/man/nvme_id_ctrl_cqes.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_cqes" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_cqes" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_cqes \- Defines the required and maximum Completion Queue entry size when using the NVM Command Set. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_crcap.2 b/doc/man/nvme_id_ctrl_crcap.2 new file mode 100644 index 0000000..375e101 --- /dev/null +++ b/doc/man/nvme_id_ctrl_crcap.2 @@ -0,0 +1,34 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_crcap" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_crcap \- Power Loss Signaling Information +.SH SYNOPSIS +enum nvme_id_ctrl_crcap { +.br +.BI " NVME_CTRL_CRCAP_RRSUP_SHIFT" +, +.br +.br +.BI " NVME_CTRL_CRCAP_RGIDC_SHIFT" +, +.br +.br +.BI " NVME_CTRL_CRCAP_RRSUP_MASK" +, +.br +.br +.BI " NVME_CTRL_CRCAP_RGIDC_MASK" + +}; +.SH Constants +.IP "NVME_CTRL_CRCAP_RRSUP_SHIFT" 12 +Shift amount to get the Reachability Reporting Supported +from the \fIstruct nvme_id_ctrl\fP.crcap field. +.IP "NVME_CTRL_CRCAP_RGIDC_SHIFT" 12 +Shift amount to get the Reachability Group ID Changeable +from the \fIstruct nvme_id_ctrl\fP.crcap field. +.IP "NVME_CTRL_CRCAP_RRSUP_MASK" 12 +Mask to get the Reachability Reporting Supported from the +\fIstruct nvme_id_ctrl\fP.crcap field. +.IP "NVME_CTRL_CRCAP_RGIDC_MASK" 12 +Mask to get the Reachability Group ID Changeable from the +\fIstruct nvme_id_ctrl\fP.crcap field. diff --git a/doc/man/nvme_id_ctrl_ctratt.2 b/doc/man/nvme_id_ctrl_ctratt.2 index f440db1..be535d9 100644 --- a/doc/man/nvme_id_ctrl_ctratt.2 +++ b/doc/man/nvme_id_ctrl_ctratt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_ctratt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_ctratt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_ctratt \- Controller attributes .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_dctype.2 b/doc/man/nvme_id_ctrl_dctype.2 index 8fe0578..795af13 100644 --- a/doc/man/nvme_id_ctrl_dctype.2 +++ b/doc/man/nvme_id_ctrl_dctype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_dctype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_dctype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_dctype \- Discovery Controller types .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_dsto.2 b/doc/man/nvme_id_ctrl_dsto.2 index 848046a..f75e805 100644 --- a/doc/man/nvme_id_ctrl_dsto.2 +++ b/doc/man/nvme_id_ctrl_dsto.2 @@ -1,13 +1,48 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_dsto" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_dsto" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_dsto \- Flags indicating the optional Device Self-test command or operation behaviors supported by the controller or NVM subsystem. .SH SYNOPSIS enum nvme_id_ctrl_dsto { .br +.BI " NVME_CTRL_DSTO_SDSO_SHIFT" +, +.br +.br +.BI " NVME_CTRL_DSTO_HIRS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_DSTO_SDSO_MASK" +, +.br +.br +.BI " NVME_CTRL_DSTO_HIRS_MASK" +, +.br +.br .BI " NVME_CTRL_DSTO_ONE_DST" +, +.br +.br +.BI " NVME_CTRL_DSTO_HIRS" }; .SH Constants +.IP "NVME_CTRL_DSTO_SDSO_SHIFT" 12 +Shift amount to get the value of Single Device Self-test +Operation from Device Self-test Options field. +.IP "NVME_CTRL_DSTO_HIRS_SHIFT" 12 +Shift amount to get the value of Host-Initiated Refresh +Support from Device Self-test Options field. +.IP "NVME_CTRL_DSTO_SDSO_MASK" 12 +Mask to get the value of Single Device Self-test Operation +.IP "NVME_CTRL_DSTO_HIRS_MASK" 12 +Mask to get the value of Host-Initiated Refresh Support .IP "NVME_CTRL_DSTO_ONE_DST" 12 -If set, then the NVM subsystem supports only one -device self-test operation in progress at a time. +If set, then the NVM subsystem supports only one device +self-test operation in progress at a time. If cleared, +then the NVM subsystem supports one device self-test +operation per controller at a time. +.IP "NVME_CTRL_DSTO_HIRS" 12 +If set, then the controller supports the Host-Initiated +Refresh capability. diff --git a/doc/man/nvme_id_ctrl_fcatt.2 b/doc/man/nvme_id_ctrl_fcatt.2 index 01c028e..63923ec 100644 --- a/doc/man/nvme_id_ctrl_fcatt.2 +++ b/doc/man/nvme_id_ctrl_fcatt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_fcatt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_fcatt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_fcatt \- This field indicates attributes of the controller that are specific to NVMe over Fabrics. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_fna.2 b/doc/man/nvme_id_ctrl_fna.2 index 28b690c..ec92a19 100644 --- a/doc/man/nvme_id_ctrl_fna.2 +++ b/doc/man/nvme_id_ctrl_fna.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_fna" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_fna" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_fna \- This field indicates attributes for the Format NVM command. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_frmw.2 b/doc/man/nvme_id_ctrl_frmw.2 index 911d0b2..7322882 100644 --- a/doc/man/nvme_id_ctrl_frmw.2 +++ b/doc/man/nvme_id_ctrl_frmw.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_frmw" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_frmw" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_frmw \- Flags and values indicates capabilities regarding firmware updates from &struct nvme_id_ctrl.frmw. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_fuses.2 b/doc/man/nvme_id_ctrl_fuses.2 index 2165ac7..042e78d 100644 --- a/doc/man/nvme_id_ctrl_fuses.2 +++ b/doc/man/nvme_id_ctrl_fuses.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_fuses" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_fuses" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_fuses \- This field indicates the fused operations that the controller supports. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_hctm.2 b/doc/man/nvme_id_ctrl_hctm.2 index 7b1ae28..8c182ee 100644 --- a/doc/man/nvme_id_ctrl_hctm.2 +++ b/doc/man/nvme_id_ctrl_hctm.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_hctm" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_hctm" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_hctm \- Flags indicate the attributes of the host controlled thermal management feature .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_kpioc.2 b/doc/man/nvme_id_ctrl_kpioc.2 new file mode 100644 index 0000000..d26e856 --- /dev/null +++ b/doc/man/nvme_id_ctrl_kpioc.2 @@ -0,0 +1,34 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_kpioc" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_kpioc \- Key Per I/O Capabilities +.SH SYNOPSIS +enum nvme_id_ctrl_kpioc { +.br +.BI " NVME_CTRL_KPIOC_KPIOS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_KPIOC_KPIOSC_SHIFT" +, +.br +.br +.BI " NVME_CTRL_KPIOC_KPIOS_MASK" +, +.br +.br +.BI " NVME_CTRL_KPIOC_KPIOSC_MASK" + +}; +.SH Constants +.IP "NVME_CTRL_KPIOC_KPIOS_SHIFT" 12 +Shift amount to get the Key Per I/O Supported from the +\fIstruct nvme_id_ctrl\fP.kpioc field. +.IP "NVME_CTRL_KPIOC_KPIOSC_SHIFT" 12 +Shift amount to get the Key Per I/O Scope from the +\fIstruct nvme_id_ctrl\fP.kpioc field. +.IP "NVME_CTRL_KPIOC_KPIOS_MASK" 12 +Mask to get the Key Per I/O Supported from the +\fIstruct nvme_id_ctrl\fP.kpioc field. +.IP "NVME_CTRL_KPIOC_KPIOSC_MASK" 12 +Mask to get the Key Per I/O Scope from the +\fIstruct nvme_id_ctrl\fP.kpioc field. diff --git a/doc/man/nvme_id_ctrl_lpa.2 b/doc/man/nvme_id_ctrl_lpa.2 index 13a8cfb..48af556 100644 --- a/doc/man/nvme_id_ctrl_lpa.2 +++ b/doc/man/nvme_id_ctrl_lpa.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_lpa" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_lpa" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_lpa \- Flags indicating optional attributes for log pages that are accessed via the Get Log Page command. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_mec.2 b/doc/man/nvme_id_ctrl_mec.2 index 849abb7..9229d8e 100644 --- a/doc/man/nvme_id_ctrl_mec.2 +++ b/doc/man/nvme_id_ctrl_mec.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_mec" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_mec" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_mec \- Flags indicating the capabilities of the Management Endpoint in the Controller, &struct nvme_id_ctrl.mec. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_nvm.2 b/doc/man/nvme_id_ctrl_nvm.2 index e598749..6600f57 100644 --- a/doc/man/nvme_id_ctrl_nvm.2 +++ b/doc/man/nvme_id_ctrl_nvm.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_ctrl_nvm" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ctrl_nvm" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_ctrl_nvm \- I/O Command Set Specific Identify Controller data structure .SH SYNOPSIS @@ -16,7 +16,9 @@ struct nvme_id_ctrl_nvm { .br .BI " __le64 dmsl;" .br -.BI " __u8 rsvd16[2];" +.BI " __u8 kpiocap;" +.br +.BI " __u8 wzdsl;" .br .BI " __le16 aocs;" .br @@ -43,8 +45,10 @@ Dataset Management Ranges Limit Dataset Management Range Size Limit .IP "dmsl" 12 Dataset Management Size Limit -.IP "rsvd16" 12 -Reserved +.IP "kpiocap" 12 +Key Per I/O Capabilities +.IP "wzdsl" 12 +Write Zeroes With Deallocate Size Limit .IP "aocs" 12 Admin Optional Command Support .IP "ver" 12 diff --git a/doc/man/nvme_id_ctrl_nvm_lbamqf.2 b/doc/man/nvme_id_ctrl_nvm_lbamqf.2 new file mode 100644 index 0000000..dcd7eb3 --- /dev/null +++ b/doc/man/nvme_id_ctrl_nvm_lbamqf.2 @@ -0,0 +1,21 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_nvm_lbamqf" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_nvm_lbamqf \- LBA Migration Queue Format +.SH SYNOPSIS +enum nvme_id_ctrl_nvm_lbamqf { +.br +.BI " NVME_ID_CTRL_NVM_LBAMQF_TYPE_0" +, +.br +.br +.BI " NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MIN" +, +.br +.br +.BI " NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MAX" + +}; +.SH Constants +.IP "NVME_ID_CTRL_NVM_LBAMQF_TYPE_0" 12 +.IP "NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MIN" 12 +.IP "NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MAX" 12 diff --git a/doc/man/nvme_id_ctrl_nvmsr.2 b/doc/man/nvme_id_ctrl_nvmsr.2 index 4758e17..6b59ea7 100644 --- a/doc/man/nvme_id_ctrl_nvmsr.2 +++ b/doc/man/nvme_id_ctrl_nvmsr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_nvmsr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_nvmsr" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_nvmsr \- This field reports information associated with the NVM Subsystem, see &struct nvme_id_ctrl.nvmsr. .SH SYNOPSIS @@ -17,6 +17,6 @@ If set, then the NVM Subsystem is part of an NVMe Storage Device; if cleared, then the NVM Subsystem is not part of an NVMe Storage Device. .IP "NVME_CTRL_NVMSR_NVMEE" 12 -If set’, then the NVM Subsystem is part of an NVMe +If set, then the NVM Subsystem is part of an NVMe Enclosure; if cleared, then the NVM Subsystem is not part of an NVMe Enclosure. diff --git a/doc/man/nvme_id_ctrl_nvscc.2 b/doc/man/nvme_id_ctrl_nvscc.2 index e756682..c5b20c8 100644 --- a/doc/man/nvme_id_ctrl_nvscc.2 +++ b/doc/man/nvme_id_ctrl_nvscc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_nvscc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_nvscc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_nvscc \- This field indicates the configuration settings for NVM Vendor Specific command handling. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_nwpc.2 b/doc/man/nvme_id_ctrl_nwpc.2 index d7eda6f..0ef1f72 100644 --- a/doc/man/nvme_id_ctrl_nwpc.2 +++ b/doc/man/nvme_id_ctrl_nwpc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_nwpc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_nwpc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_nwpc \- This field indicates the optional namespace write protection capabilities supported by the controller. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_oacs.2 b/doc/man/nvme_id_ctrl_oacs.2 index 98ff229..7c57965 100644 --- a/doc/man/nvme_id_ctrl_oacs.2 +++ b/doc/man/nvme_id_ctrl_oacs.2 @@ -1,9 +1,105 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_oacs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_oacs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_oacs \- Flags indicating the optional Admin commands and features supported by the controller, see &struct nvme_id_ctrl.oacs. .SH SYNOPSIS enum nvme_id_ctrl_oacs { .br +.BI " NVME_CTRL_OACS_SSRS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_FNVMS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_FWDS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_NMS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_DSTS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_DIRS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_NSRS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_VMS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_DBCS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_GLSS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_CFLS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_HMLMS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_SSRS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_FNVMS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_FWDS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_NMS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_DSTS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_DIRS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_NSRS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_VMS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_DBCS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_GLSS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_CFLS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_HMLMS_MASK" +, +.br +.br .BI " NVME_CTRL_OACS_SECURITY" , .br @@ -45,9 +141,61 @@ enum nvme_id_ctrl_oacs { .br .br .BI " NVME_CTRL_OACS_CMD_FEAT_LD" +, +.br +.br +.BI " NVME_CTRL_OACS_HMLM" }; .SH Constants +.IP "NVME_CTRL_OACS_SSRS_SHIFT" 12 +Shift amount to get the Security Send Receive supported +.IP "NVME_CTRL_OACS_FNVMS_SHIFT" 12 +Shift amount to get the Format NVM supported +.IP "NVME_CTRL_OACS_FWDS_SHIFT" 12 +Shift amount to get the Firmware Download supported +.IP "NVME_CTRL_OACS_NMS_SHIFT" 12 +Shift amount to get the Namespace Management supported +.IP "NVME_CTRL_OACS_DSTS_SHIFT" 12 +Shift amount to get the Device Self-test supported +.IP "NVME_CTRL_OACS_DIRS_SHIFT" 12 +Shift amount to get the Directives supported +.IP "NVME_CTRL_OACS_NSRS_SHIFT" 12 +Shift amount to get the NVMe-MI Send Receive supported +.IP "NVME_CTRL_OACS_VMS_SHIFT" 12 +Shift amount to get the Virtualization Management supported +.IP "NVME_CTRL_OACS_DBCS_SHIFT" 12 +Shift amount to get the Doorbell Buffer Config supported +.IP "NVME_CTRL_OACS_GLSS_SHIFT" 12 +Shift amount to get the Get LBA Status supported +.IP "NVME_CTRL_OACS_CFLS_SHIFT" 12 +Shift amount to get the Command and Feature Lockdown supported +.IP "NVME_CTRL_OACS_HMLMS_SHIFT" 12 +Shift amount to get the Host Managed Live Migration support +.IP "NVME_CTRL_OACS_SSRS_MASK" 12 +Mask to get the Security Send Receive supported +.IP "NVME_CTRL_OACS_FNVMS_MASK" 12 +Mask to get the Format NVM supported +.IP "NVME_CTRL_OACS_FWDS_MASK" 12 +Mask to get the Firmware Download supported +.IP "NVME_CTRL_OACS_NMS_MASK" 12 +Mask to get the Namespace Management supported +.IP "NVME_CTRL_OACS_DSTS_MASK" 12 +Mask to get the Device Self-test supported +.IP "NVME_CTRL_OACS_DIRS_MASK" 12 +Mask to get the Directives supported +.IP "NVME_CTRL_OACS_NSRS_MASK" 12 +Mask to get the NVMe-MI Send Receive supported +.IP "NVME_CTRL_OACS_VMS_MASK" 12 +Mask to get the Virtualization Management supported +.IP "NVME_CTRL_OACS_DBCS_MASK" 12 +Mask to get the Doorbell Buffer Config supported +.IP "NVME_CTRL_OACS_GLSS_MASK" 12 +Mask to get the Get LBA Status supported +.IP "NVME_CTRL_OACS_CFLS_MASK" 12 +Mask to get the Command and Feature Lockdown supported +.IP "NVME_CTRL_OACS_HMLMS_MASK" 12 +Mask to get the Host Managed Live Migration support .IP "NVME_CTRL_OACS_SECURITY" 12 If set, then the controller supports the Security Send and Security Receive commands. @@ -82,3 +230,6 @@ Status capability. .IP "NVME_CTRL_OACS_CMD_FEAT_LD" 12 If set, then the controller supports the command and feature lockdown capability. +.IP "NVME_CTRL_OACS_HMLM" 12 +If set, then the controller supports the command +and Host Managed Live Migration capability. diff --git a/doc/man/nvme_id_ctrl_oaes.2 b/doc/man/nvme_id_ctrl_oaes.2 index 10c21d9..bf3d92d 100644 --- a/doc/man/nvme_id_ctrl_oaes.2 +++ b/doc/man/nvme_id_ctrl_oaes.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_oaes" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_oaes" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_oaes \- Optional Asynchronous Events Supported .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_ofcs.2 b/doc/man/nvme_id_ctrl_ofcs.2 index 49fd161..5031e9d 100644 --- a/doc/man/nvme_id_ctrl_ofcs.2 +++ b/doc/man/nvme_id_ctrl_ofcs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_ofcs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_ofcs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_ofcs \- Indicate whether the controller supports optional fabric commands. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_oncs.2 b/doc/man/nvme_id_ctrl_oncs.2 index d7e70e7..a5eb09b 100644 --- a/doc/man/nvme_id_ctrl_oncs.2 +++ b/doc/man/nvme_id_ctrl_oncs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_oncs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_oncs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_oncs \- This field indicates the optional NVM commands and features supported by the controller. .SH SYNOPSIS @@ -45,6 +45,14 @@ enum nvme_id_ctrl_oncs { .br .br .BI " NVME_CTRL_ONCS_ALL_FAST_COPY" +, +.br +.br +.BI " NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE" +, +.br +.br +.BI " NVME_CTRL_ONCS_NAMESPACE_ZEROES" }; .SH Constants @@ -88,3 +96,14 @@ a write command apply. If set, then all copy operations for the Copy command are fast copy operations. +.IP "NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE" 12 +If MAXWZD bit set, then the maximum data +size for Write Zeroes command depends on the +value of the Deallocate bit in the Write Zeroes +command and the value in the WZDSL field in the +I/O Command Set specific Identify Controller +data structure. +.IP "NVME_CTRL_ONCS_NAMESPACE_ZEROES" 12 +If NSZS bit set, then the controller supports +the Namespace Zeroes (NSZ) bit in the NVM +Command Set Write Zeroes command. diff --git a/doc/man/nvme_id_ctrl_plsi.2 b/doc/man/nvme_id_ctrl_plsi.2 new file mode 100644 index 0000000..79eab50 --- /dev/null +++ b/doc/man/nvme_id_ctrl_plsi.2 @@ -0,0 +1,34 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_plsi" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_plsi \- Power Loss Signaling Information +.SH SYNOPSIS +enum nvme_id_ctrl_plsi { +.br +.BI " NVME_CTRL_PLSI_PLSEPF_SHIFT" +, +.br +.br +.BI " NVME_CTRL_PLSI_PLSFQ_SHIFT" +, +.br +.br +.BI " NVME_CTRL_PLSI_PLSEPF_MASK" +, +.br +.br +.BI " NVME_CTRL_PLSI_PLSFQ_MASK" + +}; +.SH Constants +.IP "NVME_CTRL_PLSI_PLSEPF_SHIFT" 12 +Shift amount to get the PLS Emergency Power Fail from the +\fIstruct nvme_id_ctrl\fP.plsi field. +.IP "NVME_CTRL_PLSI_PLSFQ_SHIFT" 12 +Shift amount to get the PLS Forced Quiescence from the +\fIstruct nvme_id_ctrl\fP.plsi field. +.IP "NVME_CTRL_PLSI_PLSEPF_MASK" 12 +Mask to get the PLS Emergency Power Fail from the +\fIstruct nvme_id_ctrl\fP.plsi field. +.IP "NVME_CTRL_PLSI_PLSFQ_MASK" 12 +Mask to get the PLS Forced Quiescence from the +\fIstruct nvme_id_ctrl\fP.plsi field. diff --git a/doc/man/nvme_id_ctrl_rpmbs.2 b/doc/man/nvme_id_ctrl_rpmbs.2 index 842f866..9f3ba71 100644 --- a/doc/man/nvme_id_ctrl_rpmbs.2 +++ b/doc/man/nvme_id_ctrl_rpmbs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_rpmbs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_rpmbs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_rpmbs \- This field indicates if the controller supports one or more Replay Protected Memory Blocks, from &struct nvme_id_ctrl.rpmbs. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_sanicap.2 b/doc/man/nvme_id_ctrl_sanicap.2 index 860662b..eefe07c 100644 --- a/doc/man/nvme_id_ctrl_sanicap.2 +++ b/doc/man/nvme_id_ctrl_sanicap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_sanicap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_sanicap" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_sanicap \- Indicates attributes for sanitize operations. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_sgls.2 b/doc/man/nvme_id_ctrl_sgls.2 index 0185220..d56371d 100644 --- a/doc/man/nvme_id_ctrl_sgls.2 +++ b/doc/man/nvme_id_ctrl_sgls.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_sgls" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_sgls" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_sgls \- This field indicates if SGLs are supported for the NVM Command Set and the particular SGL types supported. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_sqes.2 b/doc/man/nvme_id_ctrl_sqes.2 index 51a9dab..241ef1e 100644 --- a/doc/man/nvme_id_ctrl_sqes.2 +++ b/doc/man/nvme_id_ctrl_sqes.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_sqes" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_sqes" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_sqes \- Defines the required and maximum Submission Queue entry size when using the NVM Command Set. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_trattr.2 b/doc/man/nvme_id_ctrl_trattr.2 new file mode 100644 index 0000000..2dcd6a0 --- /dev/null +++ b/doc/man/nvme_id_ctrl_trattr.2 @@ -0,0 +1,48 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_trattr" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_trattr \- Tracking Attributes +.SH SYNOPSIS +enum nvme_id_ctrl_trattr { +.br +.BI " NVME_CTRL_TRATTR_THMCS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_TRATTR_TUDCS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_TRATTR_MRTLL_SHIFT" +, +.br +.br +.BI " NVME_CTRL_TRATTR_THMCS_MASK" +, +.br +.br +.BI " NVME_CTRL_TRATTR_TUDCS_MASK" +, +.br +.br +.BI " NVME_CTRL_TRATTR_MRTLL_MASK" + +}; +.SH Constants +.IP "NVME_CTRL_TRATTR_THMCS_SHIFT" 12 +Shift amount to get the Track Host Memory Changes Support +from the \fIstruct nvme_id_ctrl\fP.trattr field. +.IP "NVME_CTRL_TRATTR_TUDCS_SHIFT" 12 +Shift amount to get the Track User Data Changes Support +from the \fIstruct nvme_id_ctrl\fP.trattr field. +.IP "NVME_CTRL_TRATTR_MRTLL_SHIFT" 12 +Shift amount to get the Memory Range Tracking Length Limit +from the \fIstruct nvme_id_ctrl\fP.trattr field. +.IP "NVME_CTRL_TRATTR_THMCS_MASK" 12 +Mask to get the Track Host Memory Changes Support +from the \fIstruct nvme_id_ctrl\fP.trattr field. +.IP "NVME_CTRL_TRATTR_TUDCS_MASK" 12 +Mask to get the Track User Data Changes Support +from the \fIstruct nvme_id_ctrl\fP.trattr field. +.IP "NVME_CTRL_TRATTR_MRTLL_MASK" 12 +Mask to get the Memory Range Tracking Length Limit +from the \fIstruct nvme_id_ctrl\fP.trattr field. diff --git a/doc/man/nvme_id_ctrl_vwc.2 b/doc/man/nvme_id_ctrl_vwc.2 index 269ed75..2072ffd 100644 --- a/doc/man/nvme_id_ctrl_vwc.2 +++ b/doc/man/nvme_id_ctrl_vwc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_vwc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_vwc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_vwc \- Volatile write cache .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_vwci.2 b/doc/man/nvme_id_ctrl_vwci.2 index 8349723..7781f31 100644 --- a/doc/man/nvme_id_ctrl_vwci.2 +++ b/doc/man/nvme_id_ctrl_vwci.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_vwci" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_vwci" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_vwci \- This field indicates information about remaining number of times that VPD contents are able to be updated using the VPD Write command, see &struct nvme_id_ctrl.vwci. .SH SYNOPSIS diff --git a/doc/man/nvme_id_directives.2 b/doc/man/nvme_id_directives.2 index 04b3cb3..350f650 100644 --- a/doc/man/nvme_id_directives.2 +++ b/doc/man/nvme_id_directives.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_directives" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_directives" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_directives \- Identify Directive - Return Parameters Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_id_domain_attr.2 b/doc/man/nvme_id_domain_attr.2 index 67b8d73..f25aacb 100644 --- a/doc/man/nvme_id_domain_attr.2 +++ b/doc/man/nvme_id_domain_attr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_domain_attr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_domain_attr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_domain_attr \- Domain Attributes Entry .SH SYNOPSIS diff --git a/doc/man/nvme_id_domain_list.2 b/doc/man/nvme_id_domain_list.2 index a6754c9..666ca6f 100644 --- a/doc/man/nvme_id_domain_list.2 +++ b/doc/man/nvme_id_domain_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_domain_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_domain_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_domain_list \- Domain List .SH SYNOPSIS diff --git a/doc/man/nvme_id_endurance_group_list.2 b/doc/man/nvme_id_endurance_group_list.2 index af53fdc..87b31c3 100644 --- a/doc/man/nvme_id_endurance_group_list.2 +++ b/doc/man/nvme_id_endurance_group_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_endurance_group_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_endurance_group_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_endurance_group_list \- Endurance Group List .SH SYNOPSIS diff --git a/doc/man/nvme_id_independent_id_ns.2 b/doc/man/nvme_id_independent_id_ns.2 index 24db015..48445f7 100644 --- a/doc/man/nvme_id_independent_id_ns.2 +++ b/doc/man/nvme_id_independent_id_ns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_independent_id_ns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_independent_id_ns" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_independent_id_ns \- Identify - I/O Command Set Independent Identify Namespace Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_id_iocs.2 b/doc/man/nvme_id_iocs.2 index 3670e62..f30f31f 100644 --- a/doc/man/nvme_id_iocs.2 +++ b/doc/man/nvme_id_iocs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_iocs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_iocs" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_iocs \- NVMe Identify IO Command Set data structure .SH SYNOPSIS diff --git a/doc/man/nvme_id_iocs_iocsc.2 b/doc/man/nvme_id_iocs_iocsc.2 new file mode 100644 index 0000000..ee25871 --- /dev/null +++ b/doc/man/nvme_id_iocs_iocsc.2 @@ -0,0 +1,70 @@ +.TH "libnvme" 9 "enum nvme_id_iocs_iocsc" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_iocs_iocsc \- This field indicates the Identify I/O Command Set Data Structure +.SH SYNOPSIS +enum nvme_id_iocs_iocsc { +.br +.BI " NVME_IOCS_IOCSC_NVMCS_SHIFT" +, +.br +.br +.BI " NVME_IOCS_IOCSC_NVMCS_MASK" +, +.br +.br +.BI " NVME_IOCS_IOCSC_KVCS_SHIFT" +, +.br +.br +.BI " NVME_IOCS_IOCSC_KVCS_MASK" +, +.br +.br +.BI " NVME_IOCS_IOCSC_ZNSCS_SHIFT" +, +.br +.br +.BI " NVME_IOCS_IOCSC_ZNSCS_MASK" +, +.br +.br +.BI " NVME_IOCS_IOCSC_SLMCS_SHIFT" +, +.br +.br +.BI " NVME_IOCS_IOCSC_SLMCS_MASK" +, +.br +.br +.BI " NVME_IOCS_IOCSC_CPNCS_SHIFT" +, +.br +.br +.BI " NVME_IOCS_IOCSC_CPNCS_MASK" + +}; +.SH Constants +.IP "NVME_IOCS_IOCSC_NVMCS_SHIFT" 12 +Shift amount to get the value of NVM Command Set +.IP "NVME_IOCS_IOCSC_NVMCS_MASK" 12 +Mask to get the value of NVM Command Set +.IP "NVME_IOCS_IOCSC_KVCS_SHIFT" 12 +Shift amount to get the value of Key Value Command Set +.IP "NVME_IOCS_IOCSC_KVCS_MASK" 12 +Mask to get the value of Key Value Command Set +.IP "NVME_IOCS_IOCSC_ZNSCS_SHIFT" 12 +Shift amount to get the value of Zoned Namespace Command +Set +.IP "NVME_IOCS_IOCSC_ZNSCS_MASK" 12 +Mask to get the value of Zoned Namespace Command Set +.IP "NVME_IOCS_IOCSC_SLMCS_SHIFT" 12 +Shift amount to get the value of Subsystem Local Memory +Command Set +.IP "NVME_IOCS_IOCSC_SLMCS_MASK" 12 +Mask to get the value of Subsystem Local Memory Command Set +.IP "NVME_IOCS_IOCSC_CPNCS_SHIFT" 12 +Shift amount to get the value of Computational Programs +Namespace Command Set +.IP "NVME_IOCS_IOCSC_CPNCS_MASK" 12 +Mask to get the value of Computational Programs Namespace +Command Set diff --git a/doc/man/nvme_id_ns.2 b/doc/man/nvme_id_ns.2 index 29a4494..bc73a59 100644 --- a/doc/man/nvme_id_ns.2 +++ b/doc/man/nvme_id_ns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_ns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ns" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_ns \- Identify Namespace data structure .SH SYNOPSIS @@ -62,11 +62,15 @@ struct nvme_id_ns { .br .BI " __u8 msrc;" .br -.BI " __u8 rsvd81;" +.BI " __u8 kpios;" .br .BI " __u8 nulbaf;" .br -.BI " __u8 rsvd83[9];" +.BI " __u8 rsvd83;" +.br +.BI " __le32 kpiodaag;" +.br +.BI " __u8 rsvd88[4];" .br .BI " __le32 anagrpid;" .br @@ -193,8 +197,8 @@ blocks that may be specified in a Copy command. Maximum Source Range Count indicates the maximum number of Source Range entries that may be used to specify source data in a Copy command. This is a 0’s based value. -.IP "rsvd81" 12 -Reserved +.IP "kpios" 12 +Key Per I/O Status indicates namespace Key Per I/O capability status. .IP "nulbaf" 12 Number of Unique Capability LBA Formats defines the number of supported user data size and metadata size combinations supported @@ -202,6 +206,12 @@ by the namespace that may not share the same capabilities. LBA formats shall be allocated in order and packed sequentially. .IP "rsvd83" 12 Reserved +.IP "kpiodaag" 12 +Key Per I/O Data Access Alignment and Granularity indicates the +alignment and granularity in logical blocks that is required +for commands that support a KPIOTAG value in the CETYPE field. +.IP "rsvd88" 12 +Reserved .IP "anagrpid" 12 ANA Group Identifier indicates the ANA Group Identifier of the ANA group of which the namespace is a member. diff --git a/doc/man/nvme_id_ns_attr.2 b/doc/man/nvme_id_ns_attr.2 index edb8bb9..2aabf10 100644 --- a/doc/man/nvme_id_ns_attr.2 +++ b/doc/man/nvme_id_ns_attr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_attr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_attr" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_attr \- Specifies attributes of the namespace. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_dlfeat.2 b/doc/man/nvme_id_ns_dlfeat.2 index 4c19580..51aa18c 100644 --- a/doc/man/nvme_id_ns_dlfeat.2 +++ b/doc/man/nvme_id_ns_dlfeat.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_dlfeat" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_dlfeat" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_dlfeat \- This field indicates information about features that affect deallocating logical blocks for this namespace. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_dpc.2 b/doc/man/nvme_id_ns_dpc.2 index c1356cb..564a0cf 100644 --- a/doc/man/nvme_id_ns_dpc.2 +++ b/doc/man/nvme_id_ns_dpc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_dpc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_dpc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_dpc \- This field indicates the capabilities for the end-to-end data protection feature. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_dps.2 b/doc/man/nvme_id_ns_dps.2 index a4d1db4..690de6b 100644 --- a/doc/man/nvme_id_ns_dps.2 +++ b/doc/man/nvme_id_ns_dps.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_dps" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_dps" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_dps \- This field indicates the Type settings for the end-to-end data protection feature. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_flbas.2 b/doc/man/nvme_id_ns_flbas.2 index 6258a95..45211b4 100644 --- a/doc/man/nvme_id_ns_flbas.2 +++ b/doc/man/nvme_id_ns_flbas.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_flbas" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_flbas" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_flbas \- This field indicates the LBA data size & metadata size combination that the namespace has been formatted with .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_granularity_desc.2 b/doc/man/nvme_id_ns_granularity_desc.2 index 37796ae..15ef466 100644 --- a/doc/man/nvme_id_ns_granularity_desc.2 +++ b/doc/man/nvme_id_ns_granularity_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_ns_granularity_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ns_granularity_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_ns_granularity_desc \- Namespace Granularity Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_granularity_list.2 b/doc/man/nvme_id_ns_granularity_list.2 index 88c1011..1a6e7b3 100644 --- a/doc/man/nvme_id_ns_granularity_list.2 +++ b/doc/man/nvme_id_ns_granularity_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_ns_granularity_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ns_granularity_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_ns_granularity_list \- Namespace Granularity List .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_mc.2 b/doc/man/nvme_id_ns_mc.2 index 977a8ed..ae94b5c 100644 --- a/doc/man/nvme_id_ns_mc.2 +++ b/doc/man/nvme_id_ns_mc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_mc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_mc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_mc \- This field indicates the capabilities for metadata. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_nmic.2 b/doc/man/nvme_id_ns_nmic.2 index 8e83cb5..f31e55a 100644 --- a/doc/man/nvme_id_ns_nmic.2 +++ b/doc/man/nvme_id_ns_nmic.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_nmic" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_nmic" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_nmic \- This field specifies multi-path I/O and namespace sharing capabilities of the namespace. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_rescap.2 b/doc/man/nvme_id_ns_rescap.2 index 9550959..6539508 100644 --- a/doc/man/nvme_id_ns_rescap.2 +++ b/doc/man/nvme_id_ns_rescap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_rescap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_rescap" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_rescap \- This field indicates the reservation capabilities of the namespace. .SH SYNOPSIS diff --git a/doc/man/nvme_id_nsfeat.2 b/doc/man/nvme_id_nsfeat.2 index 5f91d6d..60864e1 100644 --- a/doc/man/nvme_id_nsfeat.2 +++ b/doc/man/nvme_id_nsfeat.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_nsfeat" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_nsfeat" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_nsfeat \- This field defines features of the namespace. .SH SYNOPSIS diff --git a/doc/man/nvme_id_nvmset_list.2 b/doc/man/nvme_id_nvmset_list.2 index 09a730f..7f8da78 100644 --- a/doc/man/nvme_id_nvmset_list.2 +++ b/doc/man/nvme_id_nvmset_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_nvmset_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_nvmset_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_nvmset_list \- NVM set list .SH SYNOPSIS diff --git a/doc/man/nvme_id_psd.2 b/doc/man/nvme_id_psd.2 index 93c5274..5a707b7 100644 --- a/doc/man/nvme_id_psd.2 +++ b/doc/man/nvme_id_psd.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_psd" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_psd" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_psd \- Power Management data structure .SH SYNOPSIS @@ -32,7 +32,17 @@ struct nvme_id_psd { .br .BI " __u8 apws;" .br -.BI " __u8 rsvd23[9];" +.BI " __u8 epfrt;" +.br +.BI " __u8 fqvt;" +.br +.BI " __u8 epfvt;" +.br +.BI " __u8 epfr_fqv_ts;" +.br +.BI " __u8 epfvts;" +.br +.BI " __u8 rsvd28[4];" .br .BI " }; @@ -91,5 +101,16 @@ nvme_id_psd\fP.actp, see \fIenum nvme_psd_ps\fP for decoding this value. Bits 2-0: Active Power Workload(APW) indicates the workload used to calculate maximum power for this power state. See \fIenum nvme_psd_workload\fP for decoding this field. -.IP "rsvd23" 12 +.IP "epfrt" 12 +Emergency power fail recovery time +.IP "fqvt" 12 +Forced quiescence vault time +.IP "epfvt" 12 +Emergency power fail vault time +.IP "epfr_fqv_ts" 12 +Bits 7-4: Forced quiescence vault time scale +Bits 3-0: Emergency power fail recovery time scale +.IP "epfvts" 12 +Bits 3-0: Emergency power fail vault time scale +.IP "rsvd28" 12 Reserved diff --git a/doc/man/nvme_id_uuid.2 b/doc/man/nvme_id_uuid.2 index 2164fac..de19640 100644 --- a/doc/man/nvme_id_uuid.2 +++ b/doc/man/nvme_id_uuid.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_uuid" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_uuid" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_uuid \- Identifier Association .SH SYNOPSIS diff --git a/doc/man/nvme_id_uuid_list.2 b/doc/man/nvme_id_uuid_list.2 index 9bda533..33393e9 100644 --- a/doc/man/nvme_id_uuid_list.2 +++ b/doc/man/nvme_id_uuid_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_uuid_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_uuid_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_uuid_list \- UUID list .SH SYNOPSIS diff --git a/doc/man/nvme_id_uuid_list_entry.2 b/doc/man/nvme_id_uuid_list_entry.2 index 46b1569..696fbe2 100644 --- a/doc/man/nvme_id_uuid_list_entry.2 +++ b/doc/man/nvme_id_uuid_list_entry.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_uuid_list_entry" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_uuid_list_entry" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_uuid_list_entry \- UUID List Entry .SH SYNOPSIS diff --git a/doc/man/nvme_identify.2 b/doc/man/nvme_identify.2 index 08e3eea..b24f7a3 100644 --- a/doc/man/nvme_identify.2 +++ b/doc/man/nvme_identify.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify" 9 "nvme_identify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify" 9 "nvme_identify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify \- Send the NVMe Identify command .SH SYNOPSIS diff --git a/doc/man/nvme_identify_active_ns_list.2 b/doc/man/nvme_identify_active_ns_list.2 index 2b4a314..ae641f9 100644 --- a/doc/man/nvme_identify_active_ns_list.2 +++ b/doc/man/nvme_identify_active_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_active_ns_list" 9 "nvme_identify_active_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_active_ns_list" 9 "nvme_identify_active_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_active_ns_list \- Retrieves active namespaces id list .SH SYNOPSIS diff --git a/doc/man/nvme_identify_active_ns_list_csi.2 b/doc/man/nvme_identify_active_ns_list_csi.2 index 8ac02ec..ba8b012 100644 --- a/doc/man/nvme_identify_active_ns_list_csi.2 +++ b/doc/man/nvme_identify_active_ns_list_csi.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_active_ns_list_csi" 9 "nvme_identify_active_ns_list_csi" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_active_ns_list_csi" 9 "nvme_identify_active_ns_list_csi" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_active_ns_list_csi \- Active namespace ID list associated with a specified I/O command set .SH SYNOPSIS diff --git a/doc/man/nvme_identify_allocated_ns.2 b/doc/man/nvme_identify_allocated_ns.2 index c5a7d2e..d4ccb59 100644 --- a/doc/man/nvme_identify_allocated_ns.2 +++ b/doc/man/nvme_identify_allocated_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_allocated_ns" 9 "nvme_identify_allocated_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_allocated_ns" 9 "nvme_identify_allocated_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_allocated_ns \- Same as nvme_identify_ns, but only for allocated namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_identify_allocated_ns_list.2 b/doc/man/nvme_identify_allocated_ns_list.2 index d98f460..d2bb735 100644 --- a/doc/man/nvme_identify_allocated_ns_list.2 +++ b/doc/man/nvme_identify_allocated_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_allocated_ns_list" 9 "nvme_identify_allocated_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_allocated_ns_list" 9 "nvme_identify_allocated_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_allocated_ns_list \- Retrieves allocated namespace id list .SH SYNOPSIS diff --git a/doc/man/nvme_identify_allocated_ns_list_csi.2 b/doc/man/nvme_identify_allocated_ns_list_csi.2 index b8f9040..493e672 100644 --- a/doc/man/nvme_identify_allocated_ns_list_csi.2 +++ b/doc/man/nvme_identify_allocated_ns_list_csi.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_allocated_ns_list_csi" 9 "nvme_identify_allocated_ns_list_csi" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_allocated_ns_list_csi" 9 "nvme_identify_allocated_ns_list_csi" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_allocated_ns_list_csi \- Allocated namespace ID list associated with a specified I/O command set .SH SYNOPSIS diff --git a/doc/man/nvme_identify_cns.2 b/doc/man/nvme_identify_cns.2 index faf2076..cce9bf1 100644 --- a/doc/man/nvme_identify_cns.2 +++ b/doc/man/nvme_identify_cns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_identify_cns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_identify_cns" "March 2025" "API Manual" LINUX .SH NAME enum nvme_identify_cns \- Identify - CNS Values .SH SYNOPSIS @@ -100,6 +100,18 @@ enum nvme_identify_cns { , .br .br +.BI " NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST" +, +.br +.br +.BI " NVME_IDENTIFY_CNS_PORTS_LIST" +, +.br +.br +.BI " NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS" +, +.br +.br .BI " NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS" }; @@ -164,7 +176,14 @@ ID list I/O Command Set specific ID Namespace Data Structure for Allocated Namespace ID .IP "NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE" 12 -Base Specification 2.0a section 5.17.2.21 +I/O Command Set data structure +.IP "NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST" 12 +Get Underlying Namespace List +.IP "NVME_IDENTIFY_CNS_PORTS_LIST" 12 +Get Ports List +.IP "NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS" 12 +I/O Command Set Independent Identify Namespace data +structure for the specified allocated NSID .IP "NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS" 12 Supported Controller State Formats identifying the supported NVMe Controller diff --git a/doc/man/nvme_identify_ctrl.2 b/doc/man/nvme_identify_ctrl.2 index 91f7ee2..8d6f608 100644 --- a/doc/man/nvme_identify_ctrl.2 +++ b/doc/man/nvme_identify_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ctrl" 9 "nvme_identify_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ctrl" 9 "nvme_identify_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ctrl \- Retrieves nvme identify controller .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ctrl_csi.2 b/doc/man/nvme_identify_ctrl_csi.2 index aaa842f..9bbfdf6 100644 --- a/doc/man/nvme_identify_ctrl_csi.2 +++ b/doc/man/nvme_identify_ctrl_csi.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ctrl_csi" 9 "nvme_identify_ctrl_csi" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ctrl_csi" 9 "nvme_identify_ctrl_csi" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ctrl_csi \- I/O command set specific Identify Controller data .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ctrl_list.2 b/doc/man/nvme_identify_ctrl_list.2 index 1203624..26467ea 100644 --- a/doc/man/nvme_identify_ctrl_list.2 +++ b/doc/man/nvme_identify_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ctrl_list" 9 "nvme_identify_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ctrl_list" 9 "nvme_identify_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ctrl_list \- Retrieves identify controller list .SH SYNOPSIS diff --git a/doc/man/nvme_identify_domain_list.2 b/doc/man/nvme_identify_domain_list.2 index a9757cf..08412bb 100644 --- a/doc/man/nvme_identify_domain_list.2 +++ b/doc/man/nvme_identify_domain_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_domain_list" 9 "nvme_identify_domain_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_domain_list" 9 "nvme_identify_domain_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_domain_list \- Domain list data .SH SYNOPSIS diff --git a/doc/man/nvme_identify_endurance_group_list.2 b/doc/man/nvme_identify_endurance_group_list.2 index 89023fb..3d37fc4 100644 --- a/doc/man/nvme_identify_endurance_group_list.2 +++ b/doc/man/nvme_identify_endurance_group_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_endurance_group_list" 9 "nvme_identify_endurance_group_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_endurance_group_list" 9 "nvme_identify_endurance_group_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_endurance_group_list \- Endurance group list data .SH SYNOPSIS diff --git a/doc/man/nvme_identify_independent_identify_ns.2 b/doc/man/nvme_identify_independent_identify_ns.2 index 247573f..dc117a2 100644 --- a/doc/man/nvme_identify_independent_identify_ns.2 +++ b/doc/man/nvme_identify_independent_identify_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_independent_identify_ns" 9 "nvme_identify_independent_identify_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_independent_identify_ns" 9 "nvme_identify_independent_identify_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_independent_identify_ns \- I/O command set independent Identify namespace data .SH SYNOPSIS diff --git a/doc/man/nvme_identify_iocs.2 b/doc/man/nvme_identify_iocs.2 index 0830eb2..030200f 100644 --- a/doc/man/nvme_identify_iocs.2 +++ b/doc/man/nvme_identify_iocs.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_iocs" 9 "nvme_identify_iocs" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_iocs" 9 "nvme_identify_iocs" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_iocs \- I/O command set data structure .SH SYNOPSIS diff --git a/doc/man/nvme_identify_iocs_ns_csi_user_data_format.2 b/doc/man/nvme_identify_iocs_ns_csi_user_data_format.2 index 50dd37a..06206b4 100644 --- a/doc/man/nvme_identify_iocs_ns_csi_user_data_format.2 +++ b/doc/man/nvme_identify_iocs_ns_csi_user_data_format.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_iocs_ns_csi_user_data_format" 9 "nvme_identify_iocs_ns_csi_user_data_format" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_iocs_ns_csi_user_data_format" 9 "nvme_identify_iocs_ns_csi_user_data_format" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_iocs_ns_csi_user_data_format \- Identify I/O command set namespace data structure .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ns.2 b/doc/man/nvme_identify_ns.2 index 7b3ebbc..28b8de9 100644 --- a/doc/man/nvme_identify_ns.2 +++ b/doc/man/nvme_identify_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ns" 9 "nvme_identify_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ns" 9 "nvme_identify_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ns \- Retrieves nvme identify namespace .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ns_csi.2 b/doc/man/nvme_identify_ns_csi.2 index 79ddcb0..a5b5533 100644 --- a/doc/man/nvme_identify_ns_csi.2 +++ b/doc/man/nvme_identify_ns_csi.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ns_csi" 9 "nvme_identify_ns_csi" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ns_csi" 9 "nvme_identify_ns_csi" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ns_csi \- I/O command set specific identify namespace data .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ns_csi_user_data_format.2 b/doc/man/nvme_identify_ns_csi_user_data_format.2 index cce5da9..3530501 100644 --- a/doc/man/nvme_identify_ns_csi_user_data_format.2 +++ b/doc/man/nvme_identify_ns_csi_user_data_format.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ns_csi_user_data_format" 9 "nvme_identify_ns_csi_user_data_format" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ns_csi_user_data_format" 9 "nvme_identify_ns_csi_user_data_format" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ns_csi_user_data_format \- Identify namespace user data format .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ns_descs.2 b/doc/man/nvme_identify_ns_descs.2 index 2854079..0ab60a4 100644 --- a/doc/man/nvme_identify_ns_descs.2 +++ b/doc/man/nvme_identify_ns_descs.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ns_descs" 9 "nvme_identify_ns_descs" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ns_descs" 9 "nvme_identify_ns_descs" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ns_descs \- Retrieves namespace descriptor list .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ns_granularity.2 b/doc/man/nvme_identify_ns_granularity.2 index 8118664..30e3219 100644 --- a/doc/man/nvme_identify_ns_granularity.2 +++ b/doc/man/nvme_identify_ns_granularity.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ns_granularity" 9 "nvme_identify_ns_granularity" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ns_granularity" 9 "nvme_identify_ns_granularity" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ns_granularity \- Retrieves namespace granularity identification .SH SYNOPSIS diff --git a/doc/man/nvme_identify_nsid_ctrl_list.2 b/doc/man/nvme_identify_nsid_ctrl_list.2 index 96b76ee..e6ec938 100644 --- a/doc/man/nvme_identify_nsid_ctrl_list.2 +++ b/doc/man/nvme_identify_nsid_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_nsid_ctrl_list" 9 "nvme_identify_nsid_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_nsid_ctrl_list" 9 "nvme_identify_nsid_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_nsid_ctrl_list \- Retrieves controller list attached to an nsid .SH SYNOPSIS diff --git a/doc/man/nvme_identify_nvmset_list.2 b/doc/man/nvme_identify_nvmset_list.2 index c4c0c45..031cd5f 100644 --- a/doc/man/nvme_identify_nvmset_list.2 +++ b/doc/man/nvme_identify_nvmset_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_nvmset_list" 9 "nvme_identify_nvmset_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_nvmset_list" 9 "nvme_identify_nvmset_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_nvmset_list \- Retrieves NVM Set List .SH SYNOPSIS diff --git a/doc/man/nvme_identify_primary_ctrl.2 b/doc/man/nvme_identify_primary_ctrl.2 index b11f67d..375b23f 100644 --- a/doc/man/nvme_identify_primary_ctrl.2 +++ b/doc/man/nvme_identify_primary_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_primary_ctrl" 9 "nvme_identify_primary_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_primary_ctrl" 9 "nvme_identify_primary_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_primary_ctrl \- Retrieve NVMe Primary Controller identification .SH SYNOPSIS diff --git a/doc/man/nvme_identify_secondary_ctrl_list.2 b/doc/man/nvme_identify_secondary_ctrl_list.2 index 6290d84..1967d14 100644 --- a/doc/man/nvme_identify_secondary_ctrl_list.2 +++ b/doc/man/nvme_identify_secondary_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_secondary_ctrl_list" 9 "nvme_identify_secondary_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_secondary_ctrl_list" 9 "nvme_identify_secondary_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_secondary_ctrl_list \- Retrieves secondary controller list .SH SYNOPSIS diff --git a/doc/man/nvme_identify_uuid.2 b/doc/man/nvme_identify_uuid.2 index b89da11..8f2b79b 100644 --- a/doc/man/nvme_identify_uuid.2 +++ b/doc/man/nvme_identify_uuid.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_uuid" 9 "nvme_identify_uuid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_uuid" 9 "nvme_identify_uuid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_uuid \- Retrieves device's UUIDs .SH SYNOPSIS diff --git a/doc/man/nvme_import_tls_key.2 b/doc/man/nvme_import_tls_key.2 index 04b59ef..1e93f3a 100644 --- a/doc/man/nvme_import_tls_key.2 +++ b/doc/man/nvme_import_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_import_tls_key" 9 "nvme_import_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_import_tls_key" 9 "nvme_import_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_import_tls_key \- Import a TLS key .SH SYNOPSIS diff --git a/doc/man/nvme_import_tls_key_versioned.2 b/doc/man/nvme_import_tls_key_versioned.2 index c8d1adf..d951053 100644 --- a/doc/man/nvme_import_tls_key_versioned.2 +++ b/doc/man/nvme_import_tls_key_versioned.2 @@ -1,4 +1,4 @@ -.TH "nvme_import_tls_key_versioned" 9 "nvme_import_tls_key_versioned" "November 2024" "libnvme API manual" LINUX +.TH "nvme_import_tls_key_versioned" 9 "nvme_import_tls_key_versioned" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_import_tls_key_versioned \- Import a TLS key .SH SYNOPSIS diff --git a/doc/man/nvme_init_copy_range.2 b/doc/man/nvme_init_copy_range.2 index 7dbf155..c828b07 100644 --- a/doc/man/nvme_init_copy_range.2 +++ b/doc/man/nvme_init_copy_range.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_copy_range" 9 "nvme_init_copy_range" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_copy_range" 9 "nvme_init_copy_range" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_copy_range \- Constructs a copy range structure .SH SYNOPSIS diff --git a/doc/man/nvme_init_copy_range_f1.2 b/doc/man/nvme_init_copy_range_f1.2 index c8ed463..48b32cf 100644 --- a/doc/man/nvme_init_copy_range_f1.2 +++ b/doc/man/nvme_init_copy_range_f1.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_copy_range_f1" 9 "nvme_init_copy_range_f1" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_copy_range_f1" 9 "nvme_init_copy_range_f1" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_copy_range_f1 \- Constructs a copy range f1 structure .SH SYNOPSIS diff --git a/doc/man/nvme_init_copy_range_f2.2 b/doc/man/nvme_init_copy_range_f2.2 index ad88c09..d389a4e 100644 --- a/doc/man/nvme_init_copy_range_f2.2 +++ b/doc/man/nvme_init_copy_range_f2.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_copy_range_f2" 9 "nvme_init_copy_range_f2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_copy_range_f2" 9 "nvme_init_copy_range_f2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_copy_range_f2 \- Constructs a copy range f2 structure .SH SYNOPSIS diff --git a/doc/man/nvme_init_copy_range_f3.2 b/doc/man/nvme_init_copy_range_f3.2 index fd790d3..e8b4d1d 100644 --- a/doc/man/nvme_init_copy_range_f3.2 +++ b/doc/man/nvme_init_copy_range_f3.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_copy_range_f3" 9 "nvme_init_copy_range_f3" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_copy_range_f3" 9 "nvme_init_copy_range_f3" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_copy_range_f3 \- Constructs a copy range f3 structure .SH SYNOPSIS diff --git a/doc/man/nvme_init_ctrl.2 b/doc/man/nvme_init_ctrl.2 index c5f14bd..f3f2a03 100644 --- a/doc/man/nvme_init_ctrl.2 +++ b/doc/man/nvme_init_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_ctrl" 9 "nvme_init_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_ctrl" 9 "nvme_init_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_ctrl \- Initialize nvme_ctrl_t object for an existing controller. .SH SYNOPSIS diff --git a/doc/man/nvme_init_ctrl_list.2 b/doc/man/nvme_init_ctrl_list.2 index d1033b5..1211b90 100644 --- a/doc/man/nvme_init_ctrl_list.2 +++ b/doc/man/nvme_init_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_ctrl_list" 9 "nvme_init_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_ctrl_list" 9 "nvme_init_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_ctrl_list \- Initialize an nvme_ctrl_list structure from an array. .SH SYNOPSIS diff --git a/doc/man/nvme_init_default_logging.2 b/doc/man/nvme_init_default_logging.2 index b010b10..c8276ac 100644 --- a/doc/man/nvme_init_default_logging.2 +++ b/doc/man/nvme_init_default_logging.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_default_logging" 9 "nvme_init_default_logging" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_default_logging" 9 "nvme_init_default_logging" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_default_logging \- Initialize default (fallback) logging .SH SYNOPSIS diff --git a/doc/man/nvme_init_dsm_range.2 b/doc/man/nvme_init_dsm_range.2 index 453a277..f4074b8 100644 --- a/doc/man/nvme_init_dsm_range.2 +++ b/doc/man/nvme_init_dsm_range.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_dsm_range" 9 "nvme_init_dsm_range" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_dsm_range" 9 "nvme_init_dsm_range" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_dsm_range \- Constructs a data set range structure .SH SYNOPSIS diff --git a/doc/man/nvme_init_logging.2 b/doc/man/nvme_init_logging.2 index e523bf3..8cabe25 100644 --- a/doc/man/nvme_init_logging.2 +++ b/doc/man/nvme_init_logging.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_logging" 9 "nvme_init_logging" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_logging" 9 "nvme_init_logging" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_logging \- Initialize logging .SH SYNOPSIS diff --git a/doc/man/nvme_insert_tls_key.2 b/doc/man/nvme_insert_tls_key.2 index 0a14137..0d90b30 100644 --- a/doc/man/nvme_insert_tls_key.2 +++ b/doc/man/nvme_insert_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_insert_tls_key" 9 "nvme_insert_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_insert_tls_key" 9 "nvme_insert_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_insert_tls_key \- Derive and insert TLS key .SH SYNOPSIS diff --git a/doc/man/nvme_insert_tls_key_versioned.2 b/doc/man/nvme_insert_tls_key_versioned.2 index 9bb86dd..cff7a6c 100644 --- a/doc/man/nvme_insert_tls_key_versioned.2 +++ b/doc/man/nvme_insert_tls_key_versioned.2 @@ -1,4 +1,4 @@ -.TH "nvme_insert_tls_key_versioned" 9 "nvme_insert_tls_key_versioned" "November 2024" "libnvme API manual" LINUX +.TH "nvme_insert_tls_key_versioned" 9 "nvme_insert_tls_key_versioned" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_insert_tls_key_versioned \- Derive and insert TLS key .SH SYNOPSIS diff --git a/doc/man/nvme_io.2 b/doc/man/nvme_io.2 index 5212748..c12063c 100644 --- a/doc/man/nvme_io.2 +++ b/doc/man/nvme_io.2 @@ -1,4 +1,4 @@ -.TH "nvme_io" 9 "nvme_io" "November 2024" "libnvme API manual" LINUX +.TH "nvme_io" 9 "nvme_io" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_io \- Submit an nvme user I/O command .SH SYNOPSIS diff --git a/doc/man/nvme_io_control_flags.2 b/doc/man/nvme_io_control_flags.2 index db5344d..896c4cb 100644 --- a/doc/man/nvme_io_control_flags.2 +++ b/doc/man/nvme_io_control_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_io_control_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_control_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_io_control_flags \- I/O control flags .SH SYNOPSIS @@ -8,6 +8,10 @@ enum nvme_io_control_flags { , .br .br +.BI " NVME_IO_NSZ" +, +.br +.br .BI " NVME_IO_STC" , .br @@ -46,6 +50,8 @@ enum nvme_io_control_flags { .SH Constants .IP "NVME_IO_DTYPE_STREAMS" 12 Directive Type Streams +.IP "NVME_IO_NSZ" 12 +Namespace Zeroes .IP "NVME_IO_STC" 12 Storage Tag Check .IP "NVME_IO_DEAC" 12 diff --git a/doc/man/nvme_io_dsm_flags.2 b/doc/man/nvme_io_dsm_flags.2 index 372ad38..0de2684 100644 --- a/doc/man/nvme_io_dsm_flags.2 +++ b/doc/man/nvme_io_dsm_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_io_dsm_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_dsm_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_io_dsm_flags \- Dataset Management flags .SH SYNOPSIS diff --git a/doc/man/nvme_io_mgmt_recv.2 b/doc/man/nvme_io_mgmt_recv.2 index 53556fe..c394dbf 100644 --- a/doc/man/nvme_io_mgmt_recv.2 +++ b/doc/man/nvme_io_mgmt_recv.2 @@ -1,4 +1,4 @@ -.TH "nvme_io_mgmt_recv" 9 "nvme_io_mgmt_recv" "November 2024" "libnvme API manual" LINUX +.TH "nvme_io_mgmt_recv" 9 "nvme_io_mgmt_recv" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_io_mgmt_recv \- I/O Management Receive command .SH SYNOPSIS diff --git a/doc/man/nvme_io_mgmt_recv_mo.2 b/doc/man/nvme_io_mgmt_recv_mo.2 index 76bdd4c..90b0254 100644 --- a/doc/man/nvme_io_mgmt_recv_mo.2 +++ b/doc/man/nvme_io_mgmt_recv_mo.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_io_mgmt_recv_mo" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_mgmt_recv_mo" "March 2025" "API Manual" LINUX .SH NAME enum nvme_io_mgmt_recv_mo \- I/O Management Receive - Management Operation .SH SYNOPSIS diff --git a/doc/man/nvme_io_mgmt_send.2 b/doc/man/nvme_io_mgmt_send.2 index a0d2cb6..97b1201 100644 --- a/doc/man/nvme_io_mgmt_send.2 +++ b/doc/man/nvme_io_mgmt_send.2 @@ -1,4 +1,4 @@ -.TH "nvme_io_mgmt_send" 9 "nvme_io_mgmt_send" "November 2024" "libnvme API manual" LINUX +.TH "nvme_io_mgmt_send" 9 "nvme_io_mgmt_send" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_io_mgmt_send \- I/O Management Send command .SH SYNOPSIS diff --git a/doc/man/nvme_io_mgmt_send_mo.2 b/doc/man/nvme_io_mgmt_send_mo.2 index e2c0cad..7e03620 100644 --- a/doc/man/nvme_io_mgmt_send_mo.2 +++ b/doc/man/nvme_io_mgmt_send_mo.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_io_mgmt_send_mo" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_mgmt_send_mo" "March 2025" "API Manual" LINUX .SH NAME enum nvme_io_mgmt_send_mo \- I/O Management Send - Management Operation .SH SYNOPSIS diff --git a/doc/man/nvme_io_opcode.2 b/doc/man/nvme_io_opcode.2 index db20642..5ce8e84 100644 --- a/doc/man/nvme_io_opcode.2 +++ b/doc/man/nvme_io_opcode.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_io_opcode" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_opcode" "March 2025" "API Manual" LINUX .SH NAME enum nvme_io_opcode \- Opcodes for I/O Commands .SH SYNOPSIS @@ -77,6 +77,10 @@ enum nvme_io_opcode { .br .br .BI " nvme_zns_cmd_append" +, +.br +.br +.BI " nvme_cmd_fabric" }; .SH Constants @@ -118,3 +122,5 @@ Zone Management Send Zone Management Receive .IP "nvme_zns_cmd_append" 12 Zone Append +.IP "nvme_cmd_fabric" 12 +Fabric Commands diff --git a/doc/man/nvme_io_passthru.2 b/doc/man/nvme_io_passthru.2 index ffe8572..a6f2a78 100644 --- a/doc/man/nvme_io_passthru.2 +++ b/doc/man/nvme_io_passthru.2 @@ -1,4 +1,4 @@ -.TH "nvme_io_passthru" 9 "nvme_io_passthru" "November 2024" "libnvme API manual" LINUX +.TH "nvme_io_passthru" 9 "nvme_io_passthru" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_io_passthru \- Submit an nvme io passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_io_passthru64.2 b/doc/man/nvme_io_passthru64.2 index 438506a..641a624 100644 --- a/doc/man/nvme_io_passthru64.2 +++ b/doc/man/nvme_io_passthru64.2 @@ -1,4 +1,4 @@ -.TH "nvme_io_passthru64" 9 "nvme_io_passthru64" "November 2024" "libnvme API manual" LINUX +.TH "nvme_io_passthru64" 9 "nvme_io_passthru64" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_io_passthru64 \- Submit an nvme io passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_is_64bit_reg.2 b/doc/man/nvme_is_64bit_reg.2 index 7b8a22a..2d38dde 100644 --- a/doc/man/nvme_is_64bit_reg.2 +++ b/doc/man/nvme_is_64bit_reg.2 @@ -1,4 +1,4 @@ -.TH "nvme_is_64bit_reg" 9 "nvme_is_64bit_reg" "November 2024" "libnvme API manual" LINUX +.TH "nvme_is_64bit_reg" 9 "nvme_is_64bit_reg" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_is_64bit_reg \- Checks if offset of the controller register is a know 64bit value. .SH SYNOPSIS diff --git a/doc/man/nvme_kv_opcode.2 b/doc/man/nvme_kv_opcode.2 index bb92439..c551571 100644 --- a/doc/man/nvme_kv_opcode.2 +++ b/doc/man/nvme_kv_opcode.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_kv_opcode" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_kv_opcode" "March 2025" "API Manual" LINUX .SH NAME enum nvme_kv_opcode \- Opcodes for KV Commands .SH SYNOPSIS diff --git a/doc/man/nvme_lba_range_type.2 b/doc/man/nvme_lba_range_type.2 index dec5a71..4a83ae3 100644 --- a/doc/man/nvme_lba_range_type.2 +++ b/doc/man/nvme_lba_range_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_range_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_range_type" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_range_type \- LBA Range Type .SH SYNOPSIS diff --git a/doc/man/nvme_lba_range_type_entry.2 b/doc/man/nvme_lba_range_type_entry.2 index e1c1a50..d5d6998 100644 --- a/doc/man/nvme_lba_range_type_entry.2 +++ b/doc/man/nvme_lba_range_type_entry.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_range_type_entry" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_range_type_entry" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_range_type_entry \- LBA Range Type - Data Structure Entry .SH SYNOPSIS diff --git a/doc/man/nvme_lba_rd.2 b/doc/man/nvme_lba_rd.2 index 4d2c0b2..c2f4b3b 100644 --- a/doc/man/nvme_lba_rd.2 +++ b/doc/man/nvme_lba_rd.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_rd" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_rd" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_rd \- LBA Range Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status.2 b/doc/man/nvme_lba_status.2 index c7df93a..c47d3d2 100644 --- a/doc/man/nvme_lba_status.2 +++ b/doc/man/nvme_lba_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_status \- LBA Status Descriptor List .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status_atype.2 b/doc/man/nvme_lba_status_atype.2 index 03418c8..d24ef3d 100644 --- a/doc/man/nvme_lba_status_atype.2 +++ b/doc/man/nvme_lba_status_atype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lba_status_atype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lba_status_atype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lba_status_atype \- Action type the controller uses to return LBA status .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status_cmpc.2 b/doc/man/nvme_lba_status_cmpc.2 index 84b053b..1673017 100644 --- a/doc/man/nvme_lba_status_cmpc.2 +++ b/doc/man/nvme_lba_status_cmpc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lba_status_cmpc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lba_status_cmpc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lba_status_cmpc \- Get LBA Status Command Completion Condition .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status_desc.2 b/doc/man/nvme_lba_status_desc.2 index 342db20..5db0af7 100644 --- a/doc/man/nvme_lba_status_desc.2 +++ b/doc/man/nvme_lba_status_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_status_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_status_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_status_desc \- LBA Status Descriptor Entry .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status_log.2 b/doc/man/nvme_lba_status_log.2 index 771dc54..867868d 100644 --- a/doc/man/nvme_lba_status_log.2 +++ b/doc/man/nvme_lba_status_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_status_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_status_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_status_log \- LBA Status Information Log .SH SYNOPSIS diff --git a/doc/man/nvme_lbaf.2 b/doc/man/nvme_lbaf.2 index 71f39ba..c3fa5cd 100644 --- a/doc/man/nvme_lbaf.2 +++ b/doc/man/nvme_lbaf.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lbaf" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lbaf" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lbaf \- LBA Format Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_lbaf_rp.2 b/doc/man/nvme_lbaf_rp.2 index bdee45b..1aa1774 100644 --- a/doc/man/nvme_lbaf_rp.2 +++ b/doc/man/nvme_lbaf_rp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lbaf_rp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lbaf_rp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lbaf_rp \- This field indicates the relative performance of the LBA format indicated relative to other LBA formats supported by the controller. .SH SYNOPSIS diff --git a/doc/man/nvme_lbart.2 b/doc/man/nvme_lbart.2 index 6f2afe0..379cf70 100644 --- a/doc/man/nvme_lbart.2 +++ b/doc/man/nvme_lbart.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lbart" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lbart" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lbart \- LBA Range Type - Data Structure Entry .SH SYNOPSIS diff --git a/doc/man/nvme_lbas_ns_element.2 b/doc/man/nvme_lbas_ns_element.2 index 89f6d77..40c0255 100644 --- a/doc/man/nvme_lbas_ns_element.2 +++ b/doc/man/nvme_lbas_ns_element.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lbas_ns_element" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lbas_ns_element" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lbas_ns_element \- LBA Status Log Namespace Element .SH SYNOPSIS diff --git a/doc/man/nvme_lm_cdq.2 b/doc/man/nvme_lm_cdq.2 new file mode 100644 index 0000000..3892343 --- /dev/null +++ b/doc/man/nvme_lm_cdq.2 @@ -0,0 +1,12 @@ +.TH "nvme_lm_cdq" 9 "nvme_lm_cdq" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_lm_cdq \- Controller Data Queue - Controller Data Queue command +.SH SYNOPSIS +.B "int" nvme_lm_cdq +.BI "(struct nvme_lm_cdq_args *args " ");" +.SH ARGUMENTS +.IP "args" 12 +\fIstruct nvme_lm_cdq_args\fP argument structure +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise.) diff --git a/doc/man/nvme_lm_cdq_fields.2 b/doc/man/nvme_lm_cdq_fields.2 new file mode 100644 index 0000000..8ed0146 --- /dev/null +++ b/doc/man/nvme_lm_cdq_fields.2 @@ -0,0 +1,104 @@ +.TH "libnvme" 9 "enum nvme_lm_cdq_fields" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_cdq_fields \- Controller Data Queue command fields +.SH SYNOPSIS +enum nvme_lm_cdq_fields { +.br +.BI " NVME_LM_CDQ_MOS_SHIFT" +, +.br +.br +.BI " NVME_LM_CDQ_MOS_MASK" +, +.br +.br +.BI " NVME_LM_CDQ_SEL_SHIFT" +, +.br +.br +.BI " NVME_LM_CDQ_SEL_MASK" +, +.br +.br +.BI " NVME_LM_SEL_CREATE_CDQ" +, +.br +.br +.BI " NVME_LM_SEL_DELETE_CDQ" +, +.br +.br +.BI " NVME_LM_QT_SHIFT" +, +.br +.br +.BI " NVME_LM_QT_MASK" +, +.br +.br +.BI " NVME_LM_QT_USER_DATA_MIGRATION_QUEUE" +, +.br +.br +.BI " NVME_LM_CREATE_CDQ_PC" +, +.br +.br +.BI " NVME_LM_CREATE_CDQ_CNTLID_SHIFT" +, +.br +.br +.BI " NVME_LM_CREATE_CDQ_CNTLID_MASK" +, +.br +.br +.BI " NVME_LM_DELETE_CDQ_CDQID_SHIFT" +, +.br +.br +.BI " NVME_LM_DELETE_CDQ_CDQID_MASK" +, +.br +.br +.BI " NVME_LM_CREATE_CDQ_CDQID_SHIFT" +, +.br +.br +.BI " NVME_LM_CREATE_CDQ_CDQID_MASK" + +}; +.SH Constants +.IP "NVME_LM_CDQ_MOS_SHIFT" 12 +Shift to set Management Operation Specific (MOS) field +.IP "NVME_LM_CDQ_MOS_MASK" 12 +Mask to set MOS field +.IP "NVME_LM_CDQ_SEL_SHIFT" 12 +Shift to set Select (SEL) field +.IP "NVME_LM_CDQ_SEL_MASK" 12 +Mask to set SEL field +.IP "NVME_LM_SEL_CREATE_CDQ" 12 +Create CDQ select option +.IP "NVME_LM_SEL_DELETE_CDQ" 12 +Delete CDQ select option +.IP "NVME_LM_QT_SHIFT" 12 +Shift amount to set Queue Type (QT) field relative to MOS +.IP "NVME_LM_QT_MASK" 12 +Mask to set QT field relative to MOS +.IP "NVME_LM_QT_USER_DATA_MIGRATION_QUEUE" 12 +User Data Migration Queue type +.IP "NVME_LM_CREATE_CDQ_PC" 12 +Physically Contiguous (PC) +.IP "NVME_LM_CREATE_CDQ_CNTLID_SHIFT" 12 +Shift amount to set CNTLID field relative to MOS +.IP "NVME_LM_CREATE_CDQ_CNTLID_MASK" 12 +Mask to set CNTLID field relative to MOS +.IP "NVME_LM_DELETE_CDQ_CDQID_SHIFT" 12 +Shift amount to set CDQID field for deletion +.IP "NVME_LM_DELETE_CDQ_CDQID_MASK" 12 +Mask to set CDQID field for deletion +.IP "NVME_LM_CREATE_CDQ_CDQID_SHIFT" 12 +Shift amount to get CDQID field from Create response in +completion dword0 +.IP "NVME_LM_CREATE_CDQ_CDQID_MASK" 12 +Mask to get CNTLID field from Create response in +completion dword0 diff --git a/doc/man/nvme_lm_controller_state_data.2 b/doc/man/nvme_lm_controller_state_data.2 new file mode 100644 index 0000000..08903e1 --- /dev/null +++ b/doc/man/nvme_lm_controller_state_data.2 @@ -0,0 +1,19 @@ +.TH "libnvme" 9 "struct nvme_lm_controller_state_data" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_controller_state_data \- Controller State data structure contains data on the controller's state. +.SH SYNOPSIS +struct nvme_lm_controller_state_data { +.br +.BI " struct nvme_lm_controller_state_data_header hdr;" +.br +.BI " struct nvme_lm_nvme_controller_state_data data;" +.br +.BI " +}; +.br + +.SH Members +.IP "hdr" 12 +Header +.IP "data" 12 +Data diff --git a/doc/man/nvme_lm_controller_state_data_header.2 b/doc/man/nvme_lm_controller_state_data_header.2 new file mode 100644 index 0000000..940664c --- /dev/null +++ b/doc/man/nvme_lm_controller_state_data_header.2 @@ -0,0 +1,31 @@ +.TH "libnvme" 9 "struct nvme_lm_controller_state_data_header" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_controller_state_data_header \- Controller State data header structure describes the contents of the Controller State data +.SH SYNOPSIS +struct nvme_lm_controller_state_data_header { +.br +.BI " __le16 ver;" +.br +.BI " __u8 csattr;" +.br +.BI " __u8 rsvd3[13];" +.br +.BI " __u8 nvmecss[16];" +.br +.BI " __u8 vss[16];" +.br +.BI " +}; +.br + +.SH Members +.IP "ver" 12 +Version of this data structure +.IP "csattr" 12 +Controller state attributes +.IP "rsvd3" 12 +Reserved +.IP "nvmecss" 12 +NVMe Controller state size in dwords +.IP "vss" 12 +Vendor specific size in dowrds diff --git a/doc/man/nvme_lm_ctrl_data_queue_fid.2 b/doc/man/nvme_lm_ctrl_data_queue_fid.2 new file mode 100644 index 0000000..ccbd97a --- /dev/null +++ b/doc/man/nvme_lm_ctrl_data_queue_fid.2 @@ -0,0 +1,18 @@ +.TH "libnvme" 9 "enum nvme_lm_ctrl_data_queue_fid" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_ctrl_data_queue_fid \- Controller Data Queue - Set Feature +.SH SYNOPSIS +enum nvme_lm_ctrl_data_queue_fid { +.br +.BI " NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK" +, +.br +.br +.BI " NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT" + +}; +.SH Constants +.IP "NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK" 12 +Mask to set Enable Tail Pointer Trigger (ETPT) +.IP "NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT" 12 +Shift to set ETPT diff --git a/doc/man/nvme_lm_ctrl_data_queue_fid_data.2 b/doc/man/nvme_lm_ctrl_data_queue_fid_data.2 new file mode 100644 index 0000000..93c4825 --- /dev/null +++ b/doc/man/nvme_lm_ctrl_data_queue_fid_data.2 @@ -0,0 +1,19 @@ +.TH "libnvme" 9 "struct nvme_lm_ctrl_data_queue_fid_data" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_ctrl_data_queue_fid_data \- Get Controller Data Queue feature data +.SH SYNOPSIS +struct nvme_lm_ctrl_data_queue_fid_data { +.br +.BI " __le32 hp;" +.br +.BI " __le32 tpt;" +.br +.BI " +}; +.br + +.SH Members +.IP "hp" 12 +Head Pointer +.IP "tpt" 12 +Tail Pointer Trigger diff --git a/doc/man/nvme_lm_io_completion_queue_data.2 b/doc/man/nvme_lm_io_completion_queue_data.2 new file mode 100644 index 0000000..4196c9c --- /dev/null +++ b/doc/man/nvme_lm_io_completion_queue_data.2 @@ -0,0 +1,39 @@ +.TH "libnvme" 9 "struct nvme_lm_io_completion_queue_data" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_io_completion_queue_data \- I/O Completion Queue data structure. Fields related to the contents of Create I/O Completion Queue command that created an I/O Completion Queue. +.SH SYNOPSIS +struct nvme_lm_io_completion_queue_data { +.br +.BI " __le64 iocqprp1;" +.br +.BI " __le16 iocqqsize;" +.br +.BI " __le16 iocqqid;" +.br +.BI " __le16 iocqhp;" +.br +.BI " __le16 iocqtp;" +.br +.BI " __le32 iocqa;" +.br +.BI " __u8 rsvd20[4];" +.br +.BI " +}; +.br + +.SH Members +.IP "iocqprp1" 12 +I/O Completion Queue PRP Entry 1 (IOCQPRP1) +.IP "iocqqsize" 12 +I/O Completion Queue Size (IOCQQSIZE) +.IP "iocqqid" 12 +I/O Completion Queue Identifier (IOCQQID) +.IP "iocqhp" 12 +I/O Completion Queue Head Pointer (IOCQHP) +.IP "iocqtp" 12 +I/O Completion Queue Tail Pointer (IOCQTP) +.IP "iocqa" 12 +I/O Completion Queue Attributes (IOCQA) +.IP "rsvd20" 12 +Reserved diff --git a/doc/man/nvme_lm_io_submission_queue_data.2 b/doc/man/nvme_lm_io_submission_queue_data.2 new file mode 100644 index 0000000..2238b26 --- /dev/null +++ b/doc/man/nvme_lm_io_submission_queue_data.2 @@ -0,0 +1,43 @@ +.TH "libnvme" 9 "struct nvme_lm_io_submission_queue_data" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_io_submission_queue_data \- I/O Submission Queue data structure. Fields related to the contents of Create I/O Submission Queue command that created an I/O Submission Queue. +.SH SYNOPSIS +struct nvme_lm_io_submission_queue_data { +.br +.BI " __le64 iosqprp1;" +.br +.BI " __le16 iosqqsize;" +.br +.BI " __le16 iosqqid;" +.br +.BI " __le16 iosqcqid;" +.br +.BI " __le16 iosqa;" +.br +.BI " __le16 iosqhp;" +.br +.BI " __le16 iosqtp;" +.br +.BI " __u8 rsvd20[4];" +.br +.BI " +}; +.br + +.SH Members +.IP "iosqprp1" 12 +I/O Submission PRP Entry 1 (IOSQPRP1) +.IP "iosqqsize" 12 +I/O Submission Queue Size (IOSQQSIZE) +.IP "iosqqid" 12 +I/O Submission Queue Identifier (IOSQQID) +.IP "iosqcqid" 12 +I/O Completion Queue Identifier (IOSQCQID) +.IP "iosqa" 12 +I/O Submission Queue Attributes (IOSQA) +.IP "iosqhp" 12 +I/O Submission Queue Head Pointer (IOSQHP) +.IP "iosqtp" 12 +I/O Submission Queue Tail Pointer (IOSQTP) +.IP "rsvd20" 12 +Reserved diff --git a/doc/man/nvme_lm_migration_recv_fields.2 b/doc/man/nvme_lm_migration_recv_fields.2 new file mode 100644 index 0000000..9003beb --- /dev/null +++ b/doc/man/nvme_lm_migration_recv_fields.2 @@ -0,0 +1,106 @@ +.TH "libnvme" 9 "enum nvme_lm_migration_recv_fields" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_migration_recv_fields \- Migration Receive command fields +.SH SYNOPSIS +enum nvme_lm_migration_recv_fields { +.br +.BI " NVME_LM_MIGRATION_RECV_MOS_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_RECV_MOS_MASK" +, +.br +.br +.BI " NVME_LM_MIGRATION_RECV_SEL_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_RECV_SEL_MASK" +, +.br +.br +.BI " NVME_LM_SEL_GET_CONTROLLER_STATE" +, +.br +.br +.BI " NVME_LM_MIGRATION_RECV_UIDX_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_RECV_UIDX_MASK" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSUP" + +}; +.SH Constants +.IP "NVME_LM_MIGRATION_RECV_MOS_SHIFT" 12 +Shift amount to set Management Specific Operation +(MOS) field +.IP "NVME_LM_MIGRATION_RECV_MOS_MASK" 12 +Mask to set MOS field +.IP "NVME_LM_MIGRATION_RECV_SEL_SHIFT" 12 +Shift amount to set Select (SEL) field +.IP "NVME_LM_MIGRATION_RECV_SEL_MASK" 12 +Mask to set SEL field +.IP "NVME_LM_SEL_GET_CONTROLLER_STATE" 12 +Get Controller State select option +.IP "NVME_LM_MIGRATION_RECV_UIDX_SHIFT" 12 +Shift to set UUID Index (UIDX) +.IP "NVME_LM_MIGRATION_RECV_UIDX_MASK" 12 +Mask to set UIDX +.IP "NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT" 12 +Shift amount to set Controller State Version Index +(CSVI) relative to MOS +.IP "NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK" 12 +Mask to set CSVI relative to MOS +.IP "NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT" 12 +Shift amount to set Controller State UUID Index +Parameter (CSUIDXP) +.IP "NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK" 12 +Mask to set CSUIDXP +.IP "NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT" 12 +Shift amount to set Controller State UUID Index +(CSUUIDI) +.IP "NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK" 12 +Mask to set CSUUIDI +.IP "NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT" 12 +Shift amount to set Controller ID (CNTLID) +.IP "NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK" 12 +Mask to set CNTLID +.IP "NVME_LM_GET_CONTROLLER_STATE_CSUP" 12 +Controller Suspended diff --git a/doc/man/nvme_lm_migration_send.2 b/doc/man/nvme_lm_migration_send.2 new file mode 100644 index 0000000..2832ea8 --- /dev/null +++ b/doc/man/nvme_lm_migration_send.2 @@ -0,0 +1,12 @@ +.TH "nvme_lm_migration_send" 9 "nvme_lm_migration_send" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_lm_migration_send \- Migration Send command +.SH SYNOPSIS +.B "int" nvme_lm_migration_send +.BI "(struct nvme_lm_migration_send_args *args " ");" +.SH ARGUMENTS +.IP "args" 12 +\fIstruct nvme_lm_migration_send_args\fP argument structure +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise. diff --git a/doc/man/nvme_lm_migration_send_fields.2 b/doc/man/nvme_lm_migration_send_fields.2 new file mode 100644 index 0000000..318ab37 --- /dev/null +++ b/doc/man/nvme_lm_migration_send_fields.2 @@ -0,0 +1,202 @@ +.TH "libnvme" 9 "enum nvme_lm_migration_send_fields" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_migration_send_fields \- Migration Send command fields +.SH SYNOPSIS +enum nvme_lm_migration_send_fields { +.br +.BI " NVME_LM_MIGRATION_SEND_MOS_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_SEND_MOS_MASK" +, +.br +.br +.BI " NVME_LM_MIGRATION_SEND_SEL_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_SEND_SEL_MASK" +, +.br +.br +.BI " NVME_LM_SEL_SUSPEND" +, +.br +.br +.BI " NVME_LM_SEL_RESUME" +, +.br +.br +.BI " NVME_LM_SEL_SET_CONTROLLER_STATE" +, +.br +.br +.BI " NVME_LM_MIGRATION_SEND_UIDX_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_SEND_UIDX_MASK" +, +.br +.br +.BI " NVME_LM_DUDMQ" +, +.br +.br +.BI " NVME_LM_STYPE_SHIFT" +, +.br +.br +.BI " NVME_LM_STYPE_MASK" +, +.br +.br +.BI " NVME_LM_STYPE_SUSPEND_NOTIFICATION" +, +.br +.br +.BI " NVME_LM_STYPE_SUSPEND" +, +.br +.br +.BI " NVME_LM_SUSPEND_CNTLID_SHIFT" +, +.br +.br +.BI " NVME_LM_SUSPEND_CNTLID_MASK" +, +.br +.br +.BI " NVME_LM_RESUME_CNTLID_SHIFT" +, +.br +.br +.BI " NVME_LM_RESUME_CNTLID_MASK" +, +.br +.br +.BI " NVME_LM_SEQIND_SHIFT" +, +.br +.br +.BI " NVME_LM_SEQIND_MASK" +, +.br +.br +.BI " NVME_LM_SEQIND_NOT_FIRST_NOT_LAST" +, +.br +.br +.BI " NVME_LM_SEQIND_FIRST" +, +.br +.br +.BI " NVME_LM_SEQIND_LAST" +, +.br +.br +.BI " NVME_LM_SEQIND_ENTIRE" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK" + +}; +.SH Constants +.IP "NVME_LM_MIGRATION_SEND_MOS_SHIFT" 12 +Shift to set Management Operation Specific (MOS) +field +.IP "NVME_LM_MIGRATION_SEND_MOS_MASK" 12 +Mask to set MOS field +.IP "NVME_LM_MIGRATION_SEND_SEL_SHIFT" 12 +Shift amount to set Select (SEL) field +.IP "NVME_LM_MIGRATION_SEND_SEL_MASK" 12 +Mask to set SEL field +.IP "NVME_LM_SEL_SUSPEND" 12 +Migration Send - Suspend +.IP "NVME_LM_SEL_RESUME" 12 +Migration Send - Resume +.IP "NVME_LM_SEL_SET_CONTROLLER_STATE" 12 +Migration Send - Set Controller State +.IP "NVME_LM_MIGRATION_SEND_UIDX_SHIFT" 12 +Shift to set UUID Index (UIDX) +.IP "NVME_LM_MIGRATION_SEND_UIDX_MASK" 12 +Mask to set UIDX +.IP "NVME_LM_DUDMQ" 12 +Delete User Data Migration Queue +.IP "NVME_LM_STYPE_SHIFT" 12 +Shift amount to set Suspend Type (STYPE) +.IP "NVME_LM_STYPE_MASK" 12 +Mask to set STYPE +.IP "NVME_LM_STYPE_SUSPEND_NOTIFICATION" 12 +Suspend Notification - The specified controller is +going to be suspended in the future with a +subsequent Migration Send command +.IP "NVME_LM_STYPE_SUSPEND" 12 +Suspend - Suspend the controller +.IP "NVME_LM_SUSPEND_CNTLID_SHIFT" 12 +Shift amount to set Controller ID (CNTLID) when SEL +is Suspend +.IP "NVME_LM_SUSPEND_CNTLID_MASK" 12 +Mask to set CNTLID with SEL Suspend +.IP "NVME_LM_RESUME_CNTLID_SHIFT" 12 +Shift amount to set Controller ID (CNTLID) when SEL +is Resume +.IP "NVME_LM_RESUME_CNTLID_MASK" 12 +Mask to set CNTLID when SEL is Resume +.IP "NVME_LM_SEQIND_SHIFT" 12 +Shift amount to set Sequence Indicator (SEQIND) +field relative to MOS +.IP "NVME_LM_SEQIND_MASK" 12 +Mask to set SEQIND field relative to MOS +.IP "NVME_LM_SEQIND_NOT_FIRST_NOT_LAST" 12 +This command is not the first or last of a sequence +of two or more Migration Send commands with this +management operation used to transfer the controller +state from host to controller +.IP "NVME_LM_SEQIND_FIRST" 12 +This command is the first of a sequence of two or +more Migration Send commands +.IP "NVME_LM_SEQIND_LAST" 12 +This command is the last command of a sequence of +two or more Migration Send commands +.IP "NVME_LM_SEQIND_ENTIRE" 12 +This Migration Send command is the only command and +contains the entire controller state for this +management operation +.IP "NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT" 12 +Shift amount to set Controller State UUID Index +(CSUUIDI) +.IP "NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK" 12 +Mask to set CSUUIDI +.IP "NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT" 12 +Shift amount to set Controller State Version Index +(CSVI) +.IP "NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK" 12 +Mask to set CSVI +.IP "NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT" 12 +Shift amount to set Controller ID (CNTLID) when SEL +is Set Controller State +.IP "NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK" 12 +Mask to set CNTLID when SEL is Set Controller State diff --git a/doc/man/nvme_lm_nvme_controller_state_data.2 b/doc/man/nvme_lm_nvme_controller_state_data.2 new file mode 100644 index 0000000..180ec56 --- /dev/null +++ b/doc/man/nvme_lm_nvme_controller_state_data.2 @@ -0,0 +1,29 @@ +.TH "libnvme" 9 "struct nvme_lm_nvme_controller_state_data" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_nvme_controller_state_data \- NVMe Controller State data structure describes the state of a NVMe Controller's I/O Submission and I/O Completion queues +.SH SYNOPSIS +struct nvme_lm_nvme_controller_state_data { +.br +.BI " struct nvme_lm_nvme_controller_state_data_header hdr;" +.br +.BI " union {" +.br +.BI " struct nvme_lm_io_submission_queue_data sqs[0];" +.br +.BI " struct nvme_lm_io_completion_queue_data cqs[0];" +.br +.BI " };" +.br +.BI " +}; +.br + +.SH Members +.IP "hdr" 12 +Header +.IP "{unnamed_union}" 12 +anonymous +.IP "sqs" 12 +I/O Submission Queue list +.IP "cqs" 12 +I/O Completion Queue list diff --git a/doc/man/nvme_lm_nvme_controller_state_data_header.2 b/doc/man/nvme_lm_nvme_controller_state_data_header.2 new file mode 100644 index 0000000..6f149b2 --- /dev/null +++ b/doc/man/nvme_lm_nvme_controller_state_data_header.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_lm_nvme_controller_state_data_header" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_nvme_controller_state_data_header \- Controller State data structure header +.SH SYNOPSIS +struct nvme_lm_nvme_controller_state_data_header { +.br +.BI " __le16 ver;" +.br +.BI " __le16 niosq;" +.br +.BI " __le16 niocq;" +.br +.BI " __le16 rsvd6;" +.br +.BI " +}; +.br + +.SH Members +.IP "ver" 12 +The version of this data structure. +.IP "niosq" 12 +The number of I/O Submission Queues contained in this data structure. +.IP "niocq" 12 +The number of I/O Completion Queues contained in this data structure. +.IP "rsvd6" 12 +Reserved diff --git a/doc/man/nvme_lm_queue_attributes.2 b/doc/man/nvme_lm_queue_attributes.2 new file mode 100644 index 0000000..4db10d0 --- /dev/null +++ b/doc/man/nvme_lm_queue_attributes.2 @@ -0,0 +1,84 @@ +.TH "libnvme" 9 "enum nvme_lm_queue_attributes" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_queue_attributes \- I/O Submission and I/O Completion Queue Attributes +.SH SYNOPSIS +enum nvme_lm_queue_attributes { +.br +.BI " NVME_LM_IOSQPC_MASK" +, +.br +.br +.BI " NVME_LM_IOSQPC_SHIFT" +, +.br +.br +.BI " NVME_LM_IOSQPRIO_MASK" +, +.br +.br +.BI " NVME_LM_IOSQPRIO_SHIFT" +, +.br +.br +.BI " NVME_LM_IOCQPC_MASK" +, +.br +.br +.BI " NVME_LM_IOCQPC_SHIFT" +, +.br +.br +.BI " NVME_LM_IOCQIEN_MASK" +, +.br +.br +.BI " NVME_LM_IOCQIEN_SHIFT" +, +.br +.br +.BI " NVME_LM_S0PT_MASK" +, +.br +.br +.BI " NVME_LM_S0PT_SHIFT" +, +.br +.br +.BI " NVME_LM_IOCQIV_MASK" +, +.br +.br +.BI " NVME_LM_IOCQIV_SHIFT" + +}; +.SH Constants +.IP "NVME_LM_IOSQPC_MASK" 12 +Mask to get the Physically Contiguous (PC) bit for this I/O +submission queue. +.IP "NVME_LM_IOSQPC_SHIFT" 12 +Shift to get the PC bit for this I/O submission queue +.IP "NVME_LM_IOSQPRIO_MASK" 12 +Mask to get the Priority for this I/O submission queue. +.IP "NVME_LM_IOSQPRIO_SHIFT" 12 +Shift to get the Priority for this I/O submission queue. +.IP "NVME_LM_IOCQPC_MASK" 12 +Mask to get the Physicaly Contiguous (PC) bit for this I/O +completion queue. +.IP "NVME_LM_IOCQPC_SHIFT" 12 +Shift to get the PC bit for this I/O completion queue. +.IP "NVME_LM_IOCQIEN_MASK" 12 +Mask to get the Interrupts Enabled bit for this I/O completion +queue +.IP "NVME_LM_IOCQIEN_SHIFT" 12 +Shift to get the Interrupts Enabled bit for this I/O completion +.IP "NVME_LM_S0PT_MASK" 12 +Mask to get the value of the Phase Tag bit for Slot 0 of this I/O +completion queue. +.IP "NVME_LM_S0PT_SHIFT" 12 +Shift to get the value of the Phase Tag bit for Slot 0 of this I/O +completion queue. +.IP "NVME_LM_IOCQIV_MASK" 12 +Mask to get the Interrupt Vector (IV) for this I/O completion +queue. +.IP "NVME_LM_IOCQIV_SHIFT" 12 +Shift to get the IV for this I/O completion queue. diff --git a/doc/man/nvme_lm_track_send.2 b/doc/man/nvme_lm_track_send.2 new file mode 100644 index 0000000..c0e4ab1 --- /dev/null +++ b/doc/man/nvme_lm_track_send.2 @@ -0,0 +1,12 @@ +.TH "nvme_lm_track_send" 9 "nvme_lm_track_send" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_lm_track_send \- Track Send command +.SH SYNOPSIS +.B "int" nvme_lm_track_send +.BI "(struct nvme_lm_track_send_args *args " ");" +.SH ARGUMENTS +.IP "args" 12 +\fIstruct nvme_lm_track_send_args\fP argument structure +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise. diff --git a/doc/man/nvme_lm_track_send_fields.2 b/doc/man/nvme_lm_track_send_fields.2 new file mode 100644 index 0000000..b869eb8 --- /dev/null +++ b/doc/man/nvme_lm_track_send_fields.2 @@ -0,0 +1,73 @@ +.TH "libnvme" 9 "enum nvme_lm_track_send_fields" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_track_send_fields \- Track Send command fields +.SH SYNOPSIS +enum nvme_lm_track_send_fields { +.br +.BI " NVME_LM_TRACK_SEND_MOS_SHIFT" +, +.br +.br +.BI " NVME_LM_TRACK_SEND_MOS_MASK" +, +.br +.br +.BI " NVME_LM_TRACK_SEND_SEL_SHIFT" +, +.br +.br +.BI " NVME_LM_TRACK_SEND_SEL_MASK" +, +.br +.br +.BI " NVME_LM_SEL_LOG_USER_DATA_CHANGES" +, +.br +.br +.BI " NVME_LM_SEL_TRACK_MEMORY_CHANGES" +, +.br +.br +.BI " NVME_LM_LACT_SHIFT" +, +.br +.br +.BI " NVME_LM_LACT_MASK" +, +.br +.br +.BI " NVME_LM_LACT_STOP_LOGGING" +, +.br +.br +.BI " NVME_LM_LACT_START_LOGGING" + +}; +.SH Constants +.IP "NVME_LM_TRACK_SEND_MOS_SHIFT" 12 +Shift to set Management Operation Specific (MOS) field +.IP "NVME_LM_TRACK_SEND_MOS_MASK" 12 +Mask to set MOS field +.IP "NVME_LM_TRACK_SEND_SEL_SHIFT" 12 +Shift to set Select (SEL) field +.IP "NVME_LM_TRACK_SEND_SEL_MASK" 12 +Mask to set SEL field +.IP "NVME_LM_SEL_LOG_USER_DATA_CHANGES" 12 +Log User Data Changes select option +.IP "NVME_LM_SEL_TRACK_MEMORY_CHANGES" 12 +Track Memory Changes select option +.IP "NVME_LM_LACT_SHIFT" 12 +Shift to set Logging Action (LACT) relative to MOS +.IP "NVME_LM_LACT_MASK" 12 +Mask to set LACT relative to MOS +.IP "NVME_LM_LACT_STOP_LOGGING" 12 +The controller shall stop logging user data changes to +namespaces attached to the controller associated with the +User Data Migration Queue specified in the CDQ ID. +.IP "NVME_LM_LACT_START_LOGGING" 12 +The controller shall start logging user data changes to +namespaces attached to the controller associated with the +User Data Migration Queue into that User Data Migration +Queue where those user data changes are caused by the +controller associated with that User Data Migration Queue +processing commands. diff --git a/doc/man/nvme_lockdown.2 b/doc/man/nvme_lockdown.2 index 1b2af17..c21a6d7 100644 --- a/doc/man/nvme_lockdown.2 +++ b/doc/man/nvme_lockdown.2 @@ -1,4 +1,4 @@ -.TH "nvme_lockdown" 9 "nvme_lockdown" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lockdown" 9 "nvme_lockdown" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lockdown \- Issue lockdown command .SH SYNOPSIS diff --git a/doc/man/nvme_lockdown_log.2 b/doc/man/nvme_lockdown_log.2 index 1fa31c4..13d65a3 100644 --- a/doc/man/nvme_lockdown_log.2 +++ b/doc/man/nvme_lockdown_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lockdown_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lockdown_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lockdown_log \- Command and Feature Lockdown Log .SH SYNOPSIS diff --git a/doc/man/nvme_lockdown_log_contents.2 b/doc/man/nvme_lockdown_log_contents.2 index fa62e79..c2cccf9 100644 --- a/doc/man/nvme_lockdown_log_contents.2 +++ b/doc/man/nvme_lockdown_log_contents.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lockdown_log_contents" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lockdown_log_contents" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lockdown_log_contents \- lockdown log page content attributes .SH SYNOPSIS diff --git a/doc/man/nvme_lockdown_log_scope.2 b/doc/man/nvme_lockdown_log_scope.2 index fbc4ed5..955b28d 100644 --- a/doc/man/nvme_lockdown_log_scope.2 +++ b/doc/man/nvme_lockdown_log_scope.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lockdown_log_scope" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lockdown_log_scope" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lockdown_log_scope \- lockdown log page scope attributes .SH SYNOPSIS diff --git a/doc/man/nvme_lockdown_scope_contents.2 b/doc/man/nvme_lockdown_scope_contents.2 index c1b400e..1581085 100644 --- a/doc/man/nvme_lockdown_scope_contents.2 +++ b/doc/man/nvme_lockdown_scope_contents.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lockdown_scope_contents" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lockdown_scope_contents" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lockdown_scope_contents \- Lockdown Log shift and mask .SH SYNOPSIS diff --git a/doc/man/nvme_log_ana_lsp.2 b/doc/man/nvme_log_ana_lsp.2 index 68f6320..c7499f8 100644 --- a/doc/man/nvme_log_ana_lsp.2 +++ b/doc/man/nvme_log_ana_lsp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_log_ana_lsp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_log_ana_lsp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_log_ana_lsp \- Asymmetric Namespace Access - Return Groups Only .SH SYNOPSIS diff --git a/doc/man/nvme_log_phy_rx_eom_action.2 b/doc/man/nvme_log_phy_rx_eom_action.2 index 4d77888..959e398 100644 --- a/doc/man/nvme_log_phy_rx_eom_action.2 +++ b/doc/man/nvme_log_phy_rx_eom_action.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_log_phy_rx_eom_action" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_log_phy_rx_eom_action" "March 2025" "API Manual" LINUX .SH NAME enum nvme_log_phy_rx_eom_action \- Physical Interface Receiver Eye Opening Measurement Action .SH SYNOPSIS diff --git a/doc/man/nvme_log_phy_rx_eom_quality.2 b/doc/man/nvme_log_phy_rx_eom_quality.2 index 6d126cd..e73ec1a 100644 --- a/doc/man/nvme_log_phy_rx_eom_quality.2 +++ b/doc/man/nvme_log_phy_rx_eom_quality.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_log_phy_rx_eom_quality" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_log_phy_rx_eom_quality" "March 2025" "API Manual" LINUX .SH NAME enum nvme_log_phy_rx_eom_quality \- Physical Interface Receiver Eye Opening Measurement Quality .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_ctrl.2 b/doc/man/nvme_lookup_ctrl.2 index 6a61087..6fc190f 100644 --- a/doc/man/nvme_lookup_ctrl.2 +++ b/doc/man/nvme_lookup_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_lookup_ctrl" 9 "nvme_lookup_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lookup_ctrl" 9 "nvme_lookup_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lookup_ctrl \- Lookup nvme_ctrl_t object .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_host.2 b/doc/man/nvme_lookup_host.2 index 565ef60..4a4ae26 100644 --- a/doc/man/nvme_lookup_host.2 +++ b/doc/man/nvme_lookup_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_lookup_host" 9 "nvme_lookup_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lookup_host" 9 "nvme_lookup_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lookup_host \- Lookup nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_key.2 b/doc/man/nvme_lookup_key.2 index 3d5858c..21f33ab 100644 --- a/doc/man/nvme_lookup_key.2 +++ b/doc/man/nvme_lookup_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_lookup_key" 9 "nvme_lookup_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lookup_key" 9 "nvme_lookup_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lookup_key \- Lookup key serial number .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_keyring.2 b/doc/man/nvme_lookup_keyring.2 index 185edf0..c4e176b 100644 --- a/doc/man/nvme_lookup_keyring.2 +++ b/doc/man/nvme_lookup_keyring.2 @@ -1,4 +1,4 @@ -.TH "nvme_lookup_keyring" 9 "nvme_lookup_keyring" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lookup_keyring" 9 "nvme_lookup_keyring" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lookup_keyring \- Lookup keyring serial number .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_subsystem.2 b/doc/man/nvme_lookup_subsystem.2 index 20993f1..fb67e80 100644 --- a/doc/man/nvme_lookup_subsystem.2 +++ b/doc/man/nvme_lookup_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_lookup_subsystem" 9 "nvme_lookup_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lookup_subsystem" 9 "nvme_lookup_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lookup_subsystem \- Lookup nvme_subsystem_t object .SH SYNOPSIS diff --git a/doc/man/nvme_media_unit_config_desc.2 b/doc/man/nvme_media_unit_config_desc.2 index 446ba69..2d364ba 100644 --- a/doc/man/nvme_media_unit_config_desc.2 +++ b/doc/man/nvme_media_unit_config_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_media_unit_config_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_media_unit_config_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_media_unit_config_desc \- Media Unit Configuration Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_media_unit_stat_desc.2 b/doc/man/nvme_media_unit_stat_desc.2 index 21621e9..5f4995e 100644 --- a/doc/man/nvme_media_unit_stat_desc.2 +++ b/doc/man/nvme_media_unit_stat_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_media_unit_stat_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_media_unit_stat_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_media_unit_stat_desc \- Media Unit Status Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_media_unit_stat_log.2 b/doc/man/nvme_media_unit_stat_log.2 index 3e6545f..6c19f9f 100644 --- a/doc/man/nvme_media_unit_stat_log.2 +++ b/doc/man/nvme_media_unit_stat_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_media_unit_stat_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_media_unit_stat_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_media_unit_stat_log \- Media Unit Status .SH SYNOPSIS diff --git a/doc/man/nvme_metadata_element_desc.2 b/doc/man/nvme_metadata_element_desc.2 index cdc158f..7184d21 100644 --- a/doc/man/nvme_metadata_element_desc.2 +++ b/doc/man/nvme_metadata_element_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_metadata_element_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_metadata_element_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_metadata_element_desc \- Metadata Element Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_mgmt_addr_desc.2 b/doc/man/nvme_mgmt_addr_desc.2 new file mode 100644 index 0000000..765c3d1 --- /dev/null +++ b/doc/man/nvme_mgmt_addr_desc.2 @@ -0,0 +1,23 @@ +.TH "libnvme" 9 "struct nvme_mgmt_addr_desc" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_mgmt_addr_desc \- Management Address Descriptor +.SH SYNOPSIS +struct nvme_mgmt_addr_desc { +.br +.BI " __u8 mat;" +.br +.BI " __u8 rsvd1[3];" +.br +.BI " __u8 madrs[508];" +.br +.BI " +}; +.br + +.SH Members +.IP "mat" 12 +Management Address Type +.IP "rsvd1" 12 +Reserved +.IP "madrs" 12 +Management Address diff --git a/doc/man/nvme_mgmt_addr_list_log.2 b/doc/man/nvme_mgmt_addr_list_log.2 new file mode 100644 index 0000000..1f616f9 --- /dev/null +++ b/doc/man/nvme_mgmt_addr_list_log.2 @@ -0,0 +1,15 @@ +.TH "libnvme" 9 "struct nvme_mgmt_addr_list_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_mgmt_addr_list_log \- Management Address List Log +.SH SYNOPSIS +struct nvme_mgmt_addr_list_log { +.br +.BI " struct nvme_mgmt_addr_desc mad[8];" +.br +.BI " +}; +.br + +.SH Members +.IP "mad" 12 +Management Address Descriptor diff --git a/doc/man/nvme_mi_admin_admin_passthru.2 b/doc/man/nvme_mi_admin_admin_passthru.2 index 3cce918..891cc22 100644 --- a/doc/man/nvme_mi_admin_admin_passthru.2 +++ b/doc/man/nvme_mi_admin_admin_passthru.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_admin_passthru" 9 "nvme_mi_admin_admin_passthru" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_admin_passthru" 9 "nvme_mi_admin_admin_passthru" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_admin_passthru \- Submit an nvme admin passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_format_nvm.2 b/doc/man/nvme_mi_admin_format_nvm.2 index accae0a..400cb16 100644 --- a/doc/man/nvme_mi_admin_format_nvm.2 +++ b/doc/man/nvme_mi_admin_format_nvm.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_format_nvm" 9 "nvme_mi_admin_format_nvm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_format_nvm" 9 "nvme_mi_admin_format_nvm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_format_nvm \- Format NVMe namespace .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_fw_commit.2 b/doc/man/nvme_mi_admin_fw_commit.2 index dc1c7e5..4618f8a 100644 --- a/doc/man/nvme_mi_admin_fw_commit.2 +++ b/doc/man/nvme_mi_admin_fw_commit.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_fw_commit" 9 "nvme_mi_admin_fw_commit" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_fw_commit" 9 "nvme_mi_admin_fw_commit" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_fw_commit \- Commit firmware using the specified action .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_fw_download.2 b/doc/man/nvme_mi_admin_fw_download.2 index e459f46..3fa6872 100644 --- a/doc/man/nvme_mi_admin_fw_download.2 +++ b/doc/man/nvme_mi_admin_fw_download.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_fw_download" 9 "nvme_mi_admin_fw_download" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_fw_download" 9 "nvme_mi_admin_fw_download" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_fw_download \- Download part or all of a firmware image to the controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_ana_log_atomic.2 b/doc/man/nvme_mi_admin_get_ana_log_atomic.2 index 51ec1a7..0ff1c40 100644 --- a/doc/man/nvme_mi_admin_get_ana_log_atomic.2 +++ b/doc/man/nvme_mi_admin_get_ana_log_atomic.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_ana_log_atomic" 9 "nvme_mi_admin_get_ana_log_atomic" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_ana_log_atomic" 9 "nvme_mi_admin_get_ana_log_atomic" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_ana_log_atomic \- Retrieve Asymmetric Namespace Access log page atomically .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_endgid_log.2 b/doc/man/nvme_mi_admin_get_endgid_log.2 new file mode 100644 index 0000000..9e79ba4 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_endgid_log.2 @@ -0,0 +1,32 @@ +.TH "nvme_mi_admin_get_endgid_log" 9 "nvme_mi_admin_get_endgid_log" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_endgid_log \- Helper for Get Endurance Group ID Log Page functions +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_endgid_log +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rae " "," +.BI "enum nvme_cmd_get_log_lid lid " "," +.BI "__u16 endgid " "," +.BI "__u32 len " "," +.BI "void *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rae" 12 +Retain Asynchronous Events +.IP "lid" 12 +Log identifier +.IP "endgid" 12 +Endurance Group ID +.IP "len" 12 +length of log buffer +.IP "log" 12 +pointer for resulting log data +.SH "DESCRIPTION" +Performs a Get Log Page Admin command for a specific log ID \fIlid\fP and +endurance group ID \fIendgid\fP. Log data is expected to be \fIlen\fP bytes, and is stored +in \fIlog\fP on success. The \fIrae\fP flag is passed as-is to the Get Log Page +command, and is specific to the Log Page requested. +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise. diff --git a/doc/man/nvme_mi_admin_get_features_data.2 b/doc/man/nvme_mi_admin_get_features_data.2 index 135e623..9e12316 100644 --- a/doc/man/nvme_mi_admin_get_features_data.2 +++ b/doc/man/nvme_mi_admin_get_features_data.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_features_data" 9 "nvme_mi_admin_get_features_data" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_features_data" 9 "nvme_mi_admin_get_features_data" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_features_data \- Helper function for &nvme_mi_admin_get_features() .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log.2 b/doc/man/nvme_mi_admin_get_log.2 index 174e5d5..f9a3b60 100644 --- a/doc/man/nvme_mi_admin_get_log.2 +++ b/doc/man/nvme_mi_admin_get_log.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log" 9 "nvme_mi_admin_get_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log" 9 "nvme_mi_admin_get_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log \- Retrieve log page data from controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_ana.2 b/doc/man/nvme_mi_admin_get_log_ana.2 index be32d75..7a0c72b 100644 --- a/doc/man/nvme_mi_admin_get_log_ana.2 +++ b/doc/man/nvme_mi_admin_get_log_ana.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_ana" 9 "nvme_mi_admin_get_log_ana" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_ana" 9 "nvme_mi_admin_get_log_ana" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_ana \- Retrieve Asymmetric Namespace Access log page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_ana_groups.2 b/doc/man/nvme_mi_admin_get_log_ana_groups.2 index d6abe99..da38e36 100644 --- a/doc/man/nvme_mi_admin_get_log_ana_groups.2 +++ b/doc/man/nvme_mi_admin_get_log_ana_groups.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_ana_groups" 9 "nvme_mi_admin_get_log_ana_groups" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_ana_groups" 9 "nvme_mi_admin_get_log_ana_groups" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_ana_groups \- Retrieve Asymmetric Namespace Access groups only log page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_ave_discover.2 b/doc/man/nvme_mi_admin_get_log_ave_discover.2 new file mode 100644 index 0000000..1722a92 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_ave_discover.2 @@ -0,0 +1,21 @@ +.TH "nvme_mi_admin_get_log_ave_discover" 9 "nvme_mi_admin_get_log_ave_discover" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_ave_discover \- Retrieve AVE Discovery Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_ave_discover +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_ave_discover_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_boot_partition.2 b/doc/man/nvme_mi_admin_get_log_boot_partition.2 index d43f5c1..7bbbf58 100644 --- a/doc/man/nvme_mi_admin_get_log_boot_partition.2 +++ b/doc/man/nvme_mi_admin_get_log_boot_partition.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_boot_partition" 9 "nvme_mi_admin_get_log_boot_partition" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_boot_partition" 9 "nvme_mi_admin_get_log_boot_partition" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_boot_partition \- Retrieve Boot Partition .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_changed_alloc_ns_list.2 b/doc/man/nvme_mi_admin_get_log_changed_alloc_ns_list.2 new file mode 100644 index 0000000..a65d68a --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_changed_alloc_ns_list.2 @@ -0,0 +1,21 @@ +.TH "nvme_mi_admin_get_log_changed_alloc_ns_list" 9 "nvme_mi_admin_get_log_changed_alloc_ns_list" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_changed_alloc_ns_list \- Retrieve Changed Allocated Namespace List Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_changed_alloc_ns_list +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_ns_list *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_changed_ns_list.2 b/doc/man/nvme_mi_admin_get_log_changed_ns_list.2 index 7006f40..10b0011 100644 --- a/doc/man/nvme_mi_admin_get_log_changed_ns_list.2 +++ b/doc/man/nvme_mi_admin_get_log_changed_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_changed_ns_list" 9 "nvme_mi_admin_get_log_changed_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_changed_ns_list" 9 "nvme_mi_admin_get_log_changed_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_changed_ns_list \- Retrieve namespace changed list .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_cmd_effects.2 b/doc/man/nvme_mi_admin_get_log_cmd_effects.2 index 9718512..a590e94 100644 --- a/doc/man/nvme_mi_admin_get_log_cmd_effects.2 +++ b/doc/man/nvme_mi_admin_get_log_cmd_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_cmd_effects" 9 "nvme_mi_admin_get_log_cmd_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_cmd_effects" 9 "nvme_mi_admin_get_log_cmd_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_cmd_effects \- Retrieve nvme command effects log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_create_telemetry_host.2 b/doc/man/nvme_mi_admin_get_log_create_telemetry_host.2 index f269d43..91acd37 100644 --- a/doc/man/nvme_mi_admin_get_log_create_telemetry_host.2 +++ b/doc/man/nvme_mi_admin_get_log_create_telemetry_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_create_telemetry_host" 9 "nvme_mi_admin_get_log_create_telemetry_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_create_telemetry_host" 9 "nvme_mi_admin_get_log_create_telemetry_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_create_telemetry_host \- Create host telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_create_telemetry_host_mcda.2 b/doc/man/nvme_mi_admin_get_log_create_telemetry_host_mcda.2 new file mode 100644 index 0000000..6240b84 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_create_telemetry_host_mcda.2 @@ -0,0 +1,18 @@ +.TH "nvme_mi_admin_get_log_create_telemetry_host_mcda" 9 "nvme_mi_admin_get_log_create_telemetry_host_mcda" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_create_telemetry_host_mcda \- Create host telemetry log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_create_telemetry_host_mcda +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "enum nvme_telemetry_da mcda " "," +.BI "struct nvme_telemetry_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "mcda" 12 +Maximum Created Data Area +.IP "log" 12 +Userspace address of the log payload +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise. diff --git a/doc/man/nvme_mi_admin_get_log_device_self_test.2 b/doc/man/nvme_mi_admin_get_log_device_self_test.2 index d4706d3..9b6533f 100644 --- a/doc/man/nvme_mi_admin_get_log_device_self_test.2 +++ b/doc/man/nvme_mi_admin_get_log_device_self_test.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_device_self_test" 9 "nvme_mi_admin_get_log_device_self_test" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_device_self_test" 9 "nvme_mi_admin_get_log_device_self_test" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_device_self_test \- Retrieve the device self test log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_discovery.2 b/doc/man/nvme_mi_admin_get_log_discovery.2 index 897c462..1093905 100644 --- a/doc/man/nvme_mi_admin_get_log_discovery.2 +++ b/doc/man/nvme_mi_admin_get_log_discovery.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_discovery" 9 "nvme_mi_admin_get_log_discovery" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_discovery" 9 "nvme_mi_admin_get_log_discovery" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_discovery \- Retrieve Discovery log page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_dispersed_ns_participating_nss.2 b/doc/man/nvme_mi_admin_get_log_dispersed_ns_participating_nss.2 new file mode 100644 index 0000000..efbe102 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_dispersed_ns_participating_nss.2 @@ -0,0 +1,21 @@ +.TH "nvme_mi_admin_get_log_dispersed_ns_participating_nss" 9 "nvme_mi_admin_get_log_dispersed_ns_participating_nss" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_dispersed_ns_participating_nss \- Retrieve Dispersed Namespace Participating NVM Subsystems Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_dispersed_ns_participating_nss +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "__u32 nsid " "," +.BI "__u32 len " "," +.BI "struct nvme_dispersed_ns_participating_nss_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "nsid" 12 +Namespace Identifier +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_endurance_group.2 b/doc/man/nvme_mi_admin_get_log_endurance_group.2 index b164bd9..4ff81c2 100644 --- a/doc/man/nvme_mi_admin_get_log_endurance_group.2 +++ b/doc/man/nvme_mi_admin_get_log_endurance_group.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_endurance_group" 9 "nvme_mi_admin_get_log_endurance_group" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_endurance_group" 9 "nvme_mi_admin_get_log_endurance_group" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_endurance_group \- Get Endurance Group log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_endurance_grp_evt.2 b/doc/man/nvme_mi_admin_get_log_endurance_grp_evt.2 index 554a7fc..8d49a99 100644 --- a/doc/man/nvme_mi_admin_get_log_endurance_grp_evt.2 +++ b/doc/man/nvme_mi_admin_get_log_endurance_grp_evt.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_endurance_grp_evt" 9 "nvme_mi_admin_get_log_endurance_grp_evt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_endurance_grp_evt" 9 "nvme_mi_admin_get_log_endurance_grp_evt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_endurance_grp_evt \- Retrieve Rotational Media Information .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_error.2 b/doc/man/nvme_mi_admin_get_log_error.2 index 3443b95..9ec4114 100644 --- a/doc/man/nvme_mi_admin_get_log_error.2 +++ b/doc/man/nvme_mi_admin_get_log_error.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_error" 9 "nvme_mi_admin_get_log_error" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_error" 9 "nvme_mi_admin_get_log_error" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_error \- Retrieve nvme error log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_fid_supported_effects.2 b/doc/man/nvme_mi_admin_get_log_fid_supported_effects.2 index adc1e80..68f6466 100644 --- a/doc/man/nvme_mi_admin_get_log_fid_supported_effects.2 +++ b/doc/man/nvme_mi_admin_get_log_fid_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_fid_supported_effects" 9 "nvme_mi_admin_get_log_fid_supported_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_fid_supported_effects" 9 "nvme_mi_admin_get_log_fid_supported_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_fid_supported_effects \- Retrieve Feature Identifiers Supported and Effects .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_fw_slot.2 b/doc/man/nvme_mi_admin_get_log_fw_slot.2 index ffe50f6..24eadc3 100644 --- a/doc/man/nvme_mi_admin_get_log_fw_slot.2 +++ b/doc/man/nvme_mi_admin_get_log_fw_slot.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_fw_slot" 9 "nvme_mi_admin_get_log_fw_slot" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_fw_slot" 9 "nvme_mi_admin_get_log_fw_slot" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_fw_slot \- Retrieves the controller firmware log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_host_discover.2 b/doc/man/nvme_mi_admin_get_log_host_discover.2 new file mode 100644 index 0000000..6ebbdc7 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_host_discover.2 @@ -0,0 +1,24 @@ +.TH "nvme_mi_admin_get_log_host_discover" 9 "nvme_mi_admin_get_log_host_discover" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_host_discover \- Retrieve Host Discovery Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_host_discover +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool allhoste " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_host_discover_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "allhoste" 12 +All host entries +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_lba_status.2 b/doc/man/nvme_mi_admin_get_log_lba_status.2 index ae54892..a70c975 100644 --- a/doc/man/nvme_mi_admin_get_log_lba_status.2 +++ b/doc/man/nvme_mi_admin_get_log_lba_status.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_lba_status" 9 "nvme_mi_admin_get_log_lba_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_lba_status" 9 "nvme_mi_admin_get_log_lba_status" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_lba_status \- Retrieve LBA Status .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_lockdown.2 b/doc/man/nvme_mi_admin_get_log_lockdown.2 index 6e4abb0..0ccebca 100644 --- a/doc/man/nvme_mi_admin_get_log_lockdown.2 +++ b/doc/man/nvme_mi_admin_get_log_lockdown.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_lockdown" 9 "nvme_mi_admin_get_log_lockdown" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_lockdown" 9 "nvme_mi_admin_get_log_lockdown" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_lockdown \- Retrieve lockdown Log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_media_unit_stat.2 b/doc/man/nvme_mi_admin_get_log_media_unit_stat.2 index 82631d9..7a89d10 100644 --- a/doc/man/nvme_mi_admin_get_log_media_unit_stat.2 +++ b/doc/man/nvme_mi_admin_get_log_media_unit_stat.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_media_unit_stat" 9 "nvme_mi_admin_get_log_media_unit_stat" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_media_unit_stat" 9 "nvme_mi_admin_get_log_media_unit_stat" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_media_unit_stat \- Retrieve Media Unit Status .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_mgmt_addr_list.2 b/doc/man/nvme_mi_admin_get_log_mgmt_addr_list.2 new file mode 100644 index 0000000..2b27b5d --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_mgmt_addr_list.2 @@ -0,0 +1,18 @@ +.TH "nvme_mi_admin_get_log_mgmt_addr_list" 9 "nvme_mi_admin_get_log_mgmt_addr_list" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_mgmt_addr_list \- Retrieve Management Address List Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_mgmt_addr_list +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "__u32 len " "," +.BI "struct nvme_mgmt_addr_list_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.2 b/doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.2 index 2b322c0..dca2c34 100644 --- a/doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.2 +++ b/doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_mi_cmd_supported_effects" 9 "nvme_mi_admin_get_log_mi_cmd_supported_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_mi_cmd_supported_effects" 9 "nvme_mi_admin_get_log_mi_cmd_supported_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_mi_cmd_supported_effects \- displays the MI Commands Supported by the controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_page.2 b/doc/man/nvme_mi_admin_get_log_page.2 index 454f90d..d5f9df2 100644 --- a/doc/man/nvme_mi_admin_get_log_page.2 +++ b/doc/man/nvme_mi_admin_get_log_page.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_page" 9 "nvme_mi_admin_get_log_page" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_page" 9 "nvme_mi_admin_get_log_page" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_page \- Retrieve log page data from controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_persistent_event.2 b/doc/man/nvme_mi_admin_get_log_persistent_event.2 index 91c4e4e..0959dd4 100644 --- a/doc/man/nvme_mi_admin_get_log_persistent_event.2 +++ b/doc/man/nvme_mi_admin_get_log_persistent_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_persistent_event" 9 "nvme_mi_admin_get_log_persistent_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_persistent_event" 9 "nvme_mi_admin_get_log_persistent_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_persistent_event \- Retrieve Persistent Event Log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_phy_rx_eom.2 b/doc/man/nvme_mi_admin_get_log_phy_rx_eom.2 index 8b83a5a..0bf2594 100644 --- a/doc/man/nvme_mi_admin_get_log_phy_rx_eom.2 +++ b/doc/man/nvme_mi_admin_get_log_phy_rx_eom.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_phy_rx_eom" 9 "nvme_mi_admin_get_log_phy_rx_eom" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_phy_rx_eom" 9 "nvme_mi_admin_get_log_phy_rx_eom" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_phy_rx_eom \- Retrieve Physical Interface Receiver Eye Opening Measurement Log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_predictable_lat_event.2 b/doc/man/nvme_mi_admin_get_log_predictable_lat_event.2 index 9f608fa..a56ccd8 100644 --- a/doc/man/nvme_mi_admin_get_log_predictable_lat_event.2 +++ b/doc/man/nvme_mi_admin_get_log_predictable_lat_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_predictable_lat_event" 9 "nvme_mi_admin_get_log_predictable_lat_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_predictable_lat_event" 9 "nvme_mi_admin_get_log_predictable_lat_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_predictable_lat_event \- Retrieve Predictable Latency Event Aggregate Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_predictable_lat_nvmset.2 b/doc/man/nvme_mi_admin_get_log_predictable_lat_nvmset.2 index 1f1e32b..549b6fc 100644 --- a/doc/man/nvme_mi_admin_get_log_predictable_lat_nvmset.2 +++ b/doc/man/nvme_mi_admin_get_log_predictable_lat_nvmset.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_predictable_lat_nvmset" 9 "nvme_mi_admin_get_log_predictable_lat_nvmset" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_predictable_lat_nvmset" 9 "nvme_mi_admin_get_log_predictable_lat_nvmset" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_predictable_lat_nvmset \- Predictable Latency Per NVM Set .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_pull_model_ddc_req.2 b/doc/man/nvme_mi_admin_get_log_pull_model_ddc_req.2 new file mode 100644 index 0000000..3dd84e4 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_pull_model_ddc_req.2 @@ -0,0 +1,21 @@ +.TH "nvme_mi_admin_get_log_pull_model_ddc_req" 9 "nvme_mi_admin_get_log_pull_model_ddc_req" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_pull_model_ddc_req \- Retrieve Pull Model DDC Request Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_pull_model_ddc_req +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_pull_model_ddc_req_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_reachability_associations.2 b/doc/man/nvme_mi_admin_get_log_reachability_associations.2 new file mode 100644 index 0000000..fefc3a9 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_reachability_associations.2 @@ -0,0 +1,24 @@ +.TH "nvme_mi_admin_get_log_reachability_associations" 9 "nvme_mi_admin_get_log_reachability_associations" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_reachability_associations \- Retrieve Reachability Associations Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_reachability_associations +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rao " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_reachability_associations_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rao" 12 +Return associations only +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_reachability_groups.2 b/doc/man/nvme_mi_admin_get_log_reachability_groups.2 new file mode 100644 index 0000000..100ab55 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_reachability_groups.2 @@ -0,0 +1,24 @@ +.TH "nvme_mi_admin_get_log_reachability_groups" 9 "nvme_mi_admin_get_log_reachability_groups" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_reachability_groups \- Retrieve Reachability Groups Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_reachability_groups +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rgo " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_reachability_groups_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rgo" 12 +Return groups only +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_reservation.2 b/doc/man/nvme_mi_admin_get_log_reservation.2 index 420cc5b..7f658e8 100644 --- a/doc/man/nvme_mi_admin_get_log_reservation.2 +++ b/doc/man/nvme_mi_admin_get_log_reservation.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_reservation" 9 "nvme_mi_admin_get_log_reservation" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_reservation" 9 "nvme_mi_admin_get_log_reservation" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_reservation \- Retrieve Reservation Notification .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_rotational_media_info.2 b/doc/man/nvme_mi_admin_get_log_rotational_media_info.2 new file mode 100644 index 0000000..6c183b7 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_rotational_media_info.2 @@ -0,0 +1,21 @@ +.TH "nvme_mi_admin_get_log_rotational_media_info" 9 "nvme_mi_admin_get_log_rotational_media_info" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_rotational_media_info \- Retrieve Rotational Media Information Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_rotational_media_info +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "__u16 endgid " "," +.BI "__u32 len " "," +.BI "struct nvme_rotational_media_info_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "endgid" 12 +Endurance Group Identifier +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_sanitize.2 b/doc/man/nvme_mi_admin_get_log_sanitize.2 index 1d275fd..32f4f5b 100644 --- a/doc/man/nvme_mi_admin_get_log_sanitize.2 +++ b/doc/man/nvme_mi_admin_get_log_sanitize.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_sanitize" 9 "nvme_mi_admin_get_log_sanitize" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_sanitize" 9 "nvme_mi_admin_get_log_sanitize" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_sanitize \- Retrieve Sanitize Status .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_simple.2 b/doc/man/nvme_mi_admin_get_log_simple.2 index d81b794..67a1eb6 100644 --- a/doc/man/nvme_mi_admin_get_log_simple.2 +++ b/doc/man/nvme_mi_admin_get_log_simple.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_simple" 9 "nvme_mi_admin_get_log_simple" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_simple" 9 "nvme_mi_admin_get_log_simple" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_simple \- Helper for Get Log Page functions with no NSID or RAE requirements .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_smart.2 b/doc/man/nvme_mi_admin_get_log_smart.2 index 396803a..db66183 100644 --- a/doc/man/nvme_mi_admin_get_log_smart.2 +++ b/doc/man/nvme_mi_admin_get_log_smart.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_smart" 9 "nvme_mi_admin_get_log_smart" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_smart" 9 "nvme_mi_admin_get_log_smart" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_smart \- Retrieve nvme smart log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_support_cap_config_list.2 b/doc/man/nvme_mi_admin_get_log_support_cap_config_list.2 index 7b9faf0..a7e43aa 100644 --- a/doc/man/nvme_mi_admin_get_log_support_cap_config_list.2 +++ b/doc/man/nvme_mi_admin_get_log_support_cap_config_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_support_cap_config_list" 9 "nvme_mi_admin_get_log_support_cap_config_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_support_cap_config_list" 9 "nvme_mi_admin_get_log_support_cap_config_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_support_cap_config_list \- Retrieve Supported Capacity Configuration List .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_supported_log_pages.2 b/doc/man/nvme_mi_admin_get_log_supported_log_pages.2 index 9b4a77f..51b59b7 100644 --- a/doc/man/nvme_mi_admin_get_log_supported_log_pages.2 +++ b/doc/man/nvme_mi_admin_get_log_supported_log_pages.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_supported_log_pages" 9 "nvme_mi_admin_get_log_supported_log_pages" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_supported_log_pages" 9 "nvme_mi_admin_get_log_supported_log_pages" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_supported_log_pages \- Retrieve nmve supported log pages .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_telemetry_ctrl.2 b/doc/man/nvme_mi_admin_get_log_telemetry_ctrl.2 index f52bdef..4ef391d 100644 --- a/doc/man/nvme_mi_admin_get_log_telemetry_ctrl.2 +++ b/doc/man/nvme_mi_admin_get_log_telemetry_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_telemetry_ctrl" 9 "nvme_mi_admin_get_log_telemetry_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_telemetry_ctrl" 9 "nvme_mi_admin_get_log_telemetry_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_telemetry_ctrl \- Get Telemetry Controller-Initiated log page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_telemetry_host.2 b/doc/man/nvme_mi_admin_get_log_telemetry_host.2 index b29d304..475e687 100644 --- a/doc/man/nvme_mi_admin_get_log_telemetry_host.2 +++ b/doc/man/nvme_mi_admin_get_log_telemetry_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_telemetry_host" 9 "nvme_mi_admin_get_log_telemetry_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_telemetry_host" 9 "nvme_mi_admin_get_log_telemetry_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_telemetry_host \- Get Telemetry Host-Initiated log page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_zns_changed_zones.2 b/doc/man/nvme_mi_admin_get_log_zns_changed_zones.2 index 93fb71a..941c2b4 100644 --- a/doc/man/nvme_mi_admin_get_log_zns_changed_zones.2 +++ b/doc/man/nvme_mi_admin_get_log_zns_changed_zones.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_zns_changed_zones" 9 "nvme_mi_admin_get_log_zns_changed_zones" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_zns_changed_zones" 9 "nvme_mi_admin_get_log_zns_changed_zones" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_zns_changed_zones \- Retrieve list of zones that have changed .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_nsid_log.2 b/doc/man/nvme_mi_admin_get_nsid_log.2 index c4027cc..747b3af 100644 --- a/doc/man/nvme_mi_admin_get_nsid_log.2 +++ b/doc/man/nvme_mi_admin_get_nsid_log.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_nsid_log" 9 "nvme_mi_admin_get_nsid_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_nsid_log" 9 "nvme_mi_admin_get_nsid_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_nsid_log \- Helper for Get Log Page functions .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify.2 b/doc/man/nvme_mi_admin_identify.2 index 1e99029..4ed5f1e 100644 --- a/doc/man/nvme_mi_admin_identify.2 +++ b/doc/man/nvme_mi_admin_identify.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify" 9 "nvme_mi_admin_identify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify" 9 "nvme_mi_admin_identify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify \- Perform an Admin identify command. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_active_ns_list.2 b/doc/man/nvme_mi_admin_identify_active_ns_list.2 index 988c253..3abc339 100644 --- a/doc/man/nvme_mi_admin_identify_active_ns_list.2 +++ b/doc/man/nvme_mi_admin_identify_active_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_active_ns_list" 9 "nvme_mi_admin_identify_active_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_active_ns_list" 9 "nvme_mi_admin_identify_active_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_active_ns_list \- Perform an Admin identify for an active namespace list .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_allocated_ns.2 b/doc/man/nvme_mi_admin_identify_allocated_ns.2 index 2ea5fd8..ab9ad52 100644 --- a/doc/man/nvme_mi_admin_identify_allocated_ns.2 +++ b/doc/man/nvme_mi_admin_identify_allocated_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_allocated_ns" 9 "nvme_mi_admin_identify_allocated_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_allocated_ns" 9 "nvme_mi_admin_identify_allocated_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_allocated_ns \- Perform an Admin identify command for an allocated namespace .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_allocated_ns_list.2 b/doc/man/nvme_mi_admin_identify_allocated_ns_list.2 index dc75d3b..3c1299a 100644 --- a/doc/man/nvme_mi_admin_identify_allocated_ns_list.2 +++ b/doc/man/nvme_mi_admin_identify_allocated_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_allocated_ns_list" 9 "nvme_mi_admin_identify_allocated_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_allocated_ns_list" 9 "nvme_mi_admin_identify_allocated_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_allocated_ns_list \- Perform an Admin identify for an allocated namespace list .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_cns_nsid.2 b/doc/man/nvme_mi_admin_identify_cns_nsid.2 index 9d05bdd..7eb3129 100644 --- a/doc/man/nvme_mi_admin_identify_cns_nsid.2 +++ b/doc/man/nvme_mi_admin_identify_cns_nsid.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_cns_nsid" 9 "nvme_mi_admin_identify_cns_nsid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_cns_nsid" 9 "nvme_mi_admin_identify_cns_nsid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_cns_nsid \- Perform an Admin identify command using specific CNS/NSID parameters. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_ctrl.2 b/doc/man/nvme_mi_admin_identify_ctrl.2 index 703965a..176f84c 100644 --- a/doc/man/nvme_mi_admin_identify_ctrl.2 +++ b/doc/man/nvme_mi_admin_identify_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_ctrl" 9 "nvme_mi_admin_identify_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ctrl" 9 "nvme_mi_admin_identify_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_ctrl \- Perform an Admin identify for a controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_ctrl_list.2 b/doc/man/nvme_mi_admin_identify_ctrl_list.2 index c8d105f..df12a16 100644 --- a/doc/man/nvme_mi_admin_identify_ctrl_list.2 +++ b/doc/man/nvme_mi_admin_identify_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_ctrl_list" 9 "nvme_mi_admin_identify_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ctrl_list" 9 "nvme_mi_admin_identify_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_ctrl_list \- Perform an Admin identify for a controller list. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_ns.2 b/doc/man/nvme_mi_admin_identify_ns.2 index 2df2553..474dbec 100644 --- a/doc/man/nvme_mi_admin_identify_ns.2 +++ b/doc/man/nvme_mi_admin_identify_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_ns" 9 "nvme_mi_admin_identify_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ns" 9 "nvme_mi_admin_identify_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_ns \- Perform an Admin identify command for a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_ns_descs.2 b/doc/man/nvme_mi_admin_identify_ns_descs.2 index 7402386..42703ea 100644 --- a/doc/man/nvme_mi_admin_identify_ns_descs.2 +++ b/doc/man/nvme_mi_admin_identify_ns_descs.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_ns_descs" 9 "nvme_mi_admin_identify_ns_descs" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ns_descs" 9 "nvme_mi_admin_identify_ns_descs" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_ns_descs \- Perform an Admin identify Namespace Identification Descriptor list command for a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_nsid_ctrl_list.2 b/doc/man/nvme_mi_admin_identify_nsid_ctrl_list.2 index 475198f..2d07a14 100644 --- a/doc/man/nvme_mi_admin_identify_nsid_ctrl_list.2 +++ b/doc/man/nvme_mi_admin_identify_nsid_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_nsid_ctrl_list" 9 "nvme_mi_admin_identify_nsid_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_nsid_ctrl_list" 9 "nvme_mi_admin_identify_nsid_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_nsid_ctrl_list \- Perform an Admin identify for a controller list with specific namespace ID .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_partial.2 b/doc/man/nvme_mi_admin_identify_partial.2 index 8b7a19d..8ec86dd 100644 --- a/doc/man/nvme_mi_admin_identify_partial.2 +++ b/doc/man/nvme_mi_admin_identify_partial.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_partial" 9 "nvme_mi_admin_identify_partial" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_partial" 9 "nvme_mi_admin_identify_partial" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_partial \- Perform an Admin identify command, and retrieve partial response data. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_primary_ctrl.2 b/doc/man/nvme_mi_admin_identify_primary_ctrl.2 index e5f23bd..9c5e347 100644 --- a/doc/man/nvme_mi_admin_identify_primary_ctrl.2 +++ b/doc/man/nvme_mi_admin_identify_primary_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_primary_ctrl" 9 "nvme_mi_admin_identify_primary_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_primary_ctrl" 9 "nvme_mi_admin_identify_primary_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_primary_ctrl \- Perform an Admin identify for primary controller capabilities data structure. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_secondary_ctrl_list.2 b/doc/man/nvme_mi_admin_identify_secondary_ctrl_list.2 index db8df03..175bb3a 100644 --- a/doc/man/nvme_mi_admin_identify_secondary_ctrl_list.2 +++ b/doc/man/nvme_mi_admin_identify_secondary_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_secondary_ctrl_list" 9 "nvme_mi_admin_identify_secondary_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_secondary_ctrl_list" 9 "nvme_mi_admin_identify_secondary_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_secondary_ctrl_list \- Perform an Admin identify for a secondary controller list. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_ns_attach.2 b/doc/man/nvme_mi_admin_ns_attach.2 index ba9ca70..9cc9f2c 100644 --- a/doc/man/nvme_mi_admin_ns_attach.2 +++ b/doc/man/nvme_mi_admin_ns_attach.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_ns_attach" 9 "nvme_mi_admin_ns_attach" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_ns_attach" 9 "nvme_mi_admin_ns_attach" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_ns_attach \- Attach or detach namespace to controller(s) .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_ns_attach_ctrls.2 b/doc/man/nvme_mi_admin_ns_attach_ctrls.2 index 6d30893..c7ad15a 100644 --- a/doc/man/nvme_mi_admin_ns_attach_ctrls.2 +++ b/doc/man/nvme_mi_admin_ns_attach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_ns_attach_ctrls" 9 "nvme_mi_admin_ns_attach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_ns_attach_ctrls" 9 "nvme_mi_admin_ns_attach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_ns_attach_ctrls \- Attach namespace to controllers .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_ns_detach_ctrls.2 b/doc/man/nvme_mi_admin_ns_detach_ctrls.2 index c941ef4..076fd28 100644 --- a/doc/man/nvme_mi_admin_ns_detach_ctrls.2 +++ b/doc/man/nvme_mi_admin_ns_detach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_ns_detach_ctrls" 9 "nvme_mi_admin_ns_detach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_ns_detach_ctrls" 9 "nvme_mi_admin_ns_detach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_ns_detach_ctrls \- Detach namespace from controllers .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_req_hdr.2 b/doc/man/nvme_mi_admin_req_hdr.2 index b8b907a..5e41884 100644 --- a/doc/man/nvme_mi_admin_req_hdr.2 +++ b/doc/man/nvme_mi_admin_req_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_admin_req_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_admin_req_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_admin_req_hdr \- Admin command request header. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_resp_hdr.2 b/doc/man/nvme_mi_admin_resp_hdr.2 index d9bab90..187670b 100644 --- a/doc/man/nvme_mi_admin_resp_hdr.2 +++ b/doc/man/nvme_mi_admin_resp_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_admin_resp_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_admin_resp_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_admin_resp_hdr \- Admin command response header. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_sanitize_nvm.2 b/doc/man/nvme_mi_admin_sanitize_nvm.2 index ece2dc7..bb5232a 100644 --- a/doc/man/nvme_mi_admin_sanitize_nvm.2 +++ b/doc/man/nvme_mi_admin_sanitize_nvm.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_sanitize_nvm" 9 "nvme_mi_admin_sanitize_nvm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_sanitize_nvm" 9 "nvme_mi_admin_sanitize_nvm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_sanitize_nvm \- Start a subsystem Sanitize operation .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_security_recv.2 b/doc/man/nvme_mi_admin_security_recv.2 index 8daf1a7..553dbb6 100644 --- a/doc/man/nvme_mi_admin_security_recv.2 +++ b/doc/man/nvme_mi_admin_security_recv.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_security_recv" 9 "nvme_mi_admin_security_recv" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_security_recv" 9 "nvme_mi_admin_security_recv" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_security_recv \- Perform a Security Receive command on a controller. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_security_send.2 b/doc/man/nvme_mi_admin_security_send.2 index 0e87b00..ed6eb99 100644 --- a/doc/man/nvme_mi_admin_security_send.2 +++ b/doc/man/nvme_mi_admin_security_send.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_security_send" 9 "nvme_mi_admin_security_send" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_security_send" 9 "nvme_mi_admin_security_send" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_security_send \- Perform a Security Send command on a controller. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_xfer.2 b/doc/man/nvme_mi_admin_xfer.2 index fbb9f52..d9fb382 100644 --- a/doc/man/nvme_mi_admin_xfer.2 +++ b/doc/man/nvme_mi_admin_xfer.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_xfer" 9 "nvme_mi_admin_xfer" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_xfer" 9 "nvme_mi_admin_xfer" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_xfer \- Raw admin transfer interface. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_ccs.2 b/doc/man/nvme_mi_ccs.2 index faf98c6..bfa5bee 100644 --- a/doc/man/nvme_mi_ccs.2 +++ b/doc/man/nvme_mi_ccs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_ccs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_ccs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_ccs \- Get State Control Primitive Success Response Fields - Control Primitive Specific Response .SH SYNOPSIS diff --git a/doc/man/nvme_mi_close.2 b/doc/man/nvme_mi_close.2 index 4484204..fae9416 100644 --- a/doc/man/nvme_mi_close.2 +++ b/doc/man/nvme_mi_close.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_close" 9 "nvme_mi_close" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_close" 9 "nvme_mi_close" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_close \- Close an endpoint connection and release resources, including controller objects. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_close_ctrl.2 b/doc/man/nvme_mi_close_ctrl.2 index 826ceff..f6a6552 100644 --- a/doc/man/nvme_mi_close_ctrl.2 +++ b/doc/man/nvme_mi_close_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_close_ctrl" 9 "nvme_mi_close_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_close_ctrl" 9 "nvme_mi_close_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_close_ctrl \- free a controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_cmd_supported_effects.2 b/doc/man/nvme_mi_cmd_supported_effects.2 index f6093ec..c4a9e53 100644 --- a/doc/man/nvme_mi_cmd_supported_effects.2 +++ b/doc/man/nvme_mi_cmd_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_cmd_supported_effects" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_cmd_supported_effects" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_cmd_supported_effects \- MI Command Supported and Effects Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_cmd_supported_effects_log.2 b/doc/man/nvme_mi_cmd_supported_effects_log.2 index f012bba..80321f2 100644 --- a/doc/man/nvme_mi_cmd_supported_effects_log.2 +++ b/doc/man/nvme_mi_cmd_supported_effects_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_cmd_supported_effects_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_cmd_supported_effects_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_cmd_supported_effects_log \- NVMe-MI Commands Supported and Effects Log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_config_id.2 b/doc/man/nvme_mi_config_id.2 index 60e1668..338e9fc 100644 --- a/doc/man/nvme_mi_config_id.2 +++ b/doc/man/nvme_mi_config_id.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_config_id" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_config_id" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_config_id \- NVMe-MI Configuration identifier. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_config_smbus_freq.2 b/doc/man/nvme_mi_config_smbus_freq.2 index c34c987..7016b1c 100644 --- a/doc/man/nvme_mi_config_smbus_freq.2 +++ b/doc/man/nvme_mi_config_smbus_freq.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_config_smbus_freq" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_config_smbus_freq" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_config_smbus_freq \- SMBus/I2C frequency values .SH SYNOPSIS diff --git a/doc/man/nvme_mi_control.2 b/doc/man/nvme_mi_control.2 index 0ba1cbc..77fa1d6 100644 --- a/doc/man/nvme_mi_control.2 +++ b/doc/man/nvme_mi_control.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_control" 9 "nvme_mi_control" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_control" 9 "nvme_mi_control" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_control \- Perform a Control Primitive command .SH SYNOPSIS diff --git a/doc/man/nvme_mi_control_opcode.2 b/doc/man/nvme_mi_control_opcode.2 index b04422c..9f9f029 100644 --- a/doc/man/nvme_mi_control_opcode.2 +++ b/doc/man/nvme_mi_control_opcode.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_control_opcode" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_control_opcode" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_control_opcode \- Operation code for Control Primitives. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_control_req.2 b/doc/man/nvme_mi_control_req.2 index 50372c3..46ed28d 100644 --- a/doc/man/nvme_mi_control_req.2 +++ b/doc/man/nvme_mi_control_req.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_control_req" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_control_req" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_control_req \- The Control Primitive request. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_create_root.2 b/doc/man/nvme_mi_create_root.2 index ac0e66f..5b4f541 100644 --- a/doc/man/nvme_mi_create_root.2 +++ b/doc/man/nvme_mi_create_root.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_create_root" 9 "nvme_mi_create_root" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_create_root" 9 "nvme_mi_create_root" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_create_root \- Create top-level MI (root) handle. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_csts.2 b/doc/man/nvme_mi_csts.2 index 7c4820c..258c204 100644 --- a/doc/man/nvme_mi_csts.2 +++ b/doc/man/nvme_mi_csts.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_csts" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_csts" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_csts \- Controller Health Data Structure (CHDS) - Controller Status (CSTS) .SH SYNOPSIS diff --git a/doc/man/nvme_mi_ctrl_health_status.2 b/doc/man/nvme_mi_ctrl_health_status.2 index a08528d..d4b4adc 100644 --- a/doc/man/nvme_mi_ctrl_health_status.2 +++ b/doc/man/nvme_mi_ctrl_health_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_ctrl_health_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_ctrl_health_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_ctrl_health_status \- Controller Health Data Structure (CHDS) .SH SYNOPSIS diff --git a/doc/man/nvme_mi_ctrl_id.2 b/doc/man/nvme_mi_ctrl_id.2 index 720227a..50c0457 100644 --- a/doc/man/nvme_mi_ctrl_id.2 +++ b/doc/man/nvme_mi_ctrl_id.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_ctrl_id" 9 "nvme_mi_ctrl_id" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_ctrl_id" 9 "nvme_mi_ctrl_id" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_ctrl_id \- get the ID of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_cwarn.2 b/doc/man/nvme_mi_cwarn.2 index dcf5197..9bcaf2e 100644 --- a/doc/man/nvme_mi_cwarn.2 +++ b/doc/man/nvme_mi_cwarn.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_cwarn" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_cwarn" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_cwarn \- Controller Health Data Structure (CHDS) - Critical Warning (CWARN) .SH SYNOPSIS diff --git a/doc/man/nvme_mi_dtyp.2 b/doc/man/nvme_mi_dtyp.2 index 08a49bf..547785b 100644 --- a/doc/man/nvme_mi_dtyp.2 +++ b/doc/man/nvme_mi_dtyp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_dtyp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_dtyp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_dtyp \- Data Structure Type field. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_elem.2 b/doc/man/nvme_mi_elem.2 index d8da364..4b3c59c 100644 --- a/doc/man/nvme_mi_elem.2 +++ b/doc/man/nvme_mi_elem.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_elem" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_elem" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_elem \- Element Descriptor Types .SH SYNOPSIS diff --git a/doc/man/nvme_mi_free_root.2 b/doc/man/nvme_mi_free_root.2 index 10bf8ed..64f2762 100644 --- a/doc/man/nvme_mi_free_root.2 +++ b/doc/man/nvme_mi_free_root.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_free_root" 9 "nvme_mi_free_root" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_free_root" 9 "nvme_mi_free_root" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_free_root \- Free root object. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_init_ctrl.2 b/doc/man/nvme_mi_init_ctrl.2 index 8d67ecc..19b7a36 100644 --- a/doc/man/nvme_mi_init_ctrl.2 +++ b/doc/man/nvme_mi_init_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_init_ctrl" 9 "nvme_mi_init_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_init_ctrl" 9 "nvme_mi_init_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_init_ctrl \- initialise a NVMe controller. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_message_type.2 b/doc/man/nvme_mi_message_type.2 index 99fa71a..0754c56 100644 --- a/doc/man/nvme_mi_message_type.2 +++ b/doc/man/nvme_mi_message_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_message_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_message_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_message_type \- NVMe-MI message type field. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_opcode.2 b/doc/man/nvme_mi_mi_opcode.2 index c4ee748..a526127 100644 --- a/doc/man/nvme_mi_mi_opcode.2 +++ b/doc/man/nvme_mi_mi_opcode.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_mi_opcode" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_mi_opcode" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_mi_opcode \- Operation code for supported NVMe-MI commands. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_read_mi_data_ctrl.2 b/doc/man/nvme_mi_mi_read_mi_data_ctrl.2 index 80c3c20..1275f9e 100644 --- a/doc/man/nvme_mi_mi_read_mi_data_ctrl.2 +++ b/doc/man/nvme_mi_mi_read_mi_data_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_mi_read_mi_data_ctrl" 9 "nvme_mi_mi_read_mi_data_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_ctrl" 9 "nvme_mi_mi_read_mi_data_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_mi_read_mi_data_ctrl \- Perform a Read MI Data Structure command, retrieving controller information .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_read_mi_data_ctrl_list.2 b/doc/man/nvme_mi_mi_read_mi_data_ctrl_list.2 index ae9b072..a84a98b 100644 --- a/doc/man/nvme_mi_mi_read_mi_data_ctrl_list.2 +++ b/doc/man/nvme_mi_mi_read_mi_data_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_mi_read_mi_data_ctrl_list" 9 "nvme_mi_mi_read_mi_data_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_ctrl_list" 9 "nvme_mi_mi_read_mi_data_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_mi_read_mi_data_ctrl_list \- Perform a Read MI Data Structure command, retrieving the list of attached controllers. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_read_mi_data_port.2 b/doc/man/nvme_mi_mi_read_mi_data_port.2 index b9393f7..3420201 100644 --- a/doc/man/nvme_mi_mi_read_mi_data_port.2 +++ b/doc/man/nvme_mi_mi_read_mi_data_port.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_mi_read_mi_data_port" 9 "nvme_mi_mi_read_mi_data_port" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_port" 9 "nvme_mi_mi_read_mi_data_port" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_mi_read_mi_data_port \- Perform a Read MI Data Structure command, retrieving port data. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_read_mi_data_subsys.2 b/doc/man/nvme_mi_mi_read_mi_data_subsys.2 index ce0e6cd..7624a45 100644 --- a/doc/man/nvme_mi_mi_read_mi_data_subsys.2 +++ b/doc/man/nvme_mi_mi_read_mi_data_subsys.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_mi_read_mi_data_subsys" 9 "nvme_mi_mi_read_mi_data_subsys" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_subsys" 9 "nvme_mi_mi_read_mi_data_subsys" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_mi_read_mi_data_subsys \- Perform a Read MI Data Structure command, retrieving subsystem data. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_req_hdr.2 b/doc/man/nvme_mi_mi_req_hdr.2 index a4a7845..9b459dd 100644 --- a/doc/man/nvme_mi_mi_req_hdr.2 +++ b/doc/man/nvme_mi_mi_req_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_mi_req_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_mi_req_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_mi_req_hdr \- MI request message header. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_resp_hdr.2 b/doc/man/nvme_mi_mi_resp_hdr.2 index 10b6385..6917f42 100644 --- a/doc/man/nvme_mi_mi_resp_hdr.2 +++ b/doc/man/nvme_mi_mi_resp_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_mi_resp_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_mi_resp_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_mi_resp_hdr \- MI response message header. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_subsystem_health_status_poll.2 b/doc/man/nvme_mi_mi_subsystem_health_status_poll.2 index 6f9dbcd..e539128 100644 --- a/doc/man/nvme_mi_mi_subsystem_health_status_poll.2 +++ b/doc/man/nvme_mi_mi_subsystem_health_status_poll.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_mi_subsystem_health_status_poll" 9 "nvme_mi_mi_subsystem_health_status_poll" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_mi_subsystem_health_status_poll" 9 "nvme_mi_mi_subsystem_health_status_poll" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_mi_subsystem_health_status_poll \- Read the Subsystem Health Data Structure from the NVM subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_xfer.2 b/doc/man/nvme_mi_mi_xfer.2 new file mode 100644 index 0000000..903ba96 --- /dev/null +++ b/doc/man/nvme_mi_mi_xfer.2 @@ -0,0 +1,37 @@ +.TH "nvme_mi_mi_xfer" 9 "nvme_mi_mi_xfer" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_mi_xfer \- Raw mi transfer interface. +.SH SYNOPSIS +.B "int" nvme_mi_mi_xfer +.BI "(nvme_mi_ep_t ep " "," +.BI "struct nvme_mi_mi_req_hdr *mi_req " "," +.BI "size_t req_data_size " "," +.BI "struct nvme_mi_mi_resp_hdr *mi_resp " "," +.BI "size_t *resp_data_size " ");" +.SH ARGUMENTS +.IP "ep" 12 +endpoint to send the MI command to +.IP "mi_req" 12 +request data +.IP "req_data_size" 12 +size of request data payload +.IP "mi_resp" 12 +buffer for response data +.IP "resp_data_size" 12 +size of response data buffer, updated to received size +.SH "DESCRIPTION" +Performs an arbitrary NVMe MI command, using the provided request data, +in \fImi_req\fP. The size of the request data *payload* is specified in +\fIreq_data_size\fP - this does not include the standard header length (so a +header-only request would have a size of 0). Note that the Management +Request Doublewords are considered part of the header data. + +On success, response data is stored in \fImi_resp\fP, which has an optional +appended payload buffer of \fIresp_data_size\fP bytes. The actual payload +size transferred will be stored in \fIresp_data_size\fP. This size does not +include the MI response header, so 0 represents no payload. + +See: \fIstruct nvme_mi_mi_req_hdr\fP and \fIstruct nvme_mi_mi_resp_hdr\fP. +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise.. diff --git a/doc/man/nvme_mi_msg_hdr.2 b/doc/man/nvme_mi_msg_hdr.2 index 038340d..ec18259 100644 --- a/doc/man/nvme_mi_msg_hdr.2 +++ b/doc/man/nvme_mi_msg_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_msg_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_msg_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_msg_hdr \- General MI message header. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_msg_resp.2 b/doc/man/nvme_mi_msg_resp.2 index 853f5ff..0a0c63e 100644 --- a/doc/man/nvme_mi_msg_resp.2 +++ b/doc/man/nvme_mi_msg_resp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_msg_resp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_msg_resp" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_msg_resp \- Generic response type. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_nvm_ss_health_status.2 b/doc/man/nvme_mi_nvm_ss_health_status.2 index 11ca6d1..b6746ae 100644 --- a/doc/man/nvme_mi_nvm_ss_health_status.2 +++ b/doc/man/nvme_mi_nvm_ss_health_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_nvm_ss_health_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_nvm_ss_health_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_nvm_ss_health_status \- Subsystem Management Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_open_mctp.2 b/doc/man/nvme_mi_open_mctp.2 index 2bc0f09..b503371 100644 --- a/doc/man/nvme_mi_open_mctp.2 +++ b/doc/man/nvme_mi_open_mctp.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_open_mctp" 9 "nvme_mi_open_mctp" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_open_mctp" 9 "nvme_mi_open_mctp" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_open_mctp \- Create an endpoint using a MCTP connection. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_osc.2 b/doc/man/nvme_mi_osc.2 index 52abd64..b18cfc1 100644 --- a/doc/man/nvme_mi_osc.2 +++ b/doc/man/nvme_mi_osc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_osc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_osc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_osc \- Optionally Supported Command Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_port_pcie.2 b/doc/man/nvme_mi_port_pcie.2 index 7fe9751..c5314f5 100644 --- a/doc/man/nvme_mi_port_pcie.2 +++ b/doc/man/nvme_mi_port_pcie.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_port_pcie" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_port_pcie" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_port_pcie \- PCIe Port Specific Data .SH SYNOPSIS diff --git a/doc/man/nvme_mi_port_smb.2 b/doc/man/nvme_mi_port_smb.2 index afc5c12..212791a 100644 --- a/doc/man/nvme_mi_port_smb.2 +++ b/doc/man/nvme_mi_port_smb.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_port_smb" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_port_smb" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_port_smb \- SMBus Port Specific Data .SH SYNOPSIS diff --git a/doc/man/nvme_mi_read_ctrl_info.2 b/doc/man/nvme_mi_read_ctrl_info.2 index 4889827..ecaf03b 100644 --- a/doc/man/nvme_mi_read_ctrl_info.2 +++ b/doc/man/nvme_mi_read_ctrl_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_read_ctrl_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_ctrl_info" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_read_ctrl_info \- Controller Information Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_read_nvm_ss_info.2 b/doc/man/nvme_mi_read_nvm_ss_info.2 index 5bbf691..ce8a6e5 100644 --- a/doc/man/nvme_mi_read_nvm_ss_info.2 +++ b/doc/man/nvme_mi_read_nvm_ss_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_read_nvm_ss_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_nvm_ss_info" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_read_nvm_ss_info \- NVM Subsystem Information Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_read_port_info.2 b/doc/man/nvme_mi_read_port_info.2 index 972a14a..9755ac8 100644 --- a/doc/man/nvme_mi_read_port_info.2 +++ b/doc/man/nvme_mi_read_port_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_read_port_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_port_info" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_read_port_info \- Port Information Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_read_sc_list.2 b/doc/man/nvme_mi_read_sc_list.2 index a46e284..e9d3dbf 100644 --- a/doc/man/nvme_mi_read_sc_list.2 +++ b/doc/man/nvme_mi_read_sc_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_read_sc_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_sc_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_read_sc_list \- Management Endpoint Buffer Supported Command List Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_resp_status.2 b/doc/man/nvme_mi_resp_status.2 index 7b0d6b6..066e7bf 100644 --- a/doc/man/nvme_mi_resp_status.2 +++ b/doc/man/nvme_mi_resp_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_resp_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_resp_status" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_resp_status \- values for the response status field .SH SYNOPSIS diff --git a/doc/man/nvme_mi_set_probe_enabled.2 b/doc/man/nvme_mi_set_probe_enabled.2 index b4165ed..c1623bb 100644 --- a/doc/man/nvme_mi_set_probe_enabled.2 +++ b/doc/man/nvme_mi_set_probe_enabled.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_set_probe_enabled" 9 "nvme_mi_set_probe_enabled" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_set_probe_enabled" 9 "nvme_mi_set_probe_enabled" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_set_probe_enabled \- enable/disable the probe for new endpoints .SH SYNOPSIS diff --git a/doc/man/nvme_mi_status_to_string.2 b/doc/man/nvme_mi_status_to_string.2 index 995d586..4fd928d 100644 --- a/doc/man/nvme_mi_status_to_string.2 +++ b/doc/man/nvme_mi_status_to_string.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_status_to_string" 9 "nvme_mi_status_to_string" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_status_to_string" 9 "nvme_mi_status_to_string" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_status_to_string \- return a string representation of the MI status. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_hdr.2 b/doc/man/nvme_mi_vpd_hdr.2 index d6e091e..b749e45 100644 --- a/doc/man/nvme_mi_vpd_hdr.2 +++ b/doc/man/nvme_mi_vpd_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_hdr \- Vital Product Data Common Header .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_mr_common.2 b/doc/man/nvme_mi_vpd_mr_common.2 index f63365a..dec432a 100644 --- a/doc/man/nvme_mi_vpd_mr_common.2 +++ b/doc/man/nvme_mi_vpd_mr_common.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_mr_common" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_mr_common" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_mr_common \- NVMe MultiRecord Area .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_mra.2 b/doc/man/nvme_mi_vpd_mra.2 index a882e19..779dfcf 100644 --- a/doc/man/nvme_mi_vpd_mra.2 +++ b/doc/man/nvme_mi_vpd_mra.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_mra" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_mra" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_mra \- NVMe MultiRecord Area .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_ppmra.2 b/doc/man/nvme_mi_vpd_ppmra.2 index 76c18f6..977da53 100644 --- a/doc/man/nvme_mi_vpd_ppmra.2 +++ b/doc/man/nvme_mi_vpd_ppmra.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_ppmra" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_ppmra" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_ppmra \- NVMe PCIe Port MultiRecord Area .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_telem.2 b/doc/man/nvme_mi_vpd_telem.2 index d3cc245..f9efd67 100644 --- a/doc/man/nvme_mi_vpd_telem.2 +++ b/doc/man/nvme_mi_vpd_telem.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_telem" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_telem" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_telem \- Vital Product Data Element Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_tra.2 b/doc/man/nvme_mi_vpd_tra.2 index f54b248..09160f5 100644 --- a/doc/man/nvme_mi_vpd_tra.2 +++ b/doc/man/nvme_mi_vpd_tra.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_tra" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_tra" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_tra \- Vital Product Data Topology MultiRecord .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_attach_ctrls.2 b/doc/man/nvme_namespace_attach_ctrls.2 index 70a192f..be81e3b 100644 --- a/doc/man/nvme_namespace_attach_ctrls.2 +++ b/doc/man/nvme_namespace_attach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_attach_ctrls" 9 "nvme_namespace_attach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_attach_ctrls" 9 "nvme_namespace_attach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_attach_ctrls \- Attach namespace to controller(s) .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_detach_ctrls.2 b/doc/man/nvme_namespace_detach_ctrls.2 index 3dd59c9..2547377 100644 --- a/doc/man/nvme_namespace_detach_ctrls.2 +++ b/doc/man/nvme_namespace_detach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_detach_ctrls" 9 "nvme_namespace_detach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_detach_ctrls" 9 "nvme_namespace_detach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_detach_ctrls \- Detach namespace from controller(s) .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_filter.2 b/doc/man/nvme_namespace_filter.2 index 64ce6be..018e799 100644 --- a/doc/man/nvme_namespace_filter.2 +++ b/doc/man/nvme_namespace_filter.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_filter" 9 "nvme_namespace_filter" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_filter" 9 "nvme_namespace_filter" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_filter \- Filter for namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_first_path.2 b/doc/man/nvme_namespace_first_path.2 index 7efaa73..dade850 100644 --- a/doc/man/nvme_namespace_first_path.2 +++ b/doc/man/nvme_namespace_first_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_first_path" 9 "nvme_namespace_first_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_first_path" 9 "nvme_namespace_first_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_first_path \- Start path iterator .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_for_each_path.2 b/doc/man/nvme_namespace_for_each_path.2 index cea88d1..3c90cc4 100644 --- a/doc/man/nvme_namespace_for_each_path.2 +++ b/doc/man/nvme_namespace_for_each_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_for_each_path" 9 "nvme_namespace_for_each_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_for_each_path" 9 "nvme_namespace_for_each_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_for_each_path \- Traverse paths .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_for_each_path_safe.2 b/doc/man/nvme_namespace_for_each_path_safe.2 index 7c39ca5..4101070 100644 --- a/doc/man/nvme_namespace_for_each_path_safe.2 +++ b/doc/man/nvme_namespace_for_each_path_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_for_each_path_safe" 9 "nvme_namespace_for_each_path_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_for_each_path_safe" 9 "nvme_namespace_for_each_path_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_for_each_path_safe \- Traverse paths .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_next_path.2 b/doc/man/nvme_namespace_next_path.2 index 3a1b626..776d621 100644 --- a/doc/man/nvme_namespace_next_path.2 +++ b/doc/man/nvme_namespace_next_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_next_path" 9 "nvme_namespace_next_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_next_path" 9 "nvme_namespace_next_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_next_path \- Next path iterator .SH SYNOPSIS diff --git a/doc/man/nvme_nbft_free.2 b/doc/man/nvme_nbft_free.2 index bad5f65..4ce8c8a 100644 --- a/doc/man/nvme_nbft_free.2 +++ b/doc/man/nvme_nbft_free.2 @@ -1,4 +1,4 @@ -.TH "nvme_nbft_free" 9 "nvme_nbft_free" "November 2024" "libnvme API manual" LINUX +.TH "nvme_nbft_free" 9 "nvme_nbft_free" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_nbft_free \- Free the struct nbft_info and its contents .SH SYNOPSIS diff --git a/doc/man/nvme_nbft_read.2 b/doc/man/nvme_nbft_read.2 index df69263..eb4c635 100644 --- a/doc/man/nvme_nbft_read.2 +++ b/doc/man/nvme_nbft_read.2 @@ -1,4 +1,4 @@ -.TH "nvme_nbft_read" 9 "nvme_nbft_read" "November 2024" "libnvme API manual" LINUX +.TH "nvme_nbft_read" 9 "nvme_nbft_read" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_nbft_read \- Read and parse contents of an ACPI NBFT table .SH SYNOPSIS diff --git a/doc/man/nvme_nd_ns_fpi.2 b/doc/man/nvme_nd_ns_fpi.2 index cb6cf70..6426fbb 100644 --- a/doc/man/nvme_nd_ns_fpi.2 +++ b/doc/man/nvme_nd_ns_fpi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_nd_ns_fpi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nd_ns_fpi" "March 2025" "API Manual" LINUX .SH NAME enum nvme_nd_ns_fpi \- If a format operation is in progress, this field indicates the percentage of the namespace that remains to be formatted. .SH SYNOPSIS diff --git a/doc/man/nvme_next_host.2 b/doc/man/nvme_next_host.2 index 3f8f88f..3e13b6f 100644 --- a/doc/man/nvme_next_host.2 +++ b/doc/man/nvme_next_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_next_host" 9 "nvme_next_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_next_host" 9 "nvme_next_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_next_host \- Next host iterator .SH SYNOPSIS diff --git a/doc/man/nvme_next_subsystem.2 b/doc/man/nvme_next_subsystem.2 index d7fe1ac..1321098 100644 --- a/doc/man/nvme_next_subsystem.2 +++ b/doc/man/nvme_next_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_next_subsystem" 9 "nvme_next_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_next_subsystem" 9 "nvme_next_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_next_subsystem \- Next subsystem iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ns_attach.2 b/doc/man/nvme_ns_attach.2 index 8b4fb1b..d1f96c8 100644 --- a/doc/man/nvme_ns_attach.2 +++ b/doc/man/nvme_ns_attach.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_attach" 9 "nvme_ns_attach" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_attach" 9 "nvme_ns_attach" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_attach \- Attach or detach namespace to controller(s) .SH SYNOPSIS diff --git a/doc/man/nvme_ns_attach_ctrls.2 b/doc/man/nvme_ns_attach_ctrls.2 index da752df..093e186 100644 --- a/doc/man/nvme_ns_attach_ctrls.2 +++ b/doc/man/nvme_ns_attach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_attach_ctrls" 9 "nvme_ns_attach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_attach_ctrls" 9 "nvme_ns_attach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_attach_ctrls \- Attach namespace to controllers .SH SYNOPSIS diff --git a/doc/man/nvme_ns_attach_sel.2 b/doc/man/nvme_ns_attach_sel.2 index c86145b..75c8362 100644 --- a/doc/man/nvme_ns_attach_sel.2 +++ b/doc/man/nvme_ns_attach_sel.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ns_attach_sel" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_attach_sel" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ns_attach_sel \- Namespace Attachment - Select .SH SYNOPSIS diff --git a/doc/man/nvme_ns_compare.2 b/doc/man/nvme_ns_compare.2 index e48706d..3235c1d 100644 --- a/doc/man/nvme_ns_compare.2 +++ b/doc/man/nvme_ns_compare.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_compare" 9 "nvme_ns_compare" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_compare" 9 "nvme_ns_compare" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_compare \- Compare data on a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_detach_ctrls.2 b/doc/man/nvme_ns_detach_ctrls.2 index 1e7fc17..bf17aec 100644 --- a/doc/man/nvme_ns_detach_ctrls.2 +++ b/doc/man/nvme_ns_detach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_detach_ctrls" 9 "nvme_ns_detach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_detach_ctrls" 9 "nvme_ns_detach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_detach_ctrls \- Detach namespace from controllers .SH SYNOPSIS diff --git a/doc/man/nvme_ns_flush.2 b/doc/man/nvme_ns_flush.2 index a0b3085..0aee7cf 100644 --- a/doc/man/nvme_ns_flush.2 +++ b/doc/man/nvme_ns_flush.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_flush" 9 "nvme_ns_flush" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_flush" 9 "nvme_ns_flush" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_flush \- Flush data to a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_csi.2 b/doc/man/nvme_ns_get_csi.2 index 62b7d8a..a7bf002 100644 --- a/doc/man/nvme_ns_get_csi.2 +++ b/doc/man/nvme_ns_get_csi.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_csi" 9 "nvme_ns_get_csi" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_csi" 9 "nvme_ns_get_csi" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_csi \- Command set identifier of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_ctrl.2 b/doc/man/nvme_ns_get_ctrl.2 index 363eb22..087ff1a 100644 --- a/doc/man/nvme_ns_get_ctrl.2 +++ b/doc/man/nvme_ns_get_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_ctrl" 9 "nvme_ns_get_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_ctrl" 9 "nvme_ns_get_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_ctrl \- &nvme_ctrl_t of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_eui64.2 b/doc/man/nvme_ns_get_eui64.2 index d704e7c..86421b3 100644 --- a/doc/man/nvme_ns_get_eui64.2 +++ b/doc/man/nvme_ns_get_eui64.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_eui64" 9 "nvme_ns_get_eui64" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_eui64" 9 "nvme_ns_get_eui64" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_eui64 \- 64-bit eui of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_fd.2 b/doc/man/nvme_ns_get_fd.2 index bfb383e..cff2024 100644 --- a/doc/man/nvme_ns_get_fd.2 +++ b/doc/man/nvme_ns_get_fd.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_fd" 9 "nvme_ns_get_fd" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_fd" 9 "nvme_ns_get_fd" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_fd \- Get associated file descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_firmware.2 b/doc/man/nvme_ns_get_firmware.2 index 1c4c2fa..05e015f 100644 --- a/doc/man/nvme_ns_get_firmware.2 +++ b/doc/man/nvme_ns_get_firmware.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_firmware" 9 "nvme_ns_get_firmware" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_firmware" 9 "nvme_ns_get_firmware" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_firmware \- Firmware string of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_generic_name.2 b/doc/man/nvme_ns_get_generic_name.2 index 9a3d44b..c988d08 100644 --- a/doc/man/nvme_ns_get_generic_name.2 +++ b/doc/man/nvme_ns_get_generic_name.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_generic_name" 9 "nvme_ns_get_generic_name" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_generic_name" 9 "nvme_ns_get_generic_name" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_generic_name \- Returns name of generic namespace chardev. .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_lba_count.2 b/doc/man/nvme_ns_get_lba_count.2 index fb3b993..2348668 100644 --- a/doc/man/nvme_ns_get_lba_count.2 +++ b/doc/man/nvme_ns_get_lba_count.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_lba_count" 9 "nvme_ns_get_lba_count" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_lba_count" 9 "nvme_ns_get_lba_count" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_lba_count \- LBA count of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_lba_size.2 b/doc/man/nvme_ns_get_lba_size.2 index ff942c6..ca913f5 100644 --- a/doc/man/nvme_ns_get_lba_size.2 +++ b/doc/man/nvme_ns_get_lba_size.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_lba_size" 9 "nvme_ns_get_lba_size" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_lba_size" 9 "nvme_ns_get_lba_size" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_lba_size \- LBA size of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_lba_util.2 b/doc/man/nvme_ns_get_lba_util.2 index ab16675..577f231 100644 --- a/doc/man/nvme_ns_get_lba_util.2 +++ b/doc/man/nvme_ns_get_lba_util.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_lba_util" 9 "nvme_ns_get_lba_util" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_lba_util" 9 "nvme_ns_get_lba_util" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_lba_util \- LBA utilization of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_meta_size.2 b/doc/man/nvme_ns_get_meta_size.2 index 9644e47..1c3d567 100644 --- a/doc/man/nvme_ns_get_meta_size.2 +++ b/doc/man/nvme_ns_get_meta_size.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_meta_size" 9 "nvme_ns_get_meta_size" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_meta_size" 9 "nvme_ns_get_meta_size" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_meta_size \- Metadata size of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_model.2 b/doc/man/nvme_ns_get_model.2 index d3c49f3..381e8de 100644 --- a/doc/man/nvme_ns_get_model.2 +++ b/doc/man/nvme_ns_get_model.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_model" 9 "nvme_ns_get_model" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_model" 9 "nvme_ns_get_model" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_model \- Model of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_name.2 b/doc/man/nvme_ns_get_name.2 index 161ec65..e9481e3 100644 --- a/doc/man/nvme_ns_get_name.2 +++ b/doc/man/nvme_ns_get_name.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_name" 9 "nvme_ns_get_name" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_name" 9 "nvme_ns_get_name" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_name \- sysfs name of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_nguid.2 b/doc/man/nvme_ns_get_nguid.2 index 7ad7cf0..ccab454 100644 --- a/doc/man/nvme_ns_get_nguid.2 +++ b/doc/man/nvme_ns_get_nguid.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_nguid" 9 "nvme_ns_get_nguid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_nguid" 9 "nvme_ns_get_nguid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_nguid \- 128-bit nguid of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_nsid.2 b/doc/man/nvme_ns_get_nsid.2 index 704f5f8..5d16648 100644 --- a/doc/man/nvme_ns_get_nsid.2 +++ b/doc/man/nvme_ns_get_nsid.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_nsid" 9 "nvme_ns_get_nsid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_nsid" 9 "nvme_ns_get_nsid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_nsid \- NSID of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_serial.2 b/doc/man/nvme_ns_get_serial.2 index e9d2e74..29b4efd 100644 --- a/doc/man/nvme_ns_get_serial.2 +++ b/doc/man/nvme_ns_get_serial.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_serial" 9 "nvme_ns_get_serial" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_serial" 9 "nvme_ns_get_serial" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_serial \- Serial number of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_subsystem.2 b/doc/man/nvme_ns_get_subsystem.2 index c697877..249a556 100644 --- a/doc/man/nvme_ns_get_subsystem.2 +++ b/doc/man/nvme_ns_get_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_subsystem" 9 "nvme_ns_get_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_subsystem" 9 "nvme_ns_get_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_subsystem \- &nvme_subsystem_t of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_sysfs_dir.2 b/doc/man/nvme_ns_get_sysfs_dir.2 index bbecc8e..fd90abc 100644 --- a/doc/man/nvme_ns_get_sysfs_dir.2 +++ b/doc/man/nvme_ns_get_sysfs_dir.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_sysfs_dir" 9 "nvme_ns_get_sysfs_dir" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_sysfs_dir" 9 "nvme_ns_get_sysfs_dir" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_sysfs_dir \- sysfs directory of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_uuid.2 b/doc/man/nvme_ns_get_uuid.2 index 31fee53..bf6b2bc 100644 --- a/doc/man/nvme_ns_get_uuid.2 +++ b/doc/man/nvme_ns_get_uuid.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_uuid" 9 "nvme_ns_get_uuid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_uuid" 9 "nvme_ns_get_uuid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_uuid \- UUID of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_id_desc.2 b/doc/man/nvme_ns_id_desc.2 index 222dba3..a00a59e 100644 --- a/doc/man/nvme_ns_id_desc.2 +++ b/doc/man/nvme_ns_id_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ns_id_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ns_id_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ns_id_desc \- Namespace identifier type descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_ns_id_desc_nidt.2 b/doc/man/nvme_ns_id_desc_nidt.2 index 6ae8fa5..b856ea2 100644 --- a/doc/man/nvme_ns_id_desc_nidt.2 +++ b/doc/man/nvme_ns_id_desc_nidt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ns_id_desc_nidt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_id_desc_nidt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ns_id_desc_nidt \- Known namespace identifier types .SH SYNOPSIS diff --git a/doc/man/nvme_ns_identify.2 b/doc/man/nvme_ns_identify.2 index 876060a..2c238ed 100644 --- a/doc/man/nvme_ns_identify.2 +++ b/doc/man/nvme_ns_identify.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_identify" 9 "nvme_ns_identify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_identify" 9 "nvme_ns_identify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_identify \- Issue an 'identify namespace' command .SH SYNOPSIS diff --git a/doc/man/nvme_ns_identify_descs.2 b/doc/man/nvme_ns_identify_descs.2 index e44d543..89f5d19 100644 --- a/doc/man/nvme_ns_identify_descs.2 +++ b/doc/man/nvme_ns_identify_descs.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_identify_descs" 9 "nvme_ns_identify_descs" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_identify_descs" 9 "nvme_ns_identify_descs" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_identify_descs \- Issue an 'identify descriptors' command .SH SYNOPSIS diff --git a/doc/man/nvme_ns_list.2 b/doc/man/nvme_ns_list.2 index 3b0b172..af34f67 100644 --- a/doc/man/nvme_ns_list.2 +++ b/doc/man/nvme_ns_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ns_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ns_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ns_list \- Namespace List .SH SYNOPSIS diff --git a/doc/man/nvme_ns_metadata_type.2 b/doc/man/nvme_ns_metadata_type.2 index 32c0526..2eff144 100644 --- a/doc/man/nvme_ns_metadata_type.2 +++ b/doc/man/nvme_ns_metadata_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ns_metadata_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_metadata_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ns_metadata_type \- Namespace Metadata Element Types .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt.2 b/doc/man/nvme_ns_mgmt.2 index 2ace36f..06dc82c 100644 --- a/doc/man/nvme_ns_mgmt.2 +++ b/doc/man/nvme_ns_mgmt.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_mgmt" 9 "nvme_ns_mgmt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt" 9 "nvme_ns_mgmt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_mgmt \- Issue a Namespace management command .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt_create.2 b/doc/man/nvme_ns_mgmt_create.2 index 7556a75..4c9eb00 100644 --- a/doc/man/nvme_ns_mgmt_create.2 +++ b/doc/man/nvme_ns_mgmt_create.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_mgmt_create" 9 "nvme_ns_mgmt_create" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt_create" 9 "nvme_ns_mgmt_create" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_mgmt_create \- Create a non attached namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt_delete.2 b/doc/man/nvme_ns_mgmt_delete.2 index 19a6ff6..3ce01ec 100644 --- a/doc/man/nvme_ns_mgmt_delete.2 +++ b/doc/man/nvme_ns_mgmt_delete.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_mgmt_delete" 9 "nvme_ns_mgmt_delete" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt_delete" 9 "nvme_ns_mgmt_delete" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_mgmt_delete \- Delete a non attached namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt_delete_timeout.2 b/doc/man/nvme_ns_mgmt_delete_timeout.2 index 7a3676a..e0aa48f 100644 --- a/doc/man/nvme_ns_mgmt_delete_timeout.2 +++ b/doc/man/nvme_ns_mgmt_delete_timeout.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_mgmt_delete_timeout" 9 "nvme_ns_mgmt_delete_timeout" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt_delete_timeout" 9 "nvme_ns_mgmt_delete_timeout" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_mgmt_delete_timeout \- Delete a non attached namespace with timeout .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt_host_sw_specified.2 b/doc/man/nvme_ns_mgmt_host_sw_specified.2 index c2a0993..924f11d 100644 --- a/doc/man/nvme_ns_mgmt_host_sw_specified.2 +++ b/doc/man/nvme_ns_mgmt_host_sw_specified.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ns_mgmt_host_sw_specified" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ns_mgmt_host_sw_specified" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ns_mgmt_host_sw_specified \- Namespace management Host Software Specified Fields. .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt_sel.2 b/doc/man/nvme_ns_mgmt_sel.2 index 26bef3e..5de23f8 100644 --- a/doc/man/nvme_ns_mgmt_sel.2 +++ b/doc/man/nvme_ns_mgmt_sel.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ns_mgmt_sel" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_mgmt_sel" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ns_mgmt_sel \- Namespace Management - Select .SH SYNOPSIS diff --git a/doc/man/nvme_ns_read.2 b/doc/man/nvme_ns_read.2 index b3cf9e7..18b93f7 100644 --- a/doc/man/nvme_ns_read.2 +++ b/doc/man/nvme_ns_read.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_read" 9 "nvme_ns_read" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_read" 9 "nvme_ns_read" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_read \- Read from a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_release_fd.2 b/doc/man/nvme_ns_release_fd.2 index 9d8f1ff..d101442 100644 --- a/doc/man/nvme_ns_release_fd.2 +++ b/doc/man/nvme_ns_release_fd.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_release_fd" 9 "nvme_ns_release_fd" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_release_fd" 9 "nvme_ns_release_fd" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_release_fd \- Close fd and clear fd from ns object .SH SYNOPSIS diff --git a/doc/man/nvme_ns_rescan.2 b/doc/man/nvme_ns_rescan.2 index faaa6ec..fbc15ed 100644 --- a/doc/man/nvme_ns_rescan.2 +++ b/doc/man/nvme_ns_rescan.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_rescan" 9 "nvme_ns_rescan" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_rescan" 9 "nvme_ns_rescan" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_rescan \- Initiate a controller rescan .SH SYNOPSIS diff --git a/doc/man/nvme_ns_verify.2 b/doc/man/nvme_ns_verify.2 index 30130d4..b105847 100644 --- a/doc/man/nvme_ns_verify.2 +++ b/doc/man/nvme_ns_verify.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_verify" 9 "nvme_ns_verify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_verify" 9 "nvme_ns_verify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_verify \- Verify data on a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_write.2 b/doc/man/nvme_ns_write.2 index 41f5b67..25b1be6 100644 --- a/doc/man/nvme_ns_write.2 +++ b/doc/man/nvme_ns_write.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_write" 9 "nvme_ns_write" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_write" 9 "nvme_ns_write" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_write \- Write to a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_write_protect_cfg.2 b/doc/man/nvme_ns_write_protect_cfg.2 index f0628b7..54d71f1 100644 --- a/doc/man/nvme_ns_write_protect_cfg.2 +++ b/doc/man/nvme_ns_write_protect_cfg.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ns_write_protect_cfg" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_write_protect_cfg" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ns_write_protect_cfg \- Write Protection - Write Protection State .SH SYNOPSIS diff --git a/doc/man/nvme_ns_write_uncorrectable.2 b/doc/man/nvme_ns_write_uncorrectable.2 index c33c062..a868fb3 100644 --- a/doc/man/nvme_ns_write_uncorrectable.2 +++ b/doc/man/nvme_ns_write_uncorrectable.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_write_uncorrectable" 9 "nvme_ns_write_uncorrectable" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_write_uncorrectable" 9 "nvme_ns_write_uncorrectable" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_write_uncorrectable \- Issus a 'write uncorrectable' command .SH SYNOPSIS diff --git a/doc/man/nvme_ns_write_zeros.2 b/doc/man/nvme_ns_write_zeros.2 index e6f425e..7f16828 100644 --- a/doc/man/nvme_ns_write_zeros.2 +++ b/doc/man/nvme_ns_write_zeros.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_write_zeros" 9 "nvme_ns_write_zeros" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_write_zeros" 9 "nvme_ns_write_zeros" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_write_zeros \- Write zeros to a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_nss_hw_err_event.2 b/doc/man/nvme_nss_hw_err_event.2 index b59627f..c98e129 100644 --- a/doc/man/nvme_nss_hw_err_event.2 +++ b/doc/man/nvme_nss_hw_err_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_nss_hw_err_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nss_hw_err_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_nss_hw_err_event \- NVM Subsystem Hardware Error Event .SH SYNOPSIS diff --git a/doc/man/nvme_nvm_id_ns.2 b/doc/man/nvme_nvm_id_ns.2 index d766977..c83e294 100644 --- a/doc/man/nvme_nvm_id_ns.2 +++ b/doc/man/nvme_nvm_id_ns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_nvm_id_ns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nvm_id_ns" "March 2025" "API Manual" LINUX .SH NAME struct nvme_nvm_id_ns \- NVME Command Set I/O Command Set Specific Identify Namespace Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_nvm_id_ns_elbaf.2 b/doc/man/nvme_nvm_id_ns_elbaf.2 index d3244b5..4a91e1f 100644 --- a/doc/man/nvme_nvm_id_ns_elbaf.2 +++ b/doc/man/nvme_nvm_id_ns_elbaf.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_nvm_id_ns_elbaf" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvm_id_ns_elbaf" "March 2025" "API Manual" LINUX .SH NAME enum nvme_nvm_id_ns_elbaf \- This field indicates the extended LBA format .SH SYNOPSIS diff --git a/doc/man/nvme_nvm_id_ns_pif.2 b/doc/man/nvme_nvm_id_ns_pif.2 index b2f5f3b..38ae32f 100644 --- a/doc/man/nvme_nvm_id_ns_pif.2 +++ b/doc/man/nvme_nvm_id_ns_pif.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_nvm_id_ns_pif" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvm_id_ns_pif" "March 2025" "API Manual" LINUX .SH NAME enum nvme_nvm_id_ns_pif \- This field indicates the type of the Protection Information Format .SH SYNOPSIS diff --git a/doc/man/nvme_nvm_identify_ctrl.2 b/doc/man/nvme_nvm_identify_ctrl.2 index f9a2c02..b26338a 100644 --- a/doc/man/nvme_nvm_identify_ctrl.2 +++ b/doc/man/nvme_nvm_identify_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_nvm_identify_ctrl" 9 "nvme_nvm_identify_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_nvm_identify_ctrl" 9 "nvme_nvm_identify_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_nvm_identify_ctrl \- Identify controller data .SH SYNOPSIS diff --git a/doc/man/nvme_nvmeset_pl_status.2 b/doc/man/nvme_nvmeset_pl_status.2 index c256063..75cd6a3 100644 --- a/doc/man/nvme_nvmeset_pl_status.2 +++ b/doc/man/nvme_nvmeset_pl_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_nvmeset_pl_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvmeset_pl_status" "March 2025" "API Manual" LINUX .SH NAME enum nvme_nvmeset_pl_status \- Predictable Latency Per NVM Set Log - Status .SH SYNOPSIS diff --git a/doc/man/nvme_nvmset_attr.2 b/doc/man/nvme_nvmset_attr.2 index 98d7ecd..8910df6 100644 --- a/doc/man/nvme_nvmset_attr.2 +++ b/doc/man/nvme_nvmset_attr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_nvmset_attr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nvmset_attr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_nvmset_attr \- NVM Set Attributes Entry .SH SYNOPSIS diff --git a/doc/man/nvme_nvmset_pl_events.2 b/doc/man/nvme_nvmset_pl_events.2 index bd15343..7367679 100644 --- a/doc/man/nvme_nvmset_pl_events.2 +++ b/doc/man/nvme_nvmset_pl_events.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_nvmset_pl_events" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvmset_pl_events" "March 2025" "API Manual" LINUX .SH NAME enum nvme_nvmset_pl_events \- Predictable Latency Per NVM Set Log - Event Type .SH SYNOPSIS diff --git a/doc/man/nvme_nvmset_predictable_lat_log.2 b/doc/man/nvme_nvmset_predictable_lat_log.2 index 177d384..7c15f38 100644 --- a/doc/man/nvme_nvmset_predictable_lat_log.2 +++ b/doc/man/nvme_nvmset_predictable_lat_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_nvmset_predictable_lat_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nvmset_predictable_lat_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_nvmset_predictable_lat_log \- Predictable Latency Mode - Deterministic Threshold Configuration Data .SH SYNOPSIS diff --git a/doc/man/nvme_open.2 b/doc/man/nvme_open.2 index 9a58607..9e633b1 100644 --- a/doc/man/nvme_open.2 +++ b/doc/man/nvme_open.2 @@ -1,4 +1,4 @@ -.TH "nvme_open" 9 "nvme_open" "November 2024" "libnvme API manual" LINUX +.TH "nvme_open" 9 "nvme_open" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_open \- Open an nvme controller or namespace device .SH SYNOPSIS diff --git a/doc/man/nvme_parse_uri.2 b/doc/man/nvme_parse_uri.2 index 66c2e72..54d8de9 100644 --- a/doc/man/nvme_parse_uri.2 +++ b/doc/man/nvme_parse_uri.2 @@ -1,4 +1,4 @@ -.TH "nvme_parse_uri" 9 "nvme_parse_uri" "November 2024" "libnvme API manual" LINUX +.TH "nvme_parse_uri" 9 "nvme_parse_uri" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_parse_uri \- Parse the URI string .SH SYNOPSIS diff --git a/doc/man/nvme_passthru_cmd.2 b/doc/man/nvme_passthru_cmd.2 index e1186b4..f8a6fa6 100644 --- a/doc/man/nvme_passthru_cmd.2 +++ b/doc/man/nvme_passthru_cmd.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_passthru_cmd" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_passthru_cmd" "March 2025" "API Manual" LINUX .SH NAME struct nvme_passthru_cmd \- nvme passthrough command structure .SH SYNOPSIS diff --git a/doc/man/nvme_passthru_cmd64.2 b/doc/man/nvme_passthru_cmd64.2 index 246d72d..d77d556 100644 --- a/doc/man/nvme_passthru_cmd64.2 +++ b/doc/man/nvme_passthru_cmd64.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_passthru_cmd64" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_passthru_cmd64" "March 2025" "API Manual" LINUX .SH NAME struct nvme_passthru_cmd64 \- 64-bit nvme passthrough command structure .SH SYNOPSIS diff --git a/doc/man/nvme_path_get_ana_state.2 b/doc/man/nvme_path_get_ana_state.2 index 17ba02e..0133f40 100644 --- a/doc/man/nvme_path_get_ana_state.2 +++ b/doc/man/nvme_path_get_ana_state.2 @@ -1,4 +1,4 @@ -.TH "nvme_path_get_ana_state" 9 "nvme_path_get_ana_state" "November 2024" "libnvme API manual" LINUX +.TH "nvme_path_get_ana_state" 9 "nvme_path_get_ana_state" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_path_get_ana_state \- ANA state of an nvme_path_t object .SH SYNOPSIS diff --git a/doc/man/nvme_path_get_ctrl.2 b/doc/man/nvme_path_get_ctrl.2 index a6b3f15..f0989ae 100644 --- a/doc/man/nvme_path_get_ctrl.2 +++ b/doc/man/nvme_path_get_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_path_get_ctrl" 9 "nvme_path_get_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_path_get_ctrl" 9 "nvme_path_get_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_path_get_ctrl \- Parent controller of an nvme_path_t object .SH SYNOPSIS diff --git a/doc/man/nvme_path_get_name.2 b/doc/man/nvme_path_get_name.2 index 775a48c..9f1a589 100644 --- a/doc/man/nvme_path_get_name.2 +++ b/doc/man/nvme_path_get_name.2 @@ -1,4 +1,4 @@ -.TH "nvme_path_get_name" 9 "nvme_path_get_name" "November 2024" "libnvme API manual" LINUX +.TH "nvme_path_get_name" 9 "nvme_path_get_name" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_path_get_name \- sysfs name of an &nvme_path_t object .SH SYNOPSIS diff --git a/doc/man/nvme_path_get_ns.2 b/doc/man/nvme_path_get_ns.2 index ac8d3d2..9c68e51 100644 --- a/doc/man/nvme_path_get_ns.2 +++ b/doc/man/nvme_path_get_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_path_get_ns" 9 "nvme_path_get_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_path_get_ns" 9 "nvme_path_get_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_path_get_ns \- Parent namespace of an nvme_path_t object .SH SYNOPSIS diff --git a/doc/man/nvme_path_get_sysfs_dir.2 b/doc/man/nvme_path_get_sysfs_dir.2 index a429dea..35bf69e 100644 --- a/doc/man/nvme_path_get_sysfs_dir.2 +++ b/doc/man/nvme_path_get_sysfs_dir.2 @@ -1,4 +1,4 @@ -.TH "nvme_path_get_sysfs_dir" 9 "nvme_path_get_sysfs_dir" "November 2024" "libnvme API manual" LINUX +.TH "nvme_path_get_sysfs_dir" 9 "nvme_path_get_sysfs_dir" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_path_get_sysfs_dir \- sysfs directory of an nvme_path_t object .SH SYNOPSIS diff --git a/doc/man/nvme_paths_filter.2 b/doc/man/nvme_paths_filter.2 index 59e56e0..642c6a2 100644 --- a/doc/man/nvme_paths_filter.2 +++ b/doc/man/nvme_paths_filter.2 @@ -1,4 +1,4 @@ -.TH "nvme_paths_filter" 9 "nvme_paths_filter" "November 2024" "libnvme API manual" LINUX +.TH "nvme_paths_filter" 9 "nvme_paths_filter" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_paths_filter \- Filter for paths .SH SYNOPSIS diff --git a/doc/man/nvme_pel_ehai.2 b/doc/man/nvme_pel_ehai.2 index 4c6b9b6..bfbb700 100644 --- a/doc/man/nvme_pel_ehai.2 +++ b/doc/man/nvme_pel_ehai.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pel_ehai" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pel_ehai" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pel_ehai \- This field indicates the persistent event header additional information .SH SYNOPSIS diff --git a/doc/man/nvme_pel_ehai_pit.2 b/doc/man/nvme_pel_ehai_pit.2 index 7fda966..9961470 100644 --- a/doc/man/nvme_pel_ehai_pit.2 +++ b/doc/man/nvme_pel_ehai_pit.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pel_ehai_pit" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pel_ehai_pit" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pel_ehai_pit \- Persistent Event Header Additional Information - Port Identifier Type .SH SYNOPSIS diff --git a/doc/man/nvme_pel_rci.2 b/doc/man/nvme_pel_rci.2 index 8c1aa46..3cec2e7 100644 --- a/doc/man/nvme_pel_rci.2 +++ b/doc/man/nvme_pel_rci.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pel_rci" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pel_rci" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pel_rci \- This field indicates the persistent event log reporting context .SH SYNOPSIS diff --git a/doc/man/nvme_pel_rci_rcpit.2 b/doc/man/nvme_pel_rci_rcpit.2 index 01c8c9e..23d5af8 100644 --- a/doc/man/nvme_pel_rci_rcpit.2 +++ b/doc/man/nvme_pel_rci_rcpit.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pel_rci_rcpit" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pel_rci_rcpit" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pel_rci_rcpit \- Persistent Event Log Reporting Context - Port Identifier Type .SH SYNOPSIS diff --git a/doc/man/nvme_persistent_event_entry.2 b/doc/man/nvme_persistent_event_entry.2 index 2b4fb10..31ed504 100644 --- a/doc/man/nvme_persistent_event_entry.2 +++ b/doc/man/nvme_persistent_event_entry.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_persistent_event_entry" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_persistent_event_entry" "March 2025" "API Manual" LINUX .SH NAME struct nvme_persistent_event_entry \- Persistent Event .SH SYNOPSIS diff --git a/doc/man/nvme_persistent_event_log.2 b/doc/man/nvme_persistent_event_log.2 index 495e775..66a9ebd 100644 --- a/doc/man/nvme_persistent_event_log.2 +++ b/doc/man/nvme_persistent_event_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_persistent_event_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_persistent_event_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_persistent_event_log \- Persistent Event Log .SH SYNOPSIS diff --git a/doc/man/nvme_persistent_event_types.2 b/doc/man/nvme_persistent_event_types.2 index 0e32313..3d1f3fa 100644 --- a/doc/man/nvme_persistent_event_types.2 +++ b/doc/man/nvme_persistent_event_types.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_persistent_event_types" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_persistent_event_types" "March 2025" "API Manual" LINUX .SH NAME enum nvme_persistent_event_types \- Persistent event log events .SH SYNOPSIS diff --git a/doc/man/nvme_pevent_log_action.2 b/doc/man/nvme_pevent_log_action.2 index 81e10ba..bdb0191 100644 --- a/doc/man/nvme_pevent_log_action.2 +++ b/doc/man/nvme_pevent_log_action.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pevent_log_action" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pevent_log_action" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pevent_log_action \- Persistent Event Log - Action .SH SYNOPSIS diff --git a/doc/man/nvme_phy_rx_eom_log.2 b/doc/man/nvme_phy_rx_eom_log.2 index 7ad71a3..a139203 100644 --- a/doc/man/nvme_phy_rx_eom_log.2 +++ b/doc/man/nvme_phy_rx_eom_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_phy_rx_eom_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_phy_rx_eom_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_phy_rx_eom_log \- Physical Interface Receiver Eye Opening Measurement Log .SH SYNOPSIS diff --git a/doc/man/nvme_phy_rx_eom_progress.2 b/doc/man/nvme_phy_rx_eom_progress.2 index 66d26fd..1307ca7 100644 --- a/doc/man/nvme_phy_rx_eom_progress.2 +++ b/doc/man/nvme_phy_rx_eom_progress.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_phy_rx_eom_progress" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_phy_rx_eom_progress" "March 2025" "API Manual" LINUX .SH NAME enum nvme_phy_rx_eom_progress \- EOM In Progress Values .SH SYNOPSIS diff --git a/doc/man/nvme_plm_config.2 b/doc/man/nvme_plm_config.2 index cb351b3..88a1eb7 100644 --- a/doc/man/nvme_plm_config.2 +++ b/doc/man/nvme_plm_config.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_plm_config" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_plm_config" "March 2025" "API Manual" LINUX .SH NAME struct nvme_plm_config \- Predictable Latency Mode - Deterministic Threshold Configuration Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_pmr_size.2 b/doc/man/nvme_pmr_size.2 index 4979638..b65d04d 100644 --- a/doc/man/nvme_pmr_size.2 +++ b/doc/man/nvme_pmr_size.2 @@ -1,4 +1,4 @@ -.TH "nvme_pmr_size" 9 "nvme_pmr_size" "November 2024" "libnvme API manual" LINUX +.TH "nvme_pmr_size" 9 "nvme_pmr_size" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_pmr_size \- Calculate size of persistent memory region elasticity buffer .SH SYNOPSIS diff --git a/doc/man/nvme_pmr_throughput.2 b/doc/man/nvme_pmr_throughput.2 index 09744ac..da6f16a 100644 --- a/doc/man/nvme_pmr_throughput.2 +++ b/doc/man/nvme_pmr_throughput.2 @@ -1,4 +1,4 @@ -.TH "nvme_pmr_throughput" 9 "nvme_pmr_throughput" "November 2024" "libnvme API manual" LINUX +.TH "nvme_pmr_throughput" 9 "nvme_pmr_throughput" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_pmr_throughput \- Calculate throughput of persistent memory buffer .SH SYNOPSIS diff --git a/doc/man/nvme_pmrcap.2 b/doc/man/nvme_pmrcap.2 index 3a39355..d50a6f0 100644 --- a/doc/man/nvme_pmrcap.2 +++ b/doc/man/nvme_pmrcap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrcap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrcap" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrcap \- This field indicates the persistent memory region capabilities .SH SYNOPSIS diff --git a/doc/man/nvme_pmrctl.2 b/doc/man/nvme_pmrctl.2 index ac4936a..fe7becf 100644 --- a/doc/man/nvme_pmrctl.2 +++ b/doc/man/nvme_pmrctl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrctl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrctl" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrctl \- This field indicates the persistent memory region control .SH SYNOPSIS diff --git a/doc/man/nvme_pmrebs.2 b/doc/man/nvme_pmrebs.2 index d42c12f..7a00f78 100644 --- a/doc/man/nvme_pmrebs.2 +++ b/doc/man/nvme_pmrebs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrebs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrebs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrebs \- This field indicates the persistent memory region elasticity buffer size .SH SYNOPSIS diff --git a/doc/man/nvme_pmrmsc.2 b/doc/man/nvme_pmrmsc.2 index 4ad5d8b..2681162 100644 --- a/doc/man/nvme_pmrmsc.2 +++ b/doc/man/nvme_pmrmsc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrmsc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrmsc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrmsc \- This field indicates the persistent memory region memory space control .SH SYNOPSIS diff --git a/doc/man/nvme_pmrsts.2 b/doc/man/nvme_pmrsts.2 index 4528112..ad1b820 100644 --- a/doc/man/nvme_pmrsts.2 +++ b/doc/man/nvme_pmrsts.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrsts" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrsts" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrsts \- This field indicates the persistent memory region status .SH SYNOPSIS diff --git a/doc/man/nvme_pmrswtp.2 b/doc/man/nvme_pmrswtp.2 index 8be7af6..6e79d79 100644 --- a/doc/man/nvme_pmrswtp.2 +++ b/doc/man/nvme_pmrswtp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrswtp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrswtp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrswtp \- This field indicates the persistent memory region sustained write throughput .SH SYNOPSIS diff --git a/doc/man/nvme_power_on_reset_info_list.2 b/doc/man/nvme_power_on_reset_info_list.2 index 98833b4..ca5c20d 100644 --- a/doc/man/nvme_power_on_reset_info_list.2 +++ b/doc/man/nvme_power_on_reset_info_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_power_on_reset_info_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_power_on_reset_info_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_power_on_reset_info_list \- Controller Reset Information .SH SYNOPSIS diff --git a/doc/man/nvme_primary_ctrl_cap.2 b/doc/man/nvme_primary_ctrl_cap.2 index c945dba..2dd302c 100644 --- a/doc/man/nvme_primary_ctrl_cap.2 +++ b/doc/man/nvme_primary_ctrl_cap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_primary_ctrl_cap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_primary_ctrl_cap" "March 2025" "API Manual" LINUX .SH NAME struct nvme_primary_ctrl_cap \- Identify - Controller Capabilities Structure .SH SYNOPSIS diff --git a/doc/man/nvme_psd_flags.2 b/doc/man/nvme_psd_flags.2 index e68619a..106784c 100644 --- a/doc/man/nvme_psd_flags.2 +++ b/doc/man/nvme_psd_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_psd_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_psd_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_psd_flags \- Possible flag values in nvme power state descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_psd_power_scale.2 b/doc/man/nvme_psd_power_scale.2 index d54c5d8..6bf304c 100644 --- a/doc/man/nvme_psd_power_scale.2 +++ b/doc/man/nvme_psd_power_scale.2 @@ -1,4 +1,4 @@ -.TH "nvme_psd_power_scale" 9 "nvme_psd_power_scale" "November 2024" "libnvme API manual" LINUX +.TH "nvme_psd_power_scale" 9 "nvme_psd_power_scale" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_psd_power_scale \- power scale occupies the upper 3 bits .SH SYNOPSIS diff --git a/doc/man/nvme_psd_ps.2 b/doc/man/nvme_psd_ps.2 index c3d66c0..6b7b0f5 100644 --- a/doc/man/nvme_psd_ps.2 +++ b/doc/man/nvme_psd_ps.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_psd_ps" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_psd_ps" "March 2025" "API Manual" LINUX .SH NAME enum nvme_psd_ps \- Known values for &struct nvme_psd %ips and %aps. Use with nvme_psd_power_scale() to extract the power scale field to match this enum. .SH SYNOPSIS diff --git a/doc/man/nvme_psd_workload.2 b/doc/man/nvme_psd_workload.2 index 19c2031..467a921 100644 --- a/doc/man/nvme_psd_workload.2 +++ b/doc/man/nvme_psd_workload.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_psd_workload" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_psd_workload" "March 2025" "API Manual" LINUX .SH NAME enum nvme_psd_workload \- Specifies a workload hint in the Power Management Feature (see &struct nvme_psd.apw) to inform the NVM subsystem or indicate the conditions for the active power level. .SH SYNOPSIS diff --git a/doc/man/nvme_pull_model_ddc_req_log.2 b/doc/man/nvme_pull_model_ddc_req_log.2 new file mode 100644 index 0000000..82ea926 --- /dev/null +++ b/doc/man/nvme_pull_model_ddc_req_log.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_pull_model_ddc_req_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_pull_model_ddc_req_log \- Pull Model DDC Request Log +.SH SYNOPSIS +struct nvme_pull_model_ddc_req_log { +.br +.BI " __u8 ori;" +.br +.BI " __u8 rsvd1[3];" +.br +.BI " __le32 tpdrpl;" +.br +.BI " __u8 osp[];" +.br +.BI " +}; +.br + +.SH Members +.IP "ori" 12 +Operation Request Identifier +.IP "rsvd1" 12 +Reserved +.IP "tpdrpl" 12 +Total Pull Model DDC Request Log Page Length +.IP "osp" 12 +Operation Specific Parameters diff --git a/doc/man/nvme_reachability_association_desc.2 b/doc/man/nvme_reachability_association_desc.2 new file mode 100644 index 0000000..b987eb1 --- /dev/null +++ b/doc/man/nvme_reachability_association_desc.2 @@ -0,0 +1,35 @@ +.TH "libnvme" 9 "struct nvme_reachability_association_desc" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_reachability_association_desc \- Reachability Association Descriptor +.SH SYNOPSIS +struct nvme_reachability_association_desc { +.br +.BI " __le32 rasid;" +.br +.BI " __le32 nrid;" +.br +.BI " __le64 chngc;" +.br +.BI " __u8 rac;" +.br +.BI " __u8 rsvd17[15];" +.br +.BI " __le32 rgid[];" +.br +.BI " +}; +.br + +.SH Members +.IP "rasid" 12 +Reachability Association ID +.IP "nrid" 12 +Number of RGID Values +.IP "chngc" 12 +Change Count +.IP "rac" 12 +Reachability Association Characteristics +.IP "rsvd17" 12 +Reserved +.IP "rgid" 12 +Reachability Group Identifier List diff --git a/doc/man/nvme_reachability_associations_log.2 b/doc/man/nvme_reachability_associations_log.2 new file mode 100644 index 0000000..e6559c6 --- /dev/null +++ b/doc/man/nvme_reachability_associations_log.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_reachability_associations_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_reachability_associations_log \- Reachability Associations Log +.SH SYNOPSIS +struct nvme_reachability_associations_log { +.br +.BI " __le64 chngc;" +.br +.BI " __le16 nrad;" +.br +.BI " __u8 rsvd10[6];" +.br +.BI " struct nvme_reachability_association_desc rad[];" +.br +.BI " +}; +.br + +.SH Members +.IP "chngc" 12 +Change Count +.IP "nrad" 12 +Number of Reachability Association Descriptors +.IP "rsvd10" 12 +Reserved +.IP "rad" 12 +Reachability Association Descriptor List diff --git a/doc/man/nvme_reachability_group_desc.2 b/doc/man/nvme_reachability_group_desc.2 new file mode 100644 index 0000000..a01fb8e --- /dev/null +++ b/doc/man/nvme_reachability_group_desc.2 @@ -0,0 +1,31 @@ +.TH "libnvme" 9 "struct nvme_reachability_group_desc" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_reachability_group_desc \- Reachability Group Descriptor +.SH SYNOPSIS +struct nvme_reachability_group_desc { +.br +.BI " __le32 rgid;" +.br +.BI " __le32 nnid;" +.br +.BI " __le64 chngc;" +.br +.BI " __u8 rsvd16[16];" +.br +.BI " __le32 nsid[];" +.br +.BI " +}; +.br + +.SH Members +.IP "rgid" 12 +Reachability Group ID +.IP "nnid" 12 +Number of NSID Values +.IP "chngc" 12 +Change Count +.IP "rsvd16" 12 +Reserved +.IP "nsid" 12 +Namespace Identifier List diff --git a/doc/man/nvme_reachability_groups_log.2 b/doc/man/nvme_reachability_groups_log.2 new file mode 100644 index 0000000..0b6b706 --- /dev/null +++ b/doc/man/nvme_reachability_groups_log.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_reachability_groups_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_reachability_groups_log \- Reachability Groups Log +.SH SYNOPSIS +struct nvme_reachability_groups_log { +.br +.BI " __le64 chngc;" +.br +.BI " __le16 nrgd;" +.br +.BI " __u8 rsvd10[6];" +.br +.BI " struct nvme_reachability_group_desc rgd[];" +.br +.BI " +}; +.br + +.SH Members +.IP "chngc" 12 +Change Count +.IP "nrgd" 12 +Number of Reachability Group Descriptors +.IP "rsvd10" 12 +Reserved +.IP "rgd" 12 +Reachability Group Descriptor List diff --git a/doc/man/nvme_read.2 b/doc/man/nvme_read.2 index 37f3d70..4b93f24 100644 --- a/doc/man/nvme_read.2 +++ b/doc/man/nvme_read.2 @@ -1,4 +1,4 @@ -.TH "nvme_read" 9 "nvme_read" "November 2024" "libnvme API manual" LINUX +.TH "nvme_read" 9 "nvme_read" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_read \- Submit an nvme user read command .SH SYNOPSIS diff --git a/doc/man/nvme_read_config.2 b/doc/man/nvme_read_config.2 index 55e43e5..b17b59f 100644 --- a/doc/man/nvme_read_config.2 +++ b/doc/man/nvme_read_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_read_config" 9 "nvme_read_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_read_config" 9 "nvme_read_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_read_config \- Read NVMe JSON configuration file .SH SYNOPSIS diff --git a/doc/man/nvme_read_key.2 b/doc/man/nvme_read_key.2 index 3324101..a1194e1 100644 --- a/doc/man/nvme_read_key.2 +++ b/doc/man/nvme_read_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_read_key" 9 "nvme_read_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_read_key" 9 "nvme_read_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_read_key \- Read key raw data .SH SYNOPSIS diff --git a/doc/man/nvme_refresh_topology.2 b/doc/man/nvme_refresh_topology.2 index 37e611f..f93d945 100644 --- a/doc/man/nvme_refresh_topology.2 +++ b/doc/man/nvme_refresh_topology.2 @@ -1,4 +1,4 @@ -.TH "nvme_refresh_topology" 9 "nvme_refresh_topology" "November 2024" "libnvme API manual" LINUX +.TH "nvme_refresh_topology" 9 "nvme_refresh_topology" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_refresh_topology \- Refresh nvme_root_t object contents .SH SYNOPSIS diff --git a/doc/man/nvme_register_offsets.2 b/doc/man/nvme_register_offsets.2 index 9343d36..09074a4 100644 --- a/doc/man/nvme_register_offsets.2 +++ b/doc/man/nvme_register_offsets.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_register_offsets" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_register_offsets" "March 2025" "API Manual" LINUX .SH NAME enum nvme_register_offsets \- controller registers for all transports. This is the layout of BAR0/1 for PCIe, and properties for fabrics. .SH SYNOPSIS diff --git a/doc/man/nvme_registered_ctrl.2 b/doc/man/nvme_registered_ctrl.2 index d3c2c14..6046808 100644 --- a/doc/man/nvme_registered_ctrl.2 +++ b/doc/man/nvme_registered_ctrl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_registered_ctrl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_registered_ctrl" "March 2025" "API Manual" LINUX .SH NAME struct nvme_registered_ctrl \- Registered Controller Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_registered_ctrl_ext.2 b/doc/man/nvme_registered_ctrl_ext.2 index a5e2cf7..934e451 100644 --- a/doc/man/nvme_registered_ctrl_ext.2 +++ b/doc/man/nvme_registered_ctrl_ext.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_registered_ctrl_ext" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_registered_ctrl_ext" "March 2025" "API Manual" LINUX .SH NAME struct nvme_registered_ctrl_ext \- Registered Controller Extended Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_rescan_ctrl.2 b/doc/man/nvme_rescan_ctrl.2 index b6f90df..7fc8657 100644 --- a/doc/man/nvme_rescan_ctrl.2 +++ b/doc/man/nvme_rescan_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_rescan_ctrl" 9 "nvme_rescan_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_rescan_ctrl" 9 "nvme_rescan_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_rescan_ctrl \- Rescan an existing controller .SH SYNOPSIS diff --git a/doc/man/nvme_resv_acquire.2 b/doc/man/nvme_resv_acquire.2 index e393ac2..d40c197 100644 --- a/doc/man/nvme_resv_acquire.2 +++ b/doc/man/nvme_resv_acquire.2 @@ -1,4 +1,4 @@ -.TH "nvme_resv_acquire" 9 "nvme_resv_acquire" "November 2024" "libnvme API manual" LINUX +.TH "nvme_resv_acquire" 9 "nvme_resv_acquire" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_resv_acquire \- Send an nvme reservation acquire .SH SYNOPSIS diff --git a/doc/man/nvme_resv_cptpl.2 b/doc/man/nvme_resv_cptpl.2 index 5983be1..7dcedcd 100644 --- a/doc/man/nvme_resv_cptpl.2 +++ b/doc/man/nvme_resv_cptpl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_cptpl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_cptpl" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_cptpl \- Reservation Register - Change Persist Through Power Loss State .SH SYNOPSIS diff --git a/doc/man/nvme_resv_notification_log.2 b/doc/man/nvme_resv_notification_log.2 index ff09aa1..b03d9a1 100644 --- a/doc/man/nvme_resv_notification_log.2 +++ b/doc/man/nvme_resv_notification_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_resv_notification_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_resv_notification_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_resv_notification_log \- Reservation Notification Log .SH SYNOPSIS diff --git a/doc/man/nvme_resv_notify_rnlpt.2 b/doc/man/nvme_resv_notify_rnlpt.2 index 5410221..ac1b909 100644 --- a/doc/man/nvme_resv_notify_rnlpt.2 +++ b/doc/man/nvme_resv_notify_rnlpt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_notify_rnlpt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_notify_rnlpt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_notify_rnlpt \- Reservation Notification Log - Reservation Notification Log Page Type .SH SYNOPSIS diff --git a/doc/man/nvme_resv_racqa.2 b/doc/man/nvme_resv_racqa.2 index b325eda..0ae66cd 100644 --- a/doc/man/nvme_resv_racqa.2 +++ b/doc/man/nvme_resv_racqa.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_racqa" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_racqa" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_racqa \- Reservation Acquire - Reservation Acquire Action .SH SYNOPSIS diff --git a/doc/man/nvme_resv_register.2 b/doc/man/nvme_resv_register.2 index d66567d..bbc5559 100644 --- a/doc/man/nvme_resv_register.2 +++ b/doc/man/nvme_resv_register.2 @@ -1,4 +1,4 @@ -.TH "nvme_resv_register" 9 "nvme_resv_register" "November 2024" "libnvme API manual" LINUX +.TH "nvme_resv_register" 9 "nvme_resv_register" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_resv_register \- Send an nvme reservation register .SH SYNOPSIS diff --git a/doc/man/nvme_resv_release.2 b/doc/man/nvme_resv_release.2 index 2aa4321..01d4d44 100644 --- a/doc/man/nvme_resv_release.2 +++ b/doc/man/nvme_resv_release.2 @@ -1,4 +1,4 @@ -.TH "nvme_resv_release" 9 "nvme_resv_release" "November 2024" "libnvme API manual" LINUX +.TH "nvme_resv_release" 9 "nvme_resv_release" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_resv_release \- Send an nvme reservation release .SH SYNOPSIS diff --git a/doc/man/nvme_resv_report.2 b/doc/man/nvme_resv_report.2 index 2a7fa4a..9d112a4 100644 --- a/doc/man/nvme_resv_report.2 +++ b/doc/man/nvme_resv_report.2 @@ -1,4 +1,4 @@ -.TH "nvme_resv_report" 9 "nvme_resv_report" "November 2024" "libnvme API manual" LINUX +.TH "nvme_resv_report" 9 "nvme_resv_report" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_resv_report \- Send an nvme reservation report .SH SYNOPSIS diff --git a/doc/man/nvme_resv_rrega.2 b/doc/man/nvme_resv_rrega.2 index 0b79b6e..4be1c74 100644 --- a/doc/man/nvme_resv_rrega.2 +++ b/doc/man/nvme_resv_rrega.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_rrega" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_rrega" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_rrega \- Reservation Register - Reservation Register Action .SH SYNOPSIS diff --git a/doc/man/nvme_resv_rrela.2 b/doc/man/nvme_resv_rrela.2 index b52a07a..84d7944 100644 --- a/doc/man/nvme_resv_rrela.2 +++ b/doc/man/nvme_resv_rrela.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_rrela" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_rrela" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_rrela \- Reservation Release - Reservation Release Action .SH SYNOPSIS diff --git a/doc/man/nvme_resv_rtype.2 b/doc/man/nvme_resv_rtype.2 index 02f6193..c6727af 100644 --- a/doc/man/nvme_resv_rtype.2 +++ b/doc/man/nvme_resv_rtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_rtype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_rtype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_rtype \- Reservation Type Encoding .SH SYNOPSIS diff --git a/doc/man/nvme_resv_status.2 b/doc/man/nvme_resv_status.2 index 4b19391..4c44a39 100644 --- a/doc/man/nvme_resv_status.2 +++ b/doc/man/nvme_resv_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_resv_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_resv_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_resv_status \- Reservation Status Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_revoke_tls_key.2 b/doc/man/nvme_revoke_tls_key.2 index a4fa187..fc69511 100644 --- a/doc/man/nvme_revoke_tls_key.2 +++ b/doc/man/nvme_revoke_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_revoke_tls_key" 9 "nvme_revoke_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_revoke_tls_key" 9 "nvme_revoke_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_revoke_tls_key \- Revoke TLS key from keyring .SH SYNOPSIS diff --git a/doc/man/nvme_rotational_media_info_log.2 b/doc/man/nvme_rotational_media_info_log.2 new file mode 100644 index 0000000..772a8b5 --- /dev/null +++ b/doc/man/nvme_rotational_media_info_log.2 @@ -0,0 +1,47 @@ +.TH "libnvme" 9 "struct nvme_rotational_media_info_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_rotational_media_info_log \- Rotational Media Information Log +.SH SYNOPSIS +struct nvme_rotational_media_info_log { +.br +.BI " __le16 endgid;" +.br +.BI " __le16 numa;" +.br +.BI " __le16 nrs;" +.br +.BI " __u8 rsvd6[2];" +.br +.BI " __le32 spinc;" +.br +.BI " __le32 fspinc;" +.br +.BI " __le32 ldc;" +.br +.BI " __le32 fldc;" +.br +.BI " __u8 rsvd24[488];" +.br +.BI " +}; +.br + +.SH Members +.IP "endgid" 12 +Endurance Group Identifier +.IP "numa" 12 +Number of Actuators +.IP "nrs" 12 +Nominal Rotational Speed +.IP "rsvd6" 12 +Reserved +.IP "spinc" 12 +Spinup Count +.IP "fspinc" 12 +Failed Spinup Count +.IP "ldc" 12 +Load Count +.IP "fldc" 12 +Failed Load Count +.IP "rsvd24" 12 +Reserved diff --git a/doc/man/nvme_sanitize_compln_event.2 b/doc/man/nvme_sanitize_compln_event.2 index a513307..9ed5d1f 100644 --- a/doc/man/nvme_sanitize_compln_event.2 +++ b/doc/man/nvme_sanitize_compln_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_sanitize_compln_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_sanitize_compln_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_sanitize_compln_event \- Sanitize Completion Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_log_page.2 b/doc/man/nvme_sanitize_log_page.2 index 875f747..4594e76 100644 --- a/doc/man/nvme_sanitize_log_page.2 +++ b/doc/man/nvme_sanitize_log_page.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_sanitize_log_page" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_sanitize_log_page" "March 2025" "API Manual" LINUX .SH NAME struct nvme_sanitize_log_page \- Sanitize Status (Log Identifier 81h) .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_nvm.2 b/doc/man/nvme_sanitize_nvm.2 index 1e76e1f..772da06 100644 --- a/doc/man/nvme_sanitize_nvm.2 +++ b/doc/man/nvme_sanitize_nvm.2 @@ -1,4 +1,4 @@ -.TH "nvme_sanitize_nvm" 9 "nvme_sanitize_nvm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_sanitize_nvm" 9 "nvme_sanitize_nvm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_sanitize_nvm \- Start a sanitize operation .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_sanact.2 b/doc/man/nvme_sanitize_sanact.2 index ce6e499..5326ea2 100644 --- a/doc/man/nvme_sanitize_sanact.2 +++ b/doc/man/nvme_sanitize_sanact.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_sanitize_sanact" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_sanitize_sanact" "March 2025" "API Manual" LINUX .SH NAME enum nvme_sanitize_sanact \- Sanitize Action .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_ssi.2 b/doc/man/nvme_sanitize_ssi.2 index 31de356..5ba7120 100644 --- a/doc/man/nvme_sanitize_ssi.2 +++ b/doc/man/nvme_sanitize_ssi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_sanitize_ssi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_sanitize_ssi" "March 2025" "API Manual" LINUX .SH NAME enum nvme_sanitize_ssi \- Sanitize State Information (SSI) .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_sstat.2 b/doc/man/nvme_sanitize_sstat.2 index 41bbe27..7c71fd1 100644 --- a/doc/man/nvme_sanitize_sstat.2 +++ b/doc/man/nvme_sanitize_sstat.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_sanitize_sstat" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_sanitize_sstat" "March 2025" "API Manual" LINUX .SH NAME enum nvme_sanitize_sstat \- Sanitize Status (SSTAT) .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_start_event.2 b/doc/man/nvme_sanitize_start_event.2 index b8737a5..a0e0d3e 100644 --- a/doc/man/nvme_sanitize_start_event.2 +++ b/doc/man/nvme_sanitize_start_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_sanitize_start_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_sanitize_start_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_sanitize_start_event \- Sanitize Start Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_scan.2 b/doc/man/nvme_scan.2 index d38f9c8..54ebae0 100644 --- a/doc/man/nvme_scan.2 +++ b/doc/man/nvme_scan.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan" 9 "nvme_scan" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan" 9 "nvme_scan" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan \- Scan NVMe topology .SH SYNOPSIS diff --git a/doc/man/nvme_scan_ctrl.2 b/doc/man/nvme_scan_ctrl.2 index e639adb..2f9276e 100644 --- a/doc/man/nvme_scan_ctrl.2 +++ b/doc/man/nvme_scan_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_ctrl" 9 "nvme_scan_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_ctrl" 9 "nvme_scan_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_ctrl \- Scan on a controller .SH SYNOPSIS diff --git a/doc/man/nvme_scan_ctrl_namespace_paths.2 b/doc/man/nvme_scan_ctrl_namespace_paths.2 index 2b7791d..6fe9583 100644 --- a/doc/man/nvme_scan_ctrl_namespace_paths.2 +++ b/doc/man/nvme_scan_ctrl_namespace_paths.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_ctrl_namespace_paths" 9 "nvme_scan_ctrl_namespace_paths" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_ctrl_namespace_paths" 9 "nvme_scan_ctrl_namespace_paths" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_ctrl_namespace_paths \- Scan for namespace paths in a controller .SH SYNOPSIS diff --git a/doc/man/nvme_scan_ctrl_namespaces.2 b/doc/man/nvme_scan_ctrl_namespaces.2 index 89bab92..e9fbfa8 100644 --- a/doc/man/nvme_scan_ctrl_namespaces.2 +++ b/doc/man/nvme_scan_ctrl_namespaces.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_ctrl_namespaces" 9 "nvme_scan_ctrl_namespaces" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_ctrl_namespaces" 9 "nvme_scan_ctrl_namespaces" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_ctrl_namespaces \- Scan for namespaces in a controller .SH SYNOPSIS diff --git a/doc/man/nvme_scan_ctrls.2 b/doc/man/nvme_scan_ctrls.2 index d9d59af..680c2f6 100644 --- a/doc/man/nvme_scan_ctrls.2 +++ b/doc/man/nvme_scan_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_ctrls" 9 "nvme_scan_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_ctrls" 9 "nvme_scan_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_ctrls \- Scan for controllers .SH SYNOPSIS diff --git a/doc/man/nvme_scan_namespace.2 b/doc/man/nvme_scan_namespace.2 index c9db546..bb53230 100644 --- a/doc/man/nvme_scan_namespace.2 +++ b/doc/man/nvme_scan_namespace.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_namespace" 9 "nvme_scan_namespace" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_namespace" 9 "nvme_scan_namespace" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_namespace \- scan namespace based on sysfs name .SH SYNOPSIS diff --git a/doc/man/nvme_scan_subsystem_namespaces.2 b/doc/man/nvme_scan_subsystem_namespaces.2 index 7a368ee..9c388e5 100644 --- a/doc/man/nvme_scan_subsystem_namespaces.2 +++ b/doc/man/nvme_scan_subsystem_namespaces.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_subsystem_namespaces" 9 "nvme_scan_subsystem_namespaces" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_subsystem_namespaces" 9 "nvme_scan_subsystem_namespaces" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_subsystem_namespaces \- Scan for namespaces in a subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_scan_subsystems.2 b/doc/man/nvme_scan_subsystems.2 index f483ed3..f5ddd28 100644 --- a/doc/man/nvme_scan_subsystems.2 +++ b/doc/man/nvme_scan_subsystems.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_subsystems" 9 "nvme_scan_subsystems" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_subsystems" 9 "nvme_scan_subsystems" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_subsystems \- Scan for subsystems .SH SYNOPSIS diff --git a/doc/man/nvme_scan_tls_keys.2 b/doc/man/nvme_scan_tls_keys.2 index d33bce6..5381100 100644 --- a/doc/man/nvme_scan_tls_keys.2 +++ b/doc/man/nvme_scan_tls_keys.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_tls_keys" 9 "nvme_scan_tls_keys" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_tls_keys" 9 "nvme_scan_tls_keys" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_tls_keys \- Iterate over TLS keys in a keyring .SH SYNOPSIS diff --git a/doc/man/nvme_scan_topology.2 b/doc/man/nvme_scan_topology.2 index 7a89345..5f6d4c6 100644 --- a/doc/man/nvme_scan_topology.2 +++ b/doc/man/nvme_scan_topology.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_topology" 9 "nvme_scan_topology" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_topology" 9 "nvme_scan_topology" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_topology \- Scan NVMe topology and apply filter .SH SYNOPSIS diff --git a/doc/man/nvme_secondary_ctrl.2 b/doc/man/nvme_secondary_ctrl.2 index c7d6cc2..0ad895d 100644 --- a/doc/man/nvme_secondary_ctrl.2 +++ b/doc/man/nvme_secondary_ctrl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_secondary_ctrl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_secondary_ctrl" "March 2025" "API Manual" LINUX .SH NAME struct nvme_secondary_ctrl \- Secondary Controller Entry .SH SYNOPSIS diff --git a/doc/man/nvme_secondary_ctrl_list.2 b/doc/man/nvme_secondary_ctrl_list.2 index ddb6ea2..153a9b0 100644 --- a/doc/man/nvme_secondary_ctrl_list.2 +++ b/doc/man/nvme_secondary_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_secondary_ctrl_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_secondary_ctrl_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_secondary_ctrl_list \- Secondary Controller List .SH SYNOPSIS diff --git a/doc/man/nvme_security_receive.2 b/doc/man/nvme_security_receive.2 index 82ebbc1..ebf8089 100644 --- a/doc/man/nvme_security_receive.2 +++ b/doc/man/nvme_security_receive.2 @@ -1,4 +1,4 @@ -.TH "nvme_security_receive" 9 "nvme_security_receive" "November 2024" "libnvme API manual" LINUX +.TH "nvme_security_receive" 9 "nvme_security_receive" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_security_receive \- Security Receive command .SH SYNOPSIS diff --git a/doc/man/nvme_security_send.2 b/doc/man/nvme_security_send.2 index 5f554a1..47c75f7 100644 --- a/doc/man/nvme_security_send.2 +++ b/doc/man/nvme_security_send.2 @@ -1,4 +1,4 @@ -.TH "nvme_security_send" 9 "nvme_security_send" "November 2024" "libnvme API manual" LINUX +.TH "nvme_security_send" 9 "nvme_security_send" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_security_send \- Security Send command .SH SYNOPSIS diff --git a/doc/man/nvme_self_test_log.2 b/doc/man/nvme_self_test_log.2 index cd31ff1..1e65bc1 100644 --- a/doc/man/nvme_self_test_log.2 +++ b/doc/man/nvme_self_test_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_self_test_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_self_test_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_self_test_log \- Device Self-test (Log Identifier 06h) .SH SYNOPSIS diff --git a/doc/man/nvme_set_feat_event_layout.2 b/doc/man/nvme_set_feat_event_layout.2 index cc64c8f..ae6a431 100644 --- a/doc/man/nvme_set_feat_event_layout.2 +++ b/doc/man/nvme_set_feat_event_layout.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_set_feat_event_layout" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_set_feat_event_layout" "March 2025" "API Manual" LINUX .SH NAME enum nvme_set_feat_event_layout \- This field indicates the set feature event layout .SH SYNOPSIS diff --git a/doc/man/nvme_set_feature_event.2 b/doc/man/nvme_set_feature_event.2 index 79cc245..850256d 100644 --- a/doc/man/nvme_set_feature_event.2 +++ b/doc/man/nvme_set_feature_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_set_feature_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_set_feature_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_set_feature_event \- Set Feature Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_set_features.2 b/doc/man/nvme_set_features.2 index 21a2748..d830460 100644 --- a/doc/man/nvme_set_features.2 +++ b/doc/man/nvme_set_features.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features" 9 "nvme_set_features" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features" 9 "nvme_set_features" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features \- Set a feature attribute .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_arbitration.2 b/doc/man/nvme_set_features_arbitration.2 index 272883f..20e18a5 100644 --- a/doc/man/nvme_set_features_arbitration.2 +++ b/doc/man/nvme_set_features_arbitration.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_arbitration" 9 "nvme_set_features_arbitration" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_arbitration" 9 "nvme_set_features_arbitration" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_arbitration \- Set arbitration features .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_async_event.2 b/doc/man/nvme_set_features_async_event.2 index 40050ac..c91dd37 100644 --- a/doc/man/nvme_set_features_async_event.2 +++ b/doc/man/nvme_set_features_async_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_async_event" 9 "nvme_set_features_async_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_async_event" 9 "nvme_set_features_async_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_async_event \- Set asynchronous event feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_auto_pst.2 b/doc/man/nvme_set_features_auto_pst.2 index a3685ae..0185f40 100644 --- a/doc/man/nvme_set_features_auto_pst.2 +++ b/doc/man/nvme_set_features_auto_pst.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_auto_pst" 9 "nvme_set_features_auto_pst" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_auto_pst" 9 "nvme_set_features_auto_pst" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_auto_pst \- Set autonomous power state feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_data.2 b/doc/man/nvme_set_features_data.2 index 4d875dd..ba02909 100644 --- a/doc/man/nvme_set_features_data.2 +++ b/doc/man/nvme_set_features_data.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_data" 9 "nvme_set_features_data" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_data" 9 "nvme_set_features_data" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_data \- Helper function for @nvme_set_features() .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_endurance_evt_cfg.2 b/doc/man/nvme_set_features_endurance_evt_cfg.2 index abedc92..10d294e 100644 --- a/doc/man/nvme_set_features_endurance_evt_cfg.2 +++ b/doc/man/nvme_set_features_endurance_evt_cfg.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_endurance_evt_cfg" 9 "nvme_set_features_endurance_evt_cfg" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_endurance_evt_cfg" 9 "nvme_set_features_endurance_evt_cfg" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_endurance_evt_cfg \- Set endurance event config feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_err_recovery.2 b/doc/man/nvme_set_features_err_recovery.2 index 6192939..4b77e25 100644 --- a/doc/man/nvme_set_features_err_recovery.2 +++ b/doc/man/nvme_set_features_err_recovery.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_err_recovery" 9 "nvme_set_features_err_recovery" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_err_recovery" 9 "nvme_set_features_err_recovery" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_err_recovery \- Set error recovery feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_hctm.2 b/doc/man/nvme_set_features_hctm.2 index 3601d0d..123a02d 100644 --- a/doc/man/nvme_set_features_hctm.2 +++ b/doc/man/nvme_set_features_hctm.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_hctm" 9 "nvme_set_features_hctm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_hctm" 9 "nvme_set_features_hctm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_hctm \- Set thermal management feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_host_behavior.2 b/doc/man/nvme_set_features_host_behavior.2 index c14a5e6..937a578 100644 --- a/doc/man/nvme_set_features_host_behavior.2 +++ b/doc/man/nvme_set_features_host_behavior.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_host_behavior" 9 "nvme_set_features_host_behavior" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_host_behavior" 9 "nvme_set_features_host_behavior" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_host_behavior \- Set host behavior feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_host_id.2 b/doc/man/nvme_set_features_host_id.2 index 94bc402..cc49618 100644 --- a/doc/man/nvme_set_features_host_id.2 +++ b/doc/man/nvme_set_features_host_id.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_host_id" 9 "nvme_set_features_host_id" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_host_id" 9 "nvme_set_features_host_id" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_host_id \- Set enable extended host identifiers feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_iocs_profile.2 b/doc/man/nvme_set_features_iocs_profile.2 index 94b6507..d082600 100644 --- a/doc/man/nvme_set_features_iocs_profile.2 +++ b/doc/man/nvme_set_features_iocs_profile.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_iocs_profile" 9 "nvme_set_features_iocs_profile" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_iocs_profile" 9 "nvme_set_features_iocs_profile" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_iocs_profile \- Set I/O command set profile feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_irq_coalesce.2 b/doc/man/nvme_set_features_irq_coalesce.2 index 01efdf9..bd2c65c 100644 --- a/doc/man/nvme_set_features_irq_coalesce.2 +++ b/doc/man/nvme_set_features_irq_coalesce.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_irq_coalesce" 9 "nvme_set_features_irq_coalesce" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_irq_coalesce" 9 "nvme_set_features_irq_coalesce" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_irq_coalesce \- Set IRQ coalesce feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_irq_config.2 b/doc/man/nvme_set_features_irq_config.2 index e25e43d..eea1798 100644 --- a/doc/man/nvme_set_features_irq_config.2 +++ b/doc/man/nvme_set_features_irq_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_irq_config" 9 "nvme_set_features_irq_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_irq_config" 9 "nvme_set_features_irq_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_irq_config \- Set IRQ config feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_lba_range.2 b/doc/man/nvme_set_features_lba_range.2 index ddc49e8..b3341d7 100644 --- a/doc/man/nvme_set_features_lba_range.2 +++ b/doc/man/nvme_set_features_lba_range.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_lba_range" 9 "nvme_set_features_lba_range" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_lba_range" 9 "nvme_set_features_lba_range" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_lba_range \- Set LBA range feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_lba_sts_interval.2 b/doc/man/nvme_set_features_lba_sts_interval.2 index 80206e8..55178be 100644 --- a/doc/man/nvme_set_features_lba_sts_interval.2 +++ b/doc/man/nvme_set_features_lba_sts_interval.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_lba_sts_interval" 9 "nvme_set_features_lba_sts_interval" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_lba_sts_interval" 9 "nvme_set_features_lba_sts_interval" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_lba_sts_interval \- Set LBA status information feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_nopsc.2 b/doc/man/nvme_set_features_nopsc.2 index db73246..dfb80a6 100644 --- a/doc/man/nvme_set_features_nopsc.2 +++ b/doc/man/nvme_set_features_nopsc.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_nopsc" 9 "nvme_set_features_nopsc" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_nopsc" 9 "nvme_set_features_nopsc" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_nopsc \- Set non-operational power state feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_plm_config.2 b/doc/man/nvme_set_features_plm_config.2 index 1beea3a..1427ba0 100644 --- a/doc/man/nvme_set_features_plm_config.2 +++ b/doc/man/nvme_set_features_plm_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_plm_config" 9 "nvme_set_features_plm_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_plm_config" 9 "nvme_set_features_plm_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_plm_config \- Set predictable latency feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_plm_window.2 b/doc/man/nvme_set_features_plm_window.2 index a8f0a20..60b0b82 100644 --- a/doc/man/nvme_set_features_plm_window.2 +++ b/doc/man/nvme_set_features_plm_window.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_plm_window" 9 "nvme_set_features_plm_window" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_plm_window" 9 "nvme_set_features_plm_window" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_plm_window \- Set window select feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_power_mgmt.2 b/doc/man/nvme_set_features_power_mgmt.2 index 2a8427b..31114c8 100644 --- a/doc/man/nvme_set_features_power_mgmt.2 +++ b/doc/man/nvme_set_features_power_mgmt.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_power_mgmt" 9 "nvme_set_features_power_mgmt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_power_mgmt" 9 "nvme_set_features_power_mgmt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_power_mgmt \- Set power management feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_resv_mask.2 b/doc/man/nvme_set_features_resv_mask.2 index aacdf4d..58de8ce 100644 --- a/doc/man/nvme_set_features_resv_mask.2 +++ b/doc/man/nvme_set_features_resv_mask.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_resv_mask" 9 "nvme_set_features_resv_mask" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_resv_mask" 9 "nvme_set_features_resv_mask" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_resv_mask \- Set reservation notification mask feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_resv_mask2.2 b/doc/man/nvme_set_features_resv_mask2.2 index 290491f..35d0970 100644 --- a/doc/man/nvme_set_features_resv_mask2.2 +++ b/doc/man/nvme_set_features_resv_mask2.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_resv_mask2" 9 "nvme_set_features_resv_mask2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_resv_mask2" 9 "nvme_set_features_resv_mask2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_resv_mask2 \- Set reservation notification mask feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_resv_persist.2 b/doc/man/nvme_set_features_resv_persist.2 index a0066cb..fbb7806 100644 --- a/doc/man/nvme_set_features_resv_persist.2 +++ b/doc/man/nvme_set_features_resv_persist.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_resv_persist" 9 "nvme_set_features_resv_persist" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_resv_persist" 9 "nvme_set_features_resv_persist" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_resv_persist \- Set persist through power loss feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_resv_persist2.2 b/doc/man/nvme_set_features_resv_persist2.2 index 9772758..42e4796 100644 --- a/doc/man/nvme_set_features_resv_persist2.2 +++ b/doc/man/nvme_set_features_resv_persist2.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_resv_persist2" 9 "nvme_set_features_resv_persist2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_resv_persist2" 9 "nvme_set_features_resv_persist2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_resv_persist2 \- Set persist through power loss feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_rrl.2 b/doc/man/nvme_set_features_rrl.2 index 3cc451d..612e695 100644 --- a/doc/man/nvme_set_features_rrl.2 +++ b/doc/man/nvme_set_features_rrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_rrl" 9 "nvme_set_features_rrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_rrl" 9 "nvme_set_features_rrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_rrl \- Set read recovery level feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_sanitize.2 b/doc/man/nvme_set_features_sanitize.2 index de83573..ebbb320 100644 --- a/doc/man/nvme_set_features_sanitize.2 +++ b/doc/man/nvme_set_features_sanitize.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_sanitize" 9 "nvme_set_features_sanitize" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_sanitize" 9 "nvme_set_features_sanitize" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_sanitize \- Set sanitize feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_simple.2 b/doc/man/nvme_set_features_simple.2 index 6ac1be6..2068bb6 100644 --- a/doc/man/nvme_set_features_simple.2 +++ b/doc/man/nvme_set_features_simple.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_simple" 9 "nvme_set_features_simple" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_simple" 9 "nvme_set_features_simple" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_simple \- Helper function for @nvme_set_features() .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_sw_progress.2 b/doc/man/nvme_set_features_sw_progress.2 index b322a63..87a5b3e 100644 --- a/doc/man/nvme_set_features_sw_progress.2 +++ b/doc/man/nvme_set_features_sw_progress.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_sw_progress" 9 "nvme_set_features_sw_progress" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_sw_progress" 9 "nvme_set_features_sw_progress" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_sw_progress \- Set pre-boot software load count feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_temp_thresh.2 b/doc/man/nvme_set_features_temp_thresh.2 index 6a11b84..0920896 100644 --- a/doc/man/nvme_set_features_temp_thresh.2 +++ b/doc/man/nvme_set_features_temp_thresh.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_temp_thresh" 9 "nvme_set_features_temp_thresh" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_temp_thresh" 9 "nvme_set_features_temp_thresh" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_temp_thresh \- Set temperature threshold feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_timestamp.2 b/doc/man/nvme_set_features_timestamp.2 index 2cc2a2d..969a5e4 100644 --- a/doc/man/nvme_set_features_timestamp.2 +++ b/doc/man/nvme_set_features_timestamp.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_timestamp" 9 "nvme_set_features_timestamp" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_timestamp" 9 "nvme_set_features_timestamp" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_timestamp \- Set timestamp feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_volatile_wc.2 b/doc/man/nvme_set_features_volatile_wc.2 index d6a8b9a..cd39da0 100644 --- a/doc/man/nvme_set_features_volatile_wc.2 +++ b/doc/man/nvme_set_features_volatile_wc.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_volatile_wc" 9 "nvme_set_features_volatile_wc" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_volatile_wc" 9 "nvme_set_features_volatile_wc" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_volatile_wc \- Set volatile write cache feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_write_atomic.2 b/doc/man/nvme_set_features_write_atomic.2 index 63e180d..2e0f5ee 100644 --- a/doc/man/nvme_set_features_write_atomic.2 +++ b/doc/man/nvme_set_features_write_atomic.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_write_atomic" 9 "nvme_set_features_write_atomic" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_write_atomic" 9 "nvme_set_features_write_atomic" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_write_atomic \- Set write atomic feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_write_protect.2 b/doc/man/nvme_set_features_write_protect.2 index a27329b..937a53f 100644 --- a/doc/man/nvme_set_features_write_protect.2 +++ b/doc/man/nvme_set_features_write_protect.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_write_protect" 9 "nvme_set_features_write_protect" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_write_protect" 9 "nvme_set_features_write_protect" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_write_protect \- Set write protect feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_write_protect2.2 b/doc/man/nvme_set_features_write_protect2.2 index 15348be..54b56c4 100644 --- a/doc/man/nvme_set_features_write_protect2.2 +++ b/doc/man/nvme_set_features_write_protect2.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_write_protect2" 9 "nvme_set_features_write_protect2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_write_protect2" 9 "nvme_set_features_write_protect2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_write_protect2 \- Set write protect feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_keyring.2 b/doc/man/nvme_set_keyring.2 index 138ca67..2d9b920 100644 --- a/doc/man/nvme_set_keyring.2 +++ b/doc/man/nvme_set_keyring.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_keyring" 9 "nvme_set_keyring" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_keyring" 9 "nvme_set_keyring" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_keyring \- Link keyring for lookup .SH SYNOPSIS diff --git a/doc/man/nvme_set_property.2 b/doc/man/nvme_set_property.2 index 3af06c1..9d6acd4 100644 --- a/doc/man/nvme_set_property.2 +++ b/doc/man/nvme_set_property.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_property" 9 "nvme_set_property" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_property" 9 "nvme_set_property" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_property \- Set controller property .SH SYNOPSIS diff --git a/doc/man/nvme_set_root.2 b/doc/man/nvme_set_root.2 index 11c6785..2426d2c 100644 --- a/doc/man/nvme_set_root.2 +++ b/doc/man/nvme_set_root.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_root" 9 "nvme_set_root" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_root" 9 "nvme_set_root" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_root \- Set nvme_root_t context .SH SYNOPSIS diff --git a/doc/man/nvme_smart_crit.2 b/doc/man/nvme_smart_crit.2 index a0a6bb0..70beaa3 100644 --- a/doc/man/nvme_smart_crit.2 +++ b/doc/man/nvme_smart_crit.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_smart_crit" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_smart_crit" "March 2025" "API Manual" LINUX .SH NAME enum nvme_smart_crit \- Critical Warning .SH SYNOPSIS diff --git a/doc/man/nvme_smart_egcw.2 b/doc/man/nvme_smart_egcw.2 index b5ba6a6..fd44292 100644 --- a/doc/man/nvme_smart_egcw.2 +++ b/doc/man/nvme_smart_egcw.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_smart_egcw" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_smart_egcw" "March 2025" "API Manual" LINUX .SH NAME enum nvme_smart_egcw \- Endurance Group Critical Warning Summary .SH SYNOPSIS diff --git a/doc/man/nvme_smart_log.2 b/doc/man/nvme_smart_log.2 index 088373a..e153660 100644 --- a/doc/man/nvme_smart_log.2 +++ b/doc/man/nvme_smart_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_smart_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_smart_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_smart_log \- SMART / Health Information Log (Log Identifier 02h) .SH SYNOPSIS diff --git a/doc/man/nvme_st_code.2 b/doc/man/nvme_st_code.2 index 07b00cd..8155c5c 100644 --- a/doc/man/nvme_st_code.2 +++ b/doc/man/nvme_st_code.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_st_code" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_st_code" "March 2025" "API Manual" LINUX .SH NAME enum nvme_st_code \- Self-test Code value .SH SYNOPSIS @@ -16,6 +16,10 @@ enum nvme_st_code { , .br .br +.BI " NVME_ST_CODE_HOST_INIT" +, +.br +.br .BI " NVME_ST_CODE_VS" , .br @@ -34,6 +38,8 @@ Reserved. Short device self-test operation. .IP "NVME_ST_CODE_EXTENDED" 12 Extended device self-test operation. +.IP "NVME_ST_CODE_HOST_INIT" 12 +Host-Initiated Refresh operation. .IP "NVME_ST_CODE_VS" 12 Vendor specific. .IP "NVME_ST_CODE_ABORT" 12 diff --git a/doc/man/nvme_st_curr_op.2 b/doc/man/nvme_st_curr_op.2 index 2899308..3f5f18f 100644 --- a/doc/man/nvme_st_curr_op.2 +++ b/doc/man/nvme_st_curr_op.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_st_curr_op" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_st_curr_op" "March 2025" "API Manual" LINUX .SH NAME enum nvme_st_curr_op \- Current Device Self-Test Operation .SH SYNOPSIS diff --git a/doc/man/nvme_st_result.2 b/doc/man/nvme_st_result.2 index d33e5f5..34aeb7c 100644 --- a/doc/man/nvme_st_result.2 +++ b/doc/man/nvme_st_result.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_st_result" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_st_result" "March 2025" "API Manual" LINUX .SH NAME struct nvme_st_result \- Self-test Result .SH SYNOPSIS diff --git a/doc/man/nvme_st_valid_diag_info.2 b/doc/man/nvme_st_valid_diag_info.2 index caa3d85..326a16c 100644 --- a/doc/man/nvme_st_valid_diag_info.2 +++ b/doc/man/nvme_st_valid_diag_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_st_valid_diag_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_st_valid_diag_info" "March 2025" "API Manual" LINUX .SH NAME enum nvme_st_valid_diag_info \- Valid Diagnostic Information .SH SYNOPSIS diff --git a/doc/man/nvme_status_code.2 b/doc/man/nvme_status_code.2 index af83958..4ff2230 100644 --- a/doc/man/nvme_status_code.2 +++ b/doc/man/nvme_status_code.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_code" 9 "nvme_status_code" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_code" 9 "nvme_status_code" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_code \- Returns the NVMe Status Code .SH SYNOPSIS diff --git a/doc/man/nvme_status_code_type.2 b/doc/man/nvme_status_code_type.2 index 2665b65..f51cd6e 100644 --- a/doc/man/nvme_status_code_type.2 +++ b/doc/man/nvme_status_code_type.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_code_type" 9 "nvme_status_code_type" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_code_type" 9 "nvme_status_code_type" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_code_type \- Returns the NVMe Status Code Type .SH SYNOPSIS diff --git a/doc/man/nvme_status_equals.2 b/doc/man/nvme_status_equals.2 index 53f4954..41e290c 100644 --- a/doc/man/nvme_status_equals.2 +++ b/doc/man/nvme_status_equals.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_equals" 9 "nvme_status_equals" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_equals" 9 "nvme_status_equals" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_equals \- helper to check a status against a type and value .SH SYNOPSIS diff --git a/doc/man/nvme_status_field.2 b/doc/man/nvme_status_field.2 index b7acbcd..c428351 100644 --- a/doc/man/nvme_status_field.2 +++ b/doc/man/nvme_status_field.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_status_field" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_status_field" "March 2025" "API Manual" LINUX .SH NAME enum nvme_status_field \- Defines all parts of the nvme status field: status code, status code type, and additional flags. .SH SYNOPSIS @@ -184,6 +184,22 @@ enum nvme_status_field { , .br .br +.BI " NVME_SC_INVALID_KEY_TAG" +, +.br +.br +.BI " NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED" +, +.br +.br +.BI " NVME_SC_HOST_ID_NOT_INITIALIZED" +, +.br +.br +.BI " NVME_SC_INCORRECT_KEY" +, +.br +.br .BI " NVME_SC_FDP_DISABLED" , .br @@ -212,6 +228,26 @@ enum nvme_status_field { , .br .br +.BI " NVME_SC_INVALID_VALUE_SIZE" +, +.br +.br +.BI " NVME_SC_INVALID_KEY_SIZE" +, +.br +.br +.BI " NVME_SC_KV_KEY_NOT_EXISTS" +, +.br +.br +.BI " NVME_SC_UNRECOVERED_ERROR" +, +.br +.br +.BI " NVME_SC_KEY_EXISTS" +, +.br +.br .BI " NVME_SC_CQ_INVALID" , .br @@ -817,6 +853,18 @@ the Command and Feature Lockdown. Admin Command Media Not Ready: The Admin command requires access to media and the media is not ready. +.IP "NVME_SC_INVALID_KEY_TAG" 12 +The command was aborted due to an invalid KEYTAG +field value. +.IP "NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED" 12 +The command is prohibited while the +Host Disperesed Namespace Support (HDISNS) field is not +set to 1h in the Host Behavior Support feature. +.IP "NVME_SC_HOST_ID_NOT_INITIALIZED" 12 +Host Identifier Not Initialized. +.IP "NVME_SC_INCORRECT_KEY" 12 +The command was aborted due to the key associated +with the KEYTAG field being incorrect. .IP "NVME_SC_FDP_DISABLED" 12 Command is not allowed when Flexible Data Placement is disabled. @@ -847,6 +895,20 @@ namespace. .IP "NVME_SC_FORMAT_IN_PROGRESS" 12 Format In Progress: A Format NVM command is in progress on the namespace. +.IP "NVME_SC_INVALID_VALUE_SIZE" 12 +The value size is not valid. +.IP "NVME_SC_INVALID_KEY_SIZE" 12 +The KV key size is not valid. +.IP "NVME_SC_KV_KEY_NOT_EXISTS" 12 +The Store If Key Exists (SIKE) bit is set to +'1' in the Store Option field and the KV key does not +exists. +.IP "NVME_SC_UNRECOVERED_ERROR" 12 +There was an unrecovered error when reading +from the meidum. +.IP "NVME_SC_KEY_EXISTS" 12 +The Store If No Key Exists (SINKE) bit is set to '1' +in the Store Option field and the KV key exists. .IP "NVME_SC_CQ_INVALID" 12 Completion Queue Invalid: The Completion Queue identifier specified in the command diff --git a/doc/man/nvme_status_get_type.2 b/doc/man/nvme_status_get_type.2 index ef5e478..be840e0 100644 --- a/doc/man/nvme_status_get_type.2 +++ b/doc/man/nvme_status_get_type.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_get_type" 9 "nvme_status_get_type" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_get_type" 9 "nvme_status_get_type" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_get_type \- extract the type from a nvme_* return value .SH SYNOPSIS diff --git a/doc/man/nvme_status_get_value.2 b/doc/man/nvme_status_get_value.2 index b8f9082..d8bdd74 100644 --- a/doc/man/nvme_status_get_value.2 +++ b/doc/man/nvme_status_get_value.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_get_value" 9 "nvme_status_get_value" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_get_value" 9 "nvme_status_get_value" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_get_value \- extract the status value from a nvme_* return value .SH SYNOPSIS diff --git a/doc/man/nvme_status_result.2 b/doc/man/nvme_status_result.2 index 19e0d25..15e2fbc 100644 --- a/doc/man/nvme_status_result.2 +++ b/doc/man/nvme_status_result.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_status_result" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_status_result" "March 2025" "API Manual" LINUX .SH NAME enum nvme_status_result \- Result of the device self-test operation .SH SYNOPSIS diff --git a/doc/man/nvme_status_to_errno.2 b/doc/man/nvme_status_to_errno.2 index fc2347e..459bf37 100644 --- a/doc/man/nvme_status_to_errno.2 +++ b/doc/man/nvme_status_to_errno.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_to_errno" 9 "nvme_status_to_errno" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_to_errno" 9 "nvme_status_to_errno" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_to_errno \- Converts nvme return status to errno .SH SYNOPSIS diff --git a/doc/man/nvme_status_to_string.2 b/doc/man/nvme_status_to_string.2 index d0edf7f..b1fd197 100644 --- a/doc/man/nvme_status_to_string.2 +++ b/doc/man/nvme_status_to_string.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_to_string" 9 "nvme_status_to_string" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_to_string" 9 "nvme_status_to_string" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_to_string \- Returns string describing nvme return status. .SH SYNOPSIS diff --git a/doc/man/nvme_status_type.2 b/doc/man/nvme_status_type.2 index aab013b..1ebf2d3 100644 --- a/doc/man/nvme_status_type.2 +++ b/doc/man/nvme_status_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_status_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_status_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_status_type \- type encoding for NVMe return values, when represented as an int. .SH SYNOPSIS diff --git a/doc/man/nvme_streams_directive_params.2 b/doc/man/nvme_streams_directive_params.2 index d333126..5a2d9e0 100644 --- a/doc/man/nvme_streams_directive_params.2 +++ b/doc/man/nvme_streams_directive_params.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_streams_directive_params" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_streams_directive_params" "March 2025" "API Manual" LINUX .SH NAME struct nvme_streams_directive_params \- Streams Directive - Return Parameters Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_streams_directive_status.2 b/doc/man/nvme_streams_directive_status.2 index 5b99662..d012ac1 100644 --- a/doc/man/nvme_streams_directive_status.2 +++ b/doc/man/nvme_streams_directive_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_streams_directive_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_streams_directive_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_streams_directive_status \- Streams Directive - Get Status Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_submit_admin_passthru.2 b/doc/man/nvme_submit_admin_passthru.2 index aa343ad..3010939 100644 --- a/doc/man/nvme_submit_admin_passthru.2 +++ b/doc/man/nvme_submit_admin_passthru.2 @@ -1,4 +1,4 @@ -.TH "nvme_submit_admin_passthru" 9 "nvme_submit_admin_passthru" "November 2024" "libnvme API manual" LINUX +.TH "nvme_submit_admin_passthru" 9 "nvme_submit_admin_passthru" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_submit_admin_passthru \- Submit an nvme passthrough admin command .SH SYNOPSIS diff --git a/doc/man/nvme_submit_admin_passthru64.2 b/doc/man/nvme_submit_admin_passthru64.2 index 43d8974..1c5e423 100644 --- a/doc/man/nvme_submit_admin_passthru64.2 +++ b/doc/man/nvme_submit_admin_passthru64.2 @@ -1,4 +1,4 @@ -.TH "nvme_submit_admin_passthru64" 9 "nvme_submit_admin_passthru64" "November 2024" "libnvme API manual" LINUX +.TH "nvme_submit_admin_passthru64" 9 "nvme_submit_admin_passthru64" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_submit_admin_passthru64 \- Submit a 64-bit nvme passthrough admin command .SH SYNOPSIS diff --git a/doc/man/nvme_submit_io_passthru.2 b/doc/man/nvme_submit_io_passthru.2 index 69df3d1..95de44b 100644 --- a/doc/man/nvme_submit_io_passthru.2 +++ b/doc/man/nvme_submit_io_passthru.2 @@ -1,4 +1,4 @@ -.TH "nvme_submit_io_passthru" 9 "nvme_submit_io_passthru" "November 2024" "libnvme API manual" LINUX +.TH "nvme_submit_io_passthru" 9 "nvme_submit_io_passthru" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_submit_io_passthru \- Submit an nvme passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_submit_io_passthru64.2 b/doc/man/nvme_submit_io_passthru64.2 index 7e16858..6f0157f 100644 --- a/doc/man/nvme_submit_io_passthru64.2 +++ b/doc/man/nvme_submit_io_passthru64.2 @@ -1,4 +1,4 @@ -.TH "nvme_submit_io_passthru64" 9 "nvme_submit_io_passthru64" "November 2024" "libnvme API manual" LINUX +.TH "nvme_submit_io_passthru64" 9 "nvme_submit_io_passthru64" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_submit_io_passthru64 \- Submit a 64-bit nvme passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_subsys_filter.2 b/doc/man/nvme_subsys_filter.2 index ebe520f..70602f4 100644 --- a/doc/man/nvme_subsys_filter.2 +++ b/doc/man/nvme_subsys_filter.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsys_filter" 9 "nvme_subsys_filter" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsys_filter" 9 "nvme_subsys_filter" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsys_filter \- Filter for subsystems .SH SYNOPSIS diff --git a/doc/man/nvme_subsys_type.2 b/doc/man/nvme_subsys_type.2 index 0af8de2..32504c9 100644 --- a/doc/man/nvme_subsys_type.2 +++ b/doc/man/nvme_subsys_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_subsys_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_subsys_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_subsys_type \- Type of the NVM subsystem. .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_first_ctrl.2 b/doc/man/nvme_subsystem_first_ctrl.2 index 3b3fdaa..5a7b153 100644 --- a/doc/man/nvme_subsystem_first_ctrl.2 +++ b/doc/man/nvme_subsystem_first_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_first_ctrl" 9 "nvme_subsystem_first_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_first_ctrl" 9 "nvme_subsystem_first_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_first_ctrl \- First ctrl iterator .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_first_ns.2 b/doc/man/nvme_subsystem_first_ns.2 index f48a54f..e384261 100644 --- a/doc/man/nvme_subsystem_first_ns.2 +++ b/doc/man/nvme_subsystem_first_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_first_ns" 9 "nvme_subsystem_first_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_first_ns" 9 "nvme_subsystem_first_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_first_ns \- Start namespace iterator .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_for_each_ctrl.2 b/doc/man/nvme_subsystem_for_each_ctrl.2 index e42eefe..a890ba4 100644 --- a/doc/man/nvme_subsystem_for_each_ctrl.2 +++ b/doc/man/nvme_subsystem_for_each_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_for_each_ctrl" 9 "nvme_subsystem_for_each_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ctrl" 9 "nvme_subsystem_for_each_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_for_each_ctrl \- Traverse controllers .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_for_each_ctrl_safe.2 b/doc/man/nvme_subsystem_for_each_ctrl_safe.2 index 25f4f54..298f69e 100644 --- a/doc/man/nvme_subsystem_for_each_ctrl_safe.2 +++ b/doc/man/nvme_subsystem_for_each_ctrl_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_for_each_ctrl_safe" 9 "nvme_subsystem_for_each_ctrl_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ctrl_safe" 9 "nvme_subsystem_for_each_ctrl_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_for_each_ctrl_safe \- Traverse controllers .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_for_each_ns.2 b/doc/man/nvme_subsystem_for_each_ns.2 index 9743367..d3e80be 100644 --- a/doc/man/nvme_subsystem_for_each_ns.2 +++ b/doc/man/nvme_subsystem_for_each_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_for_each_ns" 9 "nvme_subsystem_for_each_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ns" 9 "nvme_subsystem_for_each_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_for_each_ns \- Traverse namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_for_each_ns_safe.2 b/doc/man/nvme_subsystem_for_each_ns_safe.2 index b51a113..753bccf 100644 --- a/doc/man/nvme_subsystem_for_each_ns_safe.2 +++ b/doc/man/nvme_subsystem_for_each_ns_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_for_each_ns_safe" 9 "nvme_subsystem_for_each_ns_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ns_safe" 9 "nvme_subsystem_for_each_ns_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_for_each_ns_safe \- Traverse namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_application.2 b/doc/man/nvme_subsystem_get_application.2 index 9aa0b50..497cf56 100644 --- a/doc/man/nvme_subsystem_get_application.2 +++ b/doc/man/nvme_subsystem_get_application.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_application" 9 "nvme_subsystem_get_application" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_application" 9 "nvme_subsystem_get_application" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_application \- Return the application string .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_host.2 b/doc/man/nvme_subsystem_get_host.2 index 66307aa..a567b04 100644 --- a/doc/man/nvme_subsystem_get_host.2 +++ b/doc/man/nvme_subsystem_get_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_host" 9 "nvme_subsystem_get_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_host" 9 "nvme_subsystem_get_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_host \- Returns nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_iopolicy.2 b/doc/man/nvme_subsystem_get_iopolicy.2 index db66e1d..9eb53f0 100644 --- a/doc/man/nvme_subsystem_get_iopolicy.2 +++ b/doc/man/nvme_subsystem_get_iopolicy.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_iopolicy" 9 "nvme_subsystem_get_iopolicy" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_iopolicy" 9 "nvme_subsystem_get_iopolicy" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_iopolicy \- Return the IO policy of subsytem .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_name.2 b/doc/man/nvme_subsystem_get_name.2 index 12450f9..45e35a6 100644 --- a/doc/man/nvme_subsystem_get_name.2 +++ b/doc/man/nvme_subsystem_get_name.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_name" 9 "nvme_subsystem_get_name" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_name" 9 "nvme_subsystem_get_name" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_name \- sysfs name of an nvme_subsystem_t object .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_nqn.2 b/doc/man/nvme_subsystem_get_nqn.2 index ca981d5..168bcea 100644 --- a/doc/man/nvme_subsystem_get_nqn.2 +++ b/doc/man/nvme_subsystem_get_nqn.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_nqn" 9 "nvme_subsystem_get_nqn" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_nqn" 9 "nvme_subsystem_get_nqn" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_nqn \- Retrieve NQN from subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_sysfs_dir.2 b/doc/man/nvme_subsystem_get_sysfs_dir.2 index 2ce35c9..f0999aa 100644 --- a/doc/man/nvme_subsystem_get_sysfs_dir.2 +++ b/doc/man/nvme_subsystem_get_sysfs_dir.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_sysfs_dir" 9 "nvme_subsystem_get_sysfs_dir" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_sysfs_dir" 9 "nvme_subsystem_get_sysfs_dir" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_sysfs_dir \- sysfs directory of an nvme_subsystem_t object .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_type.2 b/doc/man/nvme_subsystem_get_type.2 index c7e4b34..b39c341 100644 --- a/doc/man/nvme_subsystem_get_type.2 +++ b/doc/man/nvme_subsystem_get_type.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_type" 9 "nvme_subsystem_get_type" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_type" 9 "nvme_subsystem_get_type" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_type \- Returns the type of a subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_lookup_namespace.2 b/doc/man/nvme_subsystem_lookup_namespace.2 index 03224a8..f40a9d6 100644 --- a/doc/man/nvme_subsystem_lookup_namespace.2 +++ b/doc/man/nvme_subsystem_lookup_namespace.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_lookup_namespace" 9 "nvme_subsystem_lookup_namespace" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_lookup_namespace" 9 "nvme_subsystem_lookup_namespace" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_lookup_namespace \- lookup namespace by NSID .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_next_ctrl.2 b/doc/man/nvme_subsystem_next_ctrl.2 index 0f6a978..028972d 100644 --- a/doc/man/nvme_subsystem_next_ctrl.2 +++ b/doc/man/nvme_subsystem_next_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_next_ctrl" 9 "nvme_subsystem_next_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_next_ctrl" 9 "nvme_subsystem_next_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_next_ctrl \- Next ctrl iterator .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_next_ns.2 b/doc/man/nvme_subsystem_next_ns.2 index de78d04..3237abb 100644 --- a/doc/man/nvme_subsystem_next_ns.2 +++ b/doc/man/nvme_subsystem_next_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_next_ns" 9 "nvme_subsystem_next_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_next_ns" 9 "nvme_subsystem_next_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_next_ns \- Next namespace iterator .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_release_fds.2 b/doc/man/nvme_subsystem_release_fds.2 index 320ae89..72f8240 100644 --- a/doc/man/nvme_subsystem_release_fds.2 +++ b/doc/man/nvme_subsystem_release_fds.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_release_fds" 9 "nvme_subsystem_release_fds" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_release_fds" 9 "nvme_subsystem_release_fds" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_release_fds \- Close all opened fds under subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_reset.2 b/doc/man/nvme_subsystem_reset.2 index a536c74..3b7b9e0 100644 --- a/doc/man/nvme_subsystem_reset.2 +++ b/doc/man/nvme_subsystem_reset.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_reset" 9 "nvme_subsystem_reset" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_reset" 9 "nvme_subsystem_reset" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_reset \- Initiate a subsystem reset .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_set_application.2 b/doc/man/nvme_subsystem_set_application.2 index 58380e4..bd23a1d 100644 --- a/doc/man/nvme_subsystem_set_application.2 +++ b/doc/man/nvme_subsystem_set_application.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_set_application" 9 "nvme_subsystem_set_application" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_set_application" 9 "nvme_subsystem_set_application" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_set_application \- Set the application string .SH SYNOPSIS diff --git a/doc/man/nvme_supported_cap_config_list_log.2 b/doc/man/nvme_supported_cap_config_list_log.2 index 2534492..b468880 100644 --- a/doc/man/nvme_supported_cap_config_list_log.2 +++ b/doc/man/nvme_supported_cap_config_list_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_supported_cap_config_list_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_supported_cap_config_list_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_supported_cap_config_list_log \- Supported Capacity Configuration list log page .SH SYNOPSIS diff --git a/doc/man/nvme_supported_log_pages.2 b/doc/man/nvme_supported_log_pages.2 index eadbac5..4da1c03 100644 --- a/doc/man/nvme_supported_log_pages.2 +++ b/doc/man/nvme_supported_log_pages.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_supported_log_pages" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_supported_log_pages" "March 2025" "API Manual" LINUX .SH NAME struct nvme_supported_log_pages \- Supported Log Pages - Log .SH SYNOPSIS diff --git a/doc/man/nvme_telemetry_da.2 b/doc/man/nvme_telemetry_da.2 index a4d3117..284da46 100644 --- a/doc/man/nvme_telemetry_da.2 +++ b/doc/man/nvme_telemetry_da.2 @@ -1,9 +1,13 @@ -.TH "libnvme" 9 "enum nvme_telemetry_da" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_telemetry_da" "March 2025" "API Manual" LINUX .SH NAME enum nvme_telemetry_da \- Telemetry Log Data Area .SH SYNOPSIS enum nvme_telemetry_da { .br +.BI " NVME_TELEMETRY_DA_CTRL_DETERMINE" +, +.br +.br .BI " NVME_TELEMETRY_DA_1" , .br @@ -20,6 +24,8 @@ enum nvme_telemetry_da { }; .SH Constants +.IP "NVME_TELEMETRY_DA_CTRL_DETERMINE" 12 +The controller determines the data areas to be created .IP "NVME_TELEMETRY_DA_1" 12 Data Area 1 .IP "NVME_TELEMETRY_DA_2" 12 diff --git a/doc/man/nvme_telemetry_log.2 b/doc/man/nvme_telemetry_log.2 index 1075461..a5c9f64 100644 --- a/doc/man/nvme_telemetry_log.2 +++ b/doc/man/nvme_telemetry_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_telemetry_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_telemetry_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_telemetry_log \- Retrieve internal data specific to the manufacturer. .SH SYNOPSIS @@ -20,9 +20,17 @@ struct nvme_telemetry_log { .br .BI " __le32 dalb4;" .br -.BI " __u8 rsvd20[361];" +.BI " __u8 rsvd20[360];" .br -.BI " __u8 hostdgn;" +.BI " __u8 ths;" +.br +.BI " union {" +.br +.BI " __u8 hostdgn;" +.br +.BI " __u8 tcs;" +.br +.BI " };" .br .BI " __u8 ctrlavail;" .br @@ -46,25 +54,31 @@ Reserved IEEE OUI Identifier is the Organization Unique Identifier (OUI) for the controller vendor that is able to interpret the data. .IP "dalb1" 12 -Telemetry Controller-Initiated Data Area 1 Last Block is +Telemetry Host/Controller Initiated Data Area 1 Last Block is the value of the last block in this area. .IP "dalb2" 12 -Telemetry Controller-Initiated Data Area 1 Last Block is +Telemetry Host/Controller Initiated Data Area 1 Last Block is the value of the last block in this area. .IP "dalb3" 12 -Telemetry Controller-Initiated Data Area 1 Last Block is +Telemetry Host/ControllerInitiated Data Area 1 Last Block is the value of the last block in this area. .IP "rsvd14" 12 Reserved .IP "dalb4" 12 -Telemetry Controller-Initiated Data Area 4 Last Block is +Telemetry Host/Controller Initiated Data Area 4 Last Block is the value of the last block in this area. .IP "rsvd20" 12 Reserved +.IP "ths" 12 +Telemetry Host-Initiated Scope +.IP "{unnamed_union}" 12 +anonymous .IP "hostdgn" 12 Telemetry Host-Initiated Data Generation Number is a value that is incremented each time the host initiates a -capture of its internal controller state in the controller . +capture of its internal controller state in the controller. +.IP "tcs" 12 +Telemetry Controller-Initiated Scope .IP "ctrlavail" 12 Telemetry Controller-Initiated Data Available, if cleared, then the controller telemetry log does not contain saved diff --git a/doc/man/nvme_thermal_exc_event.2 b/doc/man/nvme_thermal_exc_event.2 index 17e84ca..201ed0e 100644 --- a/doc/man/nvme_thermal_exc_event.2 +++ b/doc/man/nvme_thermal_exc_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_thermal_exc_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_thermal_exc_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_thermal_exc_event \- Thermal Excursion Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_time_stamp_change_event.2 b/doc/man/nvme_time_stamp_change_event.2 index 7e98144..08554be 100644 --- a/doc/man/nvme_time_stamp_change_event.2 +++ b/doc/man/nvme_time_stamp_change_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_time_stamp_change_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_time_stamp_change_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_time_stamp_change_event \- Timestamp Change Event .SH SYNOPSIS diff --git a/doc/man/nvme_timestamp.2 b/doc/man/nvme_timestamp.2 index d512035..437347a 100644 --- a/doc/man/nvme_timestamp.2 +++ b/doc/man/nvme_timestamp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_timestamp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_timestamp" "March 2025" "API Manual" LINUX .SH NAME struct nvme_timestamp \- Timestamp - Data Structure for Get Features .SH SYNOPSIS diff --git a/doc/man/nvme_unit.2 b/doc/man/nvme_unit.2 index 21a8ce3..e77e5b4 100644 --- a/doc/man/nvme_unit.2 +++ b/doc/man/nvme_unit.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_unit" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_unit" "March 2025" "API Manual" LINUX .SH NAME enum nvme_unit \- Defined buffer size and write throughput granularity units .SH SYNOPSIS diff --git a/doc/man/nvme_unlink_ctrl.2 b/doc/man/nvme_unlink_ctrl.2 index 04afc09..9174f99 100644 --- a/doc/man/nvme_unlink_ctrl.2 +++ b/doc/man/nvme_unlink_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_unlink_ctrl" 9 "nvme_unlink_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_unlink_ctrl" 9 "nvme_unlink_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_unlink_ctrl \- Unlink controller .SH SYNOPSIS diff --git a/doc/man/nvme_update_config.2 b/doc/man/nvme_update_config.2 index 885ee63..e483cd3 100644 --- a/doc/man/nvme_update_config.2 +++ b/doc/man/nvme_update_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_update_config" 9 "nvme_update_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_update_config" 9 "nvme_update_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_update_config \- Update JSON configuration .SH SYNOPSIS diff --git a/doc/man/nvme_update_key.2 b/doc/man/nvme_update_key.2 index 833a963..3c81175 100644 --- a/doc/man/nvme_update_key.2 +++ b/doc/man/nvme_update_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_update_key" 9 "nvme_update_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_update_key" 9 "nvme_update_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_update_key \- Update key raw data .SH SYNOPSIS diff --git a/doc/man/nvme_uring_cmd.2 b/doc/man/nvme_uring_cmd.2 index e54022b..a184f85 100644 --- a/doc/man/nvme_uring_cmd.2 +++ b/doc/man/nvme_uring_cmd.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_uring_cmd" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_uring_cmd" "March 2025" "API Manual" LINUX .SH NAME struct nvme_uring_cmd \- nvme uring command structure .SH SYNOPSIS diff --git a/doc/man/nvme_verify.2 b/doc/man/nvme_verify.2 index cb24936..b9a527a 100644 --- a/doc/man/nvme_verify.2 +++ b/doc/man/nvme_verify.2 @@ -1,4 +1,4 @@ -.TH "nvme_verify" 9 "nvme_verify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_verify" 9 "nvme_verify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_verify \- Send an nvme verify command .SH SYNOPSIS diff --git a/doc/man/nvme_version.2 b/doc/man/nvme_version.2 index b8f60bf..50b2cc6 100644 --- a/doc/man/nvme_version.2 +++ b/doc/man/nvme_version.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_version" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_version" "March 2025" "API Manual" LINUX .SH NAME enum nvme_version \- Selector for version to be returned by @nvme_get_version .SH SYNOPSIS diff --git a/doc/man/nvme_virt_mgmt_act.2 b/doc/man/nvme_virt_mgmt_act.2 index 46438e6..68d208d 100644 --- a/doc/man/nvme_virt_mgmt_act.2 +++ b/doc/man/nvme_virt_mgmt_act.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_virt_mgmt_act" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_virt_mgmt_act" "March 2025" "API Manual" LINUX .SH NAME enum nvme_virt_mgmt_act \- Virtualization Management - Action .SH SYNOPSIS diff --git a/doc/man/nvme_virt_mgmt_rt.2 b/doc/man/nvme_virt_mgmt_rt.2 index 06c1bc9..ea688eb 100644 --- a/doc/man/nvme_virt_mgmt_rt.2 +++ b/doc/man/nvme_virt_mgmt_rt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_virt_mgmt_rt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_virt_mgmt_rt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_virt_mgmt_rt \- Virtualization Management - Resource Type .SH SYNOPSIS diff --git a/doc/man/nvme_virtual_mgmt.2 b/doc/man/nvme_virtual_mgmt.2 index 9c0a7e0..79bf6cd 100644 --- a/doc/man/nvme_virtual_mgmt.2 +++ b/doc/man/nvme_virtual_mgmt.2 @@ -1,4 +1,4 @@ -.TH "nvme_virtual_mgmt" 9 "nvme_virtual_mgmt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_virtual_mgmt" 9 "nvme_virtual_mgmt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_virtual_mgmt \- Virtualization resource management .SH SYNOPSIS diff --git a/doc/man/nvme_vs.2 b/doc/man/nvme_vs.2 index 2603b7c..64d15cc 100644 --- a/doc/man/nvme_vs.2 +++ b/doc/man/nvme_vs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_vs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_vs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_vs \- This field indicates the version .SH SYNOPSIS diff --git a/doc/man/nvme_write.2 b/doc/man/nvme_write.2 index 90f7890..8de8a20 100644 --- a/doc/man/nvme_write.2 +++ b/doc/man/nvme_write.2 @@ -1,4 +1,4 @@ -.TH "nvme_write" 9 "nvme_write" "November 2024" "libnvme API manual" LINUX +.TH "nvme_write" 9 "nvme_write" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_write \- Submit an nvme user write command .SH SYNOPSIS diff --git a/doc/man/nvme_write_uncorrectable.2 b/doc/man/nvme_write_uncorrectable.2 index 33a9bd1..143a2dd 100644 --- a/doc/man/nvme_write_uncorrectable.2 +++ b/doc/man/nvme_write_uncorrectable.2 @@ -1,4 +1,4 @@ -.TH "nvme_write_uncorrectable" 9 "nvme_write_uncorrectable" "November 2024" "libnvme API manual" LINUX +.TH "nvme_write_uncorrectable" 9 "nvme_write_uncorrectable" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_write_uncorrectable \- Submit an nvme write uncorrectable command .SH SYNOPSIS diff --git a/doc/man/nvme_write_zeros.2 b/doc/man/nvme_write_zeros.2 index 1a4c322..c9e9aae 100644 --- a/doc/man/nvme_write_zeros.2 +++ b/doc/man/nvme_write_zeros.2 @@ -1,4 +1,4 @@ -.TH "nvme_write_zeros" 9 "nvme_write_zeros" "November 2024" "libnvme API manual" LINUX +.TH "nvme_write_zeros" 9 "nvme_write_zeros" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_write_zeros \- Submit an nvme write zeroes command .SH SYNOPSIS diff --git a/doc/man/nvme_zns_append.2 b/doc/man/nvme_zns_append.2 index 2acd4a5..e4cdea5 100644 --- a/doc/man/nvme_zns_append.2 +++ b/doc/man/nvme_zns_append.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_append" 9 "nvme_zns_append" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_append" 9 "nvme_zns_append" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_append \- Append data to a zone .SH SYNOPSIS diff --git a/doc/man/nvme_zns_changed_zone_log.2 b/doc/man/nvme_zns_changed_zone_log.2 index 93434be..205f9c4 100644 --- a/doc/man/nvme_zns_changed_zone_log.2 +++ b/doc/man/nvme_zns_changed_zone_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zns_changed_zone_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_changed_zone_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zns_changed_zone_log \- ZNS Changed Zone List log .SH SYNOPSIS diff --git a/doc/man/nvme_zns_desc.2 b/doc/man/nvme_zns_desc.2 index 76387ca..c05d0ba 100644 --- a/doc/man/nvme_zns_desc.2 +++ b/doc/man/nvme_zns_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zns_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zns_desc \- Zone Descriptor Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_zns_id_ctrl.2 b/doc/man/nvme_zns_id_ctrl.2 index 120ae73..6b8884a 100644 --- a/doc/man/nvme_zns_id_ctrl.2 +++ b/doc/man/nvme_zns_id_ctrl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zns_id_ctrl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_id_ctrl" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zns_id_ctrl \- I/O Command Set Specific Identify Controller Data Structure for the Zoned Namespace Command Set .SH SYNOPSIS diff --git a/doc/man/nvme_zns_id_ns.2 b/doc/man/nvme_zns_id_ns.2 index 9927c56..a5afa67 100644 --- a/doc/man/nvme_zns_id_ns.2 +++ b/doc/man/nvme_zns_id_ns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zns_id_ns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_id_ns" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zns_id_ns \- Zoned Namespace Command Set Specific Identify Namespace Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_zns_identify_ctrl.2 b/doc/man/nvme_zns_identify_ctrl.2 index 0cbbaf8..3c6a380 100644 --- a/doc/man/nvme_zns_identify_ctrl.2 +++ b/doc/man/nvme_zns_identify_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_identify_ctrl" 9 "nvme_zns_identify_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_identify_ctrl" 9 "nvme_zns_identify_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_identify_ctrl \- ZNS identify controller data .SH SYNOPSIS diff --git a/doc/man/nvme_zns_identify_ns.2 b/doc/man/nvme_zns_identify_ns.2 index 26026d3..61ccedb 100644 --- a/doc/man/nvme_zns_identify_ns.2 +++ b/doc/man/nvme_zns_identify_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_identify_ns" 9 "nvme_zns_identify_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_identify_ns" 9 "nvme_zns_identify_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_identify_ns \- ZNS identify namespace data .SH SYNOPSIS diff --git a/doc/man/nvme_zns_lbafe.2 b/doc/man/nvme_zns_lbafe.2 index 8659054..3841624 100644 --- a/doc/man/nvme_zns_lbafe.2 +++ b/doc/man/nvme_zns_lbafe.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zns_lbafe" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_lbafe" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zns_lbafe \- LBA Format Extension Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_zns_mgmt_recv.2 b/doc/man/nvme_zns_mgmt_recv.2 index 62f7eb9..7781570 100644 --- a/doc/man/nvme_zns_mgmt_recv.2 +++ b/doc/man/nvme_zns_mgmt_recv.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_mgmt_recv" 9 "nvme_zns_mgmt_recv" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_mgmt_recv" 9 "nvme_zns_mgmt_recv" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_mgmt_recv \- ZNS management receive command .SH SYNOPSIS diff --git a/doc/man/nvme_zns_mgmt_send.2 b/doc/man/nvme_zns_mgmt_send.2 index 6798feb..ea91653 100644 --- a/doc/man/nvme_zns_mgmt_send.2 +++ b/doc/man/nvme_zns_mgmt_send.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_mgmt_send" 9 "nvme_zns_mgmt_send" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_mgmt_send" 9 "nvme_zns_mgmt_send" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_mgmt_send \- ZNS management send command .SH SYNOPSIS diff --git a/doc/man/nvme_zns_recv_action.2 b/doc/man/nvme_zns_recv_action.2 index 75f2a40..f09d821 100644 --- a/doc/man/nvme_zns_recv_action.2 +++ b/doc/man/nvme_zns_recv_action.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_recv_action" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_recv_action" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_recv_action \- Zone Management Receive - Zone Receive Action Specific Features .SH SYNOPSIS diff --git a/doc/man/nvme_zns_report_options.2 b/doc/man/nvme_zns_report_options.2 index 1399bf0..a8f3c48 100644 --- a/doc/man/nvme_zns_report_options.2 +++ b/doc/man/nvme_zns_report_options.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_report_options" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_report_options" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_report_options \- Zone Management Receive - Zone Receive Action Specific Field .SH SYNOPSIS diff --git a/doc/man/nvme_zns_report_zones.2 b/doc/man/nvme_zns_report_zones.2 index 5f9b87a..1e07ecd 100644 --- a/doc/man/nvme_zns_report_zones.2 +++ b/doc/man/nvme_zns_report_zones.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_report_zones" 9 "nvme_zns_report_zones" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_report_zones" 9 "nvme_zns_report_zones" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_report_zones \- Return the list of zones .SH SYNOPSIS diff --git a/doc/man/nvme_zns_send_action.2 b/doc/man/nvme_zns_send_action.2 index 341fccb..d737cbd 100644 --- a/doc/man/nvme_zns_send_action.2 +++ b/doc/man/nvme_zns_send_action.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_send_action" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_send_action" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_send_action \- Zone Management Send - Zone Send Action .SH SYNOPSIS diff --git a/doc/man/nvme_zns_za.2 b/doc/man/nvme_zns_za.2 index 9f3cd7f..a92bcb6 100644 --- a/doc/man/nvme_zns_za.2 +++ b/doc/man/nvme_zns_za.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_za" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_za" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_za \- Zone Descriptor Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_zns_zs.2 b/doc/man/nvme_zns_zs.2 index 1a7d427..d6343eb 100644 --- a/doc/man/nvme_zns_zs.2 +++ b/doc/man/nvme_zns_zs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_zs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_zs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_zs \- Zone Descriptor Data Structure - Zone State .SH SYNOPSIS diff --git a/doc/man/nvme_zns_zt.2 b/doc/man/nvme_zns_zt.2 index a3de9c9..97a9231 100644 --- a/doc/man/nvme_zns_zt.2 +++ b/doc/man/nvme_zns_zt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_zt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_zt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_zt \- Zone Descriptor Data Structure - Zone Type .SH SYNOPSIS diff --git a/doc/man/nvme_zone_report.2 b/doc/man/nvme_zone_report.2 index 0d46e67..e9c8fd8 100644 --- a/doc/man/nvme_zone_report.2 +++ b/doc/man/nvme_zone_report.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zone_report" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zone_report" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zone_report \- Report Zones Data Structure .SH SYNOPSIS diff --git a/doc/man/nvmf_add_ctrl.2 b/doc/man/nvmf_add_ctrl.2 index eecd764..84a8d87 100644 --- a/doc/man/nvmf_add_ctrl.2 +++ b/doc/man/nvmf_add_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvmf_add_ctrl" 9 "nvmf_add_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_add_ctrl" 9 "nvmf_add_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_add_ctrl \- Connect a controller and update topology .SH SYNOPSIS diff --git a/doc/man/nvmf_addr_family.2 b/doc/man/nvmf_addr_family.2 index 9172f02..f020dd0 100644 --- a/doc/man/nvmf_addr_family.2 +++ b/doc/man/nvmf_addr_family.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_addr_family" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_addr_family" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_addr_family \- Address Family codes for Discovery Log Page entry ADRFAM field .SH SYNOPSIS diff --git a/doc/man/nvmf_adrfam_str.2 b/doc/man/nvmf_adrfam_str.2 index 2f592b5..e472985 100644 --- a/doc/man/nvmf_adrfam_str.2 +++ b/doc/man/nvmf_adrfam_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_adrfam_str" 9 "nvmf_adrfam_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_adrfam_str" 9 "nvmf_adrfam_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_adrfam_str \- Decode ADRFAM field .SH SYNOPSIS diff --git a/doc/man/nvmf_cms_str.2 b/doc/man/nvmf_cms_str.2 index fef72d0..92d1096 100644 --- a/doc/man/nvmf_cms_str.2 +++ b/doc/man/nvmf_cms_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_cms_str" 9 "nvmf_cms_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_cms_str" 9 "nvmf_cms_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_cms_str \- Decode RDMA connection management service field .SH SYNOPSIS diff --git a/doc/man/nvmf_connect_ctrl.2 b/doc/man/nvmf_connect_ctrl.2 index 73ede8f..bff4cb6 100644 --- a/doc/man/nvmf_connect_ctrl.2 +++ b/doc/man/nvmf_connect_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvmf_connect_ctrl" 9 "nvmf_connect_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_connect_ctrl" 9 "nvmf_connect_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_connect_ctrl \- Connect a controller .SH SYNOPSIS diff --git a/doc/man/nvmf_connect_data.2 b/doc/man/nvmf_connect_data.2 index c5aa1af..80123cf 100644 --- a/doc/man/nvmf_connect_data.2 +++ b/doc/man/nvmf_connect_data.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_connect_data" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_connect_data" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_connect_data \- Data payload for the 'connect' command .SH SYNOPSIS diff --git a/doc/man/nvmf_connect_disc_entry.2 b/doc/man/nvmf_connect_disc_entry.2 index 262c3d9..92a0ff3 100644 --- a/doc/man/nvmf_connect_disc_entry.2 +++ b/doc/man/nvmf_connect_disc_entry.2 @@ -1,4 +1,4 @@ -.TH "nvmf_connect_disc_entry" 9 "nvmf_connect_disc_entry" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_connect_disc_entry" 9 "nvmf_connect_disc_entry" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_connect_disc_entry \- Connect controller based on the discovery log page entry .SH SYNOPSIS diff --git a/doc/man/nvmf_default_config.2 b/doc/man/nvmf_default_config.2 index 6f1a6af..50a055a 100644 --- a/doc/man/nvmf_default_config.2 +++ b/doc/man/nvmf_default_config.2 @@ -1,4 +1,4 @@ -.TH "nvmf_default_config" 9 "nvmf_default_config" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_default_config" 9 "nvmf_default_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_default_config \- Default values for fabrics configuration .SH SYNOPSIS diff --git a/doc/man/nvmf_dim_data.2 b/doc/man/nvmf_dim_data.2 index fb6c7a9..83c394a 100644 --- a/doc/man/nvmf_dim_data.2 +++ b/doc/man/nvmf_dim_data.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_dim_data" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_dim_data" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_dim_data \- Discovery Information Management (DIM) - Data .SH SYNOPSIS diff --git a/doc/man/nvmf_dim_entfmt.2 b/doc/man/nvmf_dim_entfmt.2 index 02c1679..90e705e 100644 --- a/doc/man/nvmf_dim_entfmt.2 +++ b/doc/man/nvmf_dim_entfmt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_dim_entfmt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_dim_entfmt" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_dim_entfmt \- Discovery Information Management Entry Format .SH SYNOPSIS diff --git a/doc/man/nvmf_dim_etype.2 b/doc/man/nvmf_dim_etype.2 index 6abf26a..bccc6cc 100644 --- a/doc/man/nvmf_dim_etype.2 +++ b/doc/man/nvmf_dim_etype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_dim_etype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_dim_etype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_dim_etype \- Discovery Information Management Entity Type .SH SYNOPSIS diff --git a/doc/man/nvmf_dim_tas.2 b/doc/man/nvmf_dim_tas.2 index d159c71..69738bf 100644 --- a/doc/man/nvmf_dim_tas.2 +++ b/doc/man/nvmf_dim_tas.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_dim_tas" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_dim_tas" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_dim_tas \- Discovery Information Management Task .SH SYNOPSIS diff --git a/doc/man/nvmf_disc_eflags.2 b/doc/man/nvmf_disc_eflags.2 index a698e50..7877d14 100644 --- a/doc/man/nvmf_disc_eflags.2 +++ b/doc/man/nvmf_disc_eflags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_disc_eflags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_disc_eflags" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_disc_eflags \- Discovery Log Page entry flags. .SH SYNOPSIS diff --git a/doc/man/nvmf_disc_log_entry.2 b/doc/man/nvmf_disc_log_entry.2 index 45194d4..cd47a77 100644 --- a/doc/man/nvmf_disc_log_entry.2 +++ b/doc/man/nvmf_disc_log_entry.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_disc_log_entry" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_disc_log_entry" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_disc_log_entry \- Discovery Log Page entry .SH SYNOPSIS diff --git a/doc/man/nvmf_discovery_log.2 b/doc/man/nvmf_discovery_log.2 index 7e04b23..0e4beee 100644 --- a/doc/man/nvmf_discovery_log.2 +++ b/doc/man/nvmf_discovery_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_discovery_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_discovery_log" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_discovery_log \- Discovery Log Page (Log Identifier 70h) .SH SYNOPSIS diff --git a/doc/man/nvmf_eflags_str.2 b/doc/man/nvmf_eflags_str.2 index 6272bda..560fd22 100644 --- a/doc/man/nvmf_eflags_str.2 +++ b/doc/man/nvmf_eflags_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_eflags_str" 9 "nvmf_eflags_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_eflags_str" 9 "nvmf_eflags_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_eflags_str \- Decode EFLAGS field .SH SYNOPSIS diff --git a/doc/man/nvmf_exat_len.2 b/doc/man/nvmf_exat_len.2 index dc4ef8d..787fd24 100644 --- a/doc/man/nvmf_exat_len.2 +++ b/doc/man/nvmf_exat_len.2 @@ -1,4 +1,4 @@ -.TH "nvmf_exat_len" 9 "nvmf_exat_len" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_exat_len" 9 "nvmf_exat_len" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_exat_len \- Return length rounded up by 4 .SH SYNOPSIS diff --git a/doc/man/nvmf_exattype.2 b/doc/man/nvmf_exattype.2 index a969008..2cef204 100644 --- a/doc/man/nvmf_exattype.2 +++ b/doc/man/nvmf_exattype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_exattype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_exattype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_exattype \- Extended Attribute Type .SH SYNOPSIS diff --git a/doc/man/nvmf_ext_attr.2 b/doc/man/nvmf_ext_attr.2 index 2c4d0c1..657446b 100644 --- a/doc/man/nvmf_ext_attr.2 +++ b/doc/man/nvmf_ext_attr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_ext_attr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_ext_attr" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_ext_attr \- Extended Attribute (EXAT) .SH SYNOPSIS diff --git a/doc/man/nvmf_ext_die.2 b/doc/man/nvmf_ext_die.2 index 8d5abc5..11d6039 100644 --- a/doc/man/nvmf_ext_die.2 +++ b/doc/man/nvmf_ext_die.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_ext_die" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_ext_die" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_ext_die \- Extended Discovery Information Entry (DIE) .SH SYNOPSIS diff --git a/doc/man/nvmf_get_discovery_log.2 b/doc/man/nvmf_get_discovery_log.2 index c3af865..23ebbcc 100644 --- a/doc/man/nvmf_get_discovery_log.2 +++ b/doc/man/nvmf_get_discovery_log.2 @@ -1,4 +1,4 @@ -.TH "nvmf_get_discovery_log" 9 "nvmf_get_discovery_log" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_get_discovery_log" 9 "nvmf_get_discovery_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_get_discovery_log \- Return the discovery log page .SH SYNOPSIS diff --git a/doc/man/nvmf_get_discovery_wargs.2 b/doc/man/nvmf_get_discovery_wargs.2 index bdfe81f..89dcfaf 100644 --- a/doc/man/nvmf_get_discovery_wargs.2 +++ b/doc/man/nvmf_get_discovery_wargs.2 @@ -1,4 +1,4 @@ -.TH "nvmf_get_discovery_wargs" 9 "nvmf_get_discovery_wargs" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_get_discovery_wargs" 9 "nvmf_get_discovery_wargs" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_get_discovery_wargs \- Get the discovery log page with args .SH SYNOPSIS diff --git a/doc/man/nvmf_hostid_from_file.2 b/doc/man/nvmf_hostid_from_file.2 index bd1d11c..66c5919 100644 --- a/doc/man/nvmf_hostid_from_file.2 +++ b/doc/man/nvmf_hostid_from_file.2 @@ -1,4 +1,4 @@ -.TH "nvmf_hostid_from_file" 9 "nvmf_hostid_from_file" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_hostid_from_file" 9 "nvmf_hostid_from_file" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_hostid_from_file \- Reads the host identifier from the config default location .SH SYNOPSIS diff --git a/doc/man/nvmf_hostid_generate.2 b/doc/man/nvmf_hostid_generate.2 index c4a97da..50acf09 100644 --- a/doc/man/nvmf_hostid_generate.2 +++ b/doc/man/nvmf_hostid_generate.2 @@ -1,4 +1,4 @@ -.TH "nvmf_hostid_generate" 9 "nvmf_hostid_generate" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_hostid_generate" 9 "nvmf_hostid_generate" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_hostid_generate \- Generate a machine specific host identifier .SH SYNOPSIS diff --git a/doc/man/nvmf_hostnqn_from_file.2 b/doc/man/nvmf_hostnqn_from_file.2 index 5b5a98f..3f0b732 100644 --- a/doc/man/nvmf_hostnqn_from_file.2 +++ b/doc/man/nvmf_hostnqn_from_file.2 @@ -1,4 +1,4 @@ -.TH "nvmf_hostnqn_from_file" 9 "nvmf_hostnqn_from_file" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_hostnqn_from_file" 9 "nvmf_hostnqn_from_file" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_hostnqn_from_file \- Reads the host nvm qualified name from the config default location .SH SYNOPSIS diff --git a/doc/man/nvmf_hostnqn_generate.2 b/doc/man/nvmf_hostnqn_generate.2 index 1d66eba..ad58463 100644 --- a/doc/man/nvmf_hostnqn_generate.2 +++ b/doc/man/nvmf_hostnqn_generate.2 @@ -1,4 +1,4 @@ -.TH "nvmf_hostnqn_generate" 9 "nvmf_hostnqn_generate" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_hostnqn_generate" 9 "nvmf_hostnqn_generate" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_hostnqn_generate \- Generate a machine specific host nqn .SH SYNOPSIS diff --git a/doc/man/nvmf_hostnqn_generate_from_hostid.2 b/doc/man/nvmf_hostnqn_generate_from_hostid.2 index a70dc85..f308b90 100644 --- a/doc/man/nvmf_hostnqn_generate_from_hostid.2 +++ b/doc/man/nvmf_hostnqn_generate_from_hostid.2 @@ -1,4 +1,4 @@ -.TH "nvmf_hostnqn_generate_from_hostid" 9 "nvmf_hostnqn_generate_from_hostid" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_hostnqn_generate_from_hostid" 9 "nvmf_hostnqn_generate_from_hostid" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_hostnqn_generate_from_hostid \- Generate a host nqn from host identifier .SH SYNOPSIS diff --git a/doc/man/nvmf_log_discovery_lid_support.2 b/doc/man/nvmf_log_discovery_lid_support.2 index e14a437..39fb2a1 100644 --- a/doc/man/nvmf_log_discovery_lid_support.2 +++ b/doc/man/nvmf_log_discovery_lid_support.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_log_discovery_lid_support" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_log_discovery_lid_support" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_log_discovery_lid_support \- Discovery log specific support .SH SYNOPSIS diff --git a/doc/man/nvmf_log_discovery_lsp.2 b/doc/man/nvmf_log_discovery_lsp.2 index 6b153da..44f1273 100644 --- a/doc/man/nvmf_log_discovery_lsp.2 +++ b/doc/man/nvmf_log_discovery_lsp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_log_discovery_lsp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_log_discovery_lsp" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_log_discovery_lsp \- Discovery log specific field .SH SYNOPSIS diff --git a/doc/man/nvmf_prtype_str.2 b/doc/man/nvmf_prtype_str.2 index 3aaaf21..f646eae 100644 --- a/doc/man/nvmf_prtype_str.2 +++ b/doc/man/nvmf_prtype_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_prtype_str" 9 "nvmf_prtype_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_prtype_str" 9 "nvmf_prtype_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_prtype_str \- Decode RDMA Provider type field .SH SYNOPSIS diff --git a/doc/man/nvmf_qptype_str.2 b/doc/man/nvmf_qptype_str.2 index a7120a2..4ff62c3 100644 --- a/doc/man/nvmf_qptype_str.2 +++ b/doc/man/nvmf_qptype_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_qptype_str" 9 "nvmf_qptype_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_qptype_str" 9 "nvmf_qptype_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_qptype_str \- Decode RDMA QP Service type field .SH SYNOPSIS diff --git a/doc/man/nvmf_rdma_cms.2 b/doc/man/nvmf_rdma_cms.2 index 74fb5a9..a775bee 100644 --- a/doc/man/nvmf_rdma_cms.2 +++ b/doc/man/nvmf_rdma_cms.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_rdma_cms" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_rdma_cms" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_rdma_cms \- RDMA Connection Management Service Type codes for Discovery Log Page entry TSAS RDMA_CMS field .SH SYNOPSIS diff --git a/doc/man/nvmf_rdma_prtype.2 b/doc/man/nvmf_rdma_prtype.2 index af8340c..465c35d 100644 --- a/doc/man/nvmf_rdma_prtype.2 +++ b/doc/man/nvmf_rdma_prtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_rdma_prtype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_rdma_prtype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_rdma_prtype \- RDMA Provider Type codes for Discovery Log Page entry TSAS RDMA_PRTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_rdma_qptype.2 b/doc/man/nvmf_rdma_qptype.2 index c161e54..f932eaa 100644 --- a/doc/man/nvmf_rdma_qptype.2 +++ b/doc/man/nvmf_rdma_qptype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_rdma_qptype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_rdma_qptype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_rdma_qptype \- RDMA QP Service Type codes for Discovery Log Page entry TSAS RDMA_QPTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_register_ctrl.2 b/doc/man/nvmf_register_ctrl.2 index aeb4d4d..8ef59db 100644 --- a/doc/man/nvmf_register_ctrl.2 +++ b/doc/man/nvmf_register_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvmf_register_ctrl" 9 "nvmf_register_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_register_ctrl" 9 "nvmf_register_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_register_ctrl \- Perform registration task with a DC .SH SYNOPSIS diff --git a/doc/man/nvmf_sectype_str.2 b/doc/man/nvmf_sectype_str.2 index 4e8f7ae..fc40a26 100644 --- a/doc/man/nvmf_sectype_str.2 +++ b/doc/man/nvmf_sectype_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_sectype_str" 9 "nvmf_sectype_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_sectype_str" 9 "nvmf_sectype_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_sectype_str \- Decode SECTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_subtype_str.2 b/doc/man/nvmf_subtype_str.2 index 7168a5e..0070e27 100644 --- a/doc/man/nvmf_subtype_str.2 +++ b/doc/man/nvmf_subtype_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_subtype_str" 9 "nvmf_subtype_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_subtype_str" 9 "nvmf_subtype_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_subtype_str \- Decode SUBTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_tcp_sectype.2 b/doc/man/nvmf_tcp_sectype.2 index 6c0073f..a73af77 100644 --- a/doc/man/nvmf_tcp_sectype.2 +++ b/doc/man/nvmf_tcp_sectype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_tcp_sectype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_tcp_sectype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_tcp_sectype \- Transport Specific Address Subtype Definition for NVMe/TCP Transport .SH SYNOPSIS diff --git a/doc/man/nvmf_treq.2 b/doc/man/nvmf_treq.2 index 4fd3b5c..148d7b8 100644 --- a/doc/man/nvmf_treq.2 +++ b/doc/man/nvmf_treq.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_treq" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_treq" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_treq \- Transport Requirements codes for Discovery Log Page entry TREQ field .SH SYNOPSIS diff --git a/doc/man/nvmf_treq_str.2 b/doc/man/nvmf_treq_str.2 index 90cd815..fb5b68e 100644 --- a/doc/man/nvmf_treq_str.2 +++ b/doc/man/nvmf_treq_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_treq_str" 9 "nvmf_treq_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_treq_str" 9 "nvmf_treq_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_treq_str \- Decode TREQ field .SH SYNOPSIS diff --git a/doc/man/nvmf_trtype.2 b/doc/man/nvmf_trtype.2 index 3bf01e0..4e46f20 100644 --- a/doc/man/nvmf_trtype.2 +++ b/doc/man/nvmf_trtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_trtype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_trtype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_trtype \- Transport Type codes for Discovery Log Page entry TRTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_trtype_str.2 b/doc/man/nvmf_trtype_str.2 index dcc3521..f0cd83e 100644 --- a/doc/man/nvmf_trtype_str.2 +++ b/doc/man/nvmf_trtype_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_trtype_str" 9 "nvmf_trtype_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_trtype_str" 9 "nvmf_trtype_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_trtype_str \- Decode TRTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_update_config.2 b/doc/man/nvmf_update_config.2 index 2f8253e..ad50181 100644 --- a/doc/man/nvmf_update_config.2 +++ b/doc/man/nvmf_update_config.2 @@ -1,4 +1,4 @@ -.TH "nvmf_update_config" 9 "nvmf_update_config" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_update_config" 9 "nvmf_update_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_update_config \- Update fabrics configuration values .SH SYNOPSIS diff --git a/doc/rst/fabrics.rst b/doc/rst/fabrics.rst index 67ca051..6c8831b 100644 --- a/doc/rst/fabrics.rst +++ b/doc/rst/fabrics.rst @@ -7,7 +7,7 @@ Fabrics-specific definitions. -.. c:type:: struct nvme_fabrics_config +.. c:struct:: nvme_fabrics_config Defines all linux nvme fabrics initiator options @@ -104,7 +104,7 @@ Fabrics-specific definitions. -.. c:type:: struct nvme_fabrics_uri +.. c:struct:: nvme_fabrics_uri Parsed URI structure @@ -430,7 +430,7 @@ Consider using nvmf_get_discovery_wargs() instead. -.. c:type:: struct nvme_get_discovery_args +.. c:struct:: nvme_get_discovery_args Arguments for nvmf_get_discovery_wargs() diff --git a/doc/rst/ioctl.rst b/doc/rst/ioctl.rst index 50123d4..aa69ee7 100644 --- a/doc/rst/ioctl.rst +++ b/doc/rst/ioctl.rst @@ -7,7 +7,7 @@ Linux NVMe ioctl interface functions -.. c:type:: struct nvme_passthru_cmd +.. c:struct:: nvme_passthru_cmd nvme passthrough command structure @@ -96,7 +96,7 @@ Linux NVMe ioctl interface functions -.. c:type:: struct nvme_passthru_cmd64 +.. c:struct:: nvme_passthru_cmd64 64-bit nvme passthrough command structure @@ -189,7 +189,7 @@ Linux NVMe ioctl interface functions -.. c:type:: struct nvme_uring_cmd +.. c:struct:: nvme_uring_cmd nvme uring command structure @@ -276,7 +276,9 @@ Linux NVMe ioctl interface functions -.. c:function:: sizeof_args (type, member, align) +.. c:macro:: sizeof_args + +``sizeof_args (type, member, align)`` Helper function used to determine structure sizes @@ -1742,6 +1744,27 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_get_log_create_telemetry_host_mcda (int fd, enum nvme_telemetry_da mcda, struct nvme_telemetry_log *log) + + Create host telemetry log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``enum nvme_telemetry_da mcda`` + Maximum Created Data Area + +``struct nvme_telemetry_log *log`` + Userspace address of the log payload + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + .. c:function:: int nvme_get_log_create_telemetry_host (int fd, struct nvme_telemetry_log *log) Create host telemetry log @@ -2220,6 +2243,75 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise +.. c:function:: int nvme_get_log_rotational_media_info (int fd, __u16 endgid, __u32 len, struct nvme_rotational_media_info_log *log) + + Retrieve Rotational Media Information Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u16 endgid`` + Endurance Group Identifier + +``__u32 len`` + The allocated length of the log page + +``struct nvme_rotational_media_info_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_dispersed_ns_participating_nss (int fd, __u32 nsid, __u32 len, struct nvme_dispersed_ns_participating_nss_log *log) + + Retrieve Dispersed Namespace Participating NVM Subsystems Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u32 nsid`` + Namespace Identifier + +``__u32 len`` + The allocated length of the log page + +``struct nvme_dispersed_ns_participating_nss_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_mgmt_addr_list (int fd, __u32 len, struct nvme_mgmt_addr_list_log *log) + + Retrieve Management Address List Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u32 len`` + The allocated length of the log page + +``struct nvme_mgmt_addr_list_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_get_log_phy_rx_eom (int fd, __u8 lsp, __u16 controller, __u32 len, struct nvme_phy_rx_eom_log *log) Retrieve Physical Interface Receiver Eye Opening Measurement Log @@ -2248,6 +2340,84 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise +.. c:function:: int nvme_get_log_reachability_groups (int fd, bool rgo, bool rae, __u32 len, struct nvme_reachability_groups_log *log) + + Retrieve Reachability Groups Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool rgo`` + Return groups only + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_reachability_groups_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_reachability_associations (int fd, bool rao, bool rae, __u32 len, struct nvme_reachability_associations_log *log) + + Retrieve Reachability Associations Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool rao`` + Return associations only + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_reachability_associations_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_changed_alloc_ns_list (int fd, bool rae, __u32 len, struct nvme_ns_list *log) + + Retrieve Changed Allocated Namespace List Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_ns_list *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_get_log_discovery (int fd, bool rae, __u32 offset, __u32 len, void *log) Retrieve Discovery log page @@ -2280,6 +2450,81 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_get_log_host_discover (int fd, bool allhoste, bool rae, __u32 len, struct nvme_host_discover_log *log) + + Retrieve Host Discovery Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool allhoste`` + All host entries + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_host_discover_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_ave_discover (int fd, bool rae, __u32 len, struct nvme_ave_discover_log *log) + + Retrieve AVE Discovery Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_ave_discover_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_pull_model_ddc_req (int fd, bool rae, __u32 len, struct nvme_pull_model_ddc_req_log *log) + + Retrieve Pull Model DDC Request Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_pull_model_ddc_req_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_get_log_media_unit_stat (int fd, __u16 domid, struct nvme_media_unit_stat_log *mus) Retrieve Media Unit Status @@ -5288,3 +5533,117 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_lm_cdq (struct nvme_lm_cdq_args *args) + + Controller Data Queue - Controller Data Queue command + +**Parameters** + +``struct nvme_lm_cdq_args *args`` + :c:type:`struct nvme_lm_cdq_args ` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise.) + + +.. c:function:: int nvme_lm_track_send (struct nvme_lm_track_send_args *args) + + Track Send command + +**Parameters** + +``struct nvme_lm_track_send_args *args`` + :c:type:`struct nvme_lm_track_send_args ` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + +.. c:function:: int nvme_lm_migration_send (struct nvme_lm_migration_send_args *args) + + Migration Send command + +**Parameters** + +``struct nvme_lm_migration_send_args *args`` + :c:type:`struct nvme_lm_migration_send_args ` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + +.. c:function:: int nvme_lm_migration_recv (struct nvme_lm_migration_recv_args *args) + + Migration Receive command + +**Parameters** + +``struct nvme_lm_migration_recv_args *args`` + :c:type:`struct nvme_lm_migration_rev_args ` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + +.. c:function:: int nvme_lm_set_features_ctrl_data_queue (int fd, __u16 cdqid, __u32 hp, __u32 tpt, bool etpt, __u32 *result) + + Set Controller Datea Queue feature + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u16 cdqid`` + Controller Data Queue ID (CDQID) + +``__u32 hp`` + Head Pointer + +``__u32 tpt`` + Tail Pointer Trigger + +``bool etpt`` + Enable Tail Pointer Trigger + +``__u32 *result`` + The command completions result from CQE dword0 + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + +.. c:function:: int nvme_lm_get_features_ctrl_data_queue (int fd, __u16 cdqid, struct nvme_lm_ctrl_data_queue_fid_data *data, __u32 *result) + + Get Controller Data Queue feature + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u16 cdqid`` + Controller Data Queue ID (CDQID) + +``struct nvme_lm_ctrl_data_queue_fid_data *data`` + Get Controller Data Queue feature data + +``__u32 *result`` + The command completions result from CQE dword0 + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + diff --git a/doc/rst/linux.rst b/doc/rst/linux.rst index f975a23..6be0d88 100644 --- a/doc/rst/linux.rst +++ b/doc/rst/linux.rst @@ -32,27 +32,6 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. - - -.. c:type:: enum nvme_telemetry_da - - Telemetry Log Data Area - -**Constants** - -``NVME_TELEMETRY_DA_1`` - Data Area 1 - -``NVME_TELEMETRY_DA_2`` - Data Area 2 - -``NVME_TELEMETRY_DA_3`` - Data Area 3 - -``NVME_TELEMETRY_DA_4`` - Data Area 4 - - .. c:function:: int nvme_get_telemetry_max (int fd, enum nvme_telemetry_da *da, size_t *max_data_tx) Get telemetry limits @@ -352,7 +331,7 @@ errno set otherwise. -.. c:type:: enum nvme_hmac_alg +.. c:enum:: nvme_hmac_alg HMAC algorithm @@ -541,7 +520,7 @@ inaccessible. Key id of the new key or 0 with errno set otherwise. -.. c:type:: nvme_scan_tls_keys_cb_t +.. c:macro:: nvme_scan_tls_keys_cb_t **Typedef**: Callback for iterating TLS keys diff --git a/doc/rst/mi.rst b/doc/rst/mi.rst index 8dfaaf9..8b200e0 100644 --- a/doc/rst/mi.rst +++ b/doc/rst/mi.rst @@ -73,7 +73,9 @@ are: with a couple of accommodations for older spec types, particularly NVMe-MI 1.1, where possible. -.. c:function:: NVME_MI_MSGTYPE_NVME () +.. c:macro:: NVME_MI_MSGTYPE_NVME + +``NVME_MI_MSGTYPE_NVME ()`` MCTP message type for NVMe-MI messages. @@ -89,7 +91,7 @@ bit (0x80) set. -.. c:type:: enum nvme_mi_message_type +.. c:enum:: nvme_mi_message_type NVMe-MI message type field. @@ -115,7 +117,7 @@ byte). Not to be confused with the MCTP message type in byte 0. -.. c:type:: enum nvme_mi_ror +.. c:enum:: nvme_mi_ror Request or response field. @@ -130,7 +132,7 @@ byte). Not to be confused with the MCTP message type in byte 0. -.. c:type:: enum nvme_mi_resp_status +.. c:enum:: nvme_mi_resp_status values for the response status field @@ -196,7 +198,7 @@ byte). Not to be confused with the MCTP message type in byte 0. -.. c:type:: struct nvme_mi_msg_hdr +.. c:struct:: nvme_mi_msg_hdr General MI message header. @@ -234,7 +236,7 @@ section 3.1. This is used for all message types, MI and Admin. -.. c:type:: struct nvme_mi_msg_resp +.. c:struct:: nvme_mi_msg_resp Generic response type. @@ -268,7 +270,7 @@ will define parts of the reserved data, and may add further fields. -.. c:type:: enum nvme_mi_mi_opcode +.. c:enum:: nvme_mi_mi_opcode Operation code for supported NVMe-MI commands. @@ -289,7 +291,7 @@ will define parts of the reserved data, and may add further fields. -.. c:type:: struct nvme_mi_mi_req_hdr +.. c:struct:: nvme_mi_mi_req_hdr MI request message header. @@ -329,7 +331,7 @@ Wire format for MI request message headers, defined in section 5 of NVMe-MI. -.. c:type:: struct nvme_mi_mi_resp_hdr +.. c:struct:: nvme_mi_mi_resp_hdr MI response message header. @@ -362,7 +364,7 @@ Wire format for MI response message header, defined in section 5 of NVMe-MI. -.. c:type:: enum nvme_mi_dtyp +.. c:enum:: nvme_mi_dtyp Data Structure Type field. @@ -394,7 +396,7 @@ indicate the particular structure to query from the endpoint. -.. c:type:: enum nvme_mi_config_id +.. c:enum:: nvme_mi_config_id NVMe-MI Configuration identifier. @@ -421,7 +423,7 @@ See :c:type:`nvme_mi_mi_config_get`() and :c:type:`nvme_mi_config_set`(). -.. c:type:: enum nvme_mi_config_smbus_freq +.. c:enum:: nvme_mi_config_smbus_freq SMBus/I2C frequency values @@ -444,7 +446,7 @@ Values used in the SMBus Frequency device configuration. See -.. c:type:: struct nvme_mi_admin_req_hdr +.. c:struct:: nvme_mi_admin_req_hdr Admin command request header. @@ -534,7 +536,7 @@ NVMe-MI. -.. c:type:: struct nvme_mi_admin_resp_hdr +.. c:struct:: nvme_mi_admin_resp_hdr Admin command response header. @@ -578,7 +580,7 @@ queue data, plus optional response data. -.. c:type:: enum nvme_mi_control_opcode +.. c:enum:: nvme_mi_control_opcode Operation code for Control Primitives. @@ -602,7 +604,7 @@ queue data, plus optional response data. -.. c:type:: struct nvme_mi_control_req +.. c:struct:: nvme_mi_control_req The Control Primitive request. @@ -711,7 +713,7 @@ endpoint to determine model-specific details. -.. c:type:: typedef nvme_mi_ep_t +.. c:type:: nvme_mi_ep_t MI Endpoint object. @@ -770,7 +772,9 @@ next endpoint MI endpoint object after **e** under this root, or NULL See: :c:type:`nvme_mi_first_endpoint`, :c:type:`nvme_mi_for_each_endpoint` -.. c:function:: nvme_mi_for_each_endpoint (m, e) +.. c:macro:: nvme_mi_for_each_endpoint + +``nvme_mi_for_each_endpoint (m, e)`` Iterator for NVMe-MI endpoints. @@ -783,7 +787,9 @@ See: :c:type:`nvme_mi_first_endpoint`, :c:type:`nvme_mi_for_each_endpoint` :c:type:`nvme_mi_ep_t` object, set on each iteration -.. c:function:: nvme_mi_for_each_endpoint_safe (m, e, _e) +.. c:macro:: nvme_mi_for_each_endpoint_safe + +``nvme_mi_for_each_endpoint_safe (m, e, _e)`` Iterator for NVMe-MI endpoints, allowing deletion during traversal @@ -853,7 +859,7 @@ Returns the current timeout value, in milliseconds, for this endpoint. -.. c:type:: typedef nvme_mi_ctrl_t +.. c:type:: nvme_mi_ctrl_t NVMe-MI Controller object. @@ -904,7 +910,9 @@ next MI controller object after **c** under this endpoint, or NULL See: :c:type:`nvme_mi_first_ctrl`, :c:type:`nvme_mi_for_each_ctrl` -.. c:function:: nvme_mi_for_each_ctrl (ep, c) +.. c:macro:: nvme_mi_for_each_ctrl + +``nvme_mi_for_each_ctrl (ep, c)`` Iterator for NVMe-MI controllers. @@ -925,7 +933,9 @@ call :c:type:`nvme_mi_scan_ep`() to scan for the controllers first. See: :c:type:`nvme_mi_scan_ep`() -.. c:function:: nvme_mi_for_each_ctrl_safe (ep, c, _c) +.. c:macro:: nvme_mi_for_each_ctrl_safe + +``nvme_mi_for_each_ctrl_safe (ep, c, _c)`` Iterator for NVMe-MI controllers, allowing deletion during traversal @@ -1118,6 +1128,48 @@ a newly-allocated string containing the endpoint description, or NULL on failure. +.. c:function:: int nvme_mi_mi_xfer (nvme_mi_ep_t ep, struct nvme_mi_mi_req_hdr *mi_req, size_t req_data_size, struct nvme_mi_mi_resp_hdr *mi_resp, size_t *resp_data_size) + + Raw mi transfer interface. + +**Parameters** + +``nvme_mi_ep_t ep`` + endpoint to send the MI command to + +``struct nvme_mi_mi_req_hdr *mi_req`` + request data + +``size_t req_data_size`` + size of request data payload + +``struct nvme_mi_mi_resp_hdr *mi_resp`` + buffer for response data + +``size_t *resp_data_size`` + size of response data buffer, updated to received size + +**Description** + +Performs an arbitrary NVMe MI command, using the provided request data, +in **mi_req**. The size of the request data *payload* is specified in +**req_data_size** - this does not include the standard header length (so a +header-only request would have a size of 0). Note that the Management +Request Doublewords are considered part of the header data. + +On success, response data is stored in **mi_resp**, which has an optional +appended payload buffer of **resp_data_size** bytes. The actual payload +size transferred will be stored in **resp_data_size**. This size does not +include the MI response header, so 0 represents no payload. + +See: :c:type:`struct nvme_mi_mi_req_hdr ` and :c:type:`struct nvme_mi_mi_resp_hdr `. + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise.. + + .. c:function:: int nvme_mi_mi_read_mi_data_subsys (nvme_mi_ep_t ep, struct nvme_mi_read_nvm_ss_info *s) Perform a Read MI Data Structure command, retrieving subsystem data. @@ -2132,6 +2184,43 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_mi_admin_get_endgid_log (nvme_mi_ctrl_t ctrl, bool rae, enum nvme_cmd_get_log_lid lid, __u16 endgid, __u32 len, void *log) + + Helper for Get Endurance Group ID Log Page functions + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rae`` + Retain Asynchronous Events + +``enum nvme_cmd_get_log_lid lid`` + Log identifier + +``__u16 endgid`` + Endurance Group ID + +``__u32 len`` + length of log buffer + +``void *log`` + pointer for resulting log data + +**Description** + +Performs a Get Log Page Admin command for a specific log ID **lid** and +endurance group ID **endgid**. Log data is expected to be **len** bytes, and is stored +in **log** on success. The **rae** flag is passed as-is to the Get Log Page +command, and is specific to the Log Page requested. + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + .. c:function:: int nvme_mi_admin_get_log_simple (nvme_mi_ctrl_t ctrl, enum nvme_cmd_get_log_lid lid, __u32 len, void *log) Helper for Get Log Page functions with no NSID or RAE requirements @@ -2349,6 +2438,27 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_mi_admin_get_log_create_telemetry_host_mcda (nvme_mi_ctrl_t ctrl, enum nvme_telemetry_da mcda, struct nvme_telemetry_log *log) + + Create host telemetry log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``enum nvme_telemetry_da mcda`` + Maximum Created Data Area + +``struct nvme_telemetry_log *log`` + Userspace address of the log payload + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + .. c:function:: int nvme_mi_admin_get_log_create_telemetry_host (nvme_mi_ctrl_t ctrl, struct nvme_telemetry_log *log) Create host telemetry log @@ -2736,6 +2846,75 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_mi_admin_get_log_rotational_media_info (nvme_mi_ctrl_t ctrl, __u16 endgid, __u32 len, struct nvme_rotational_media_info_log *log) + + Retrieve Rotational Media Information Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``__u16 endgid`` + Endurance Group Identifier + +``__u32 len`` + The allocated length of the log page + +``struct nvme_rotational_media_info_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_dispersed_ns_participating_nss (nvme_mi_ctrl_t ctrl, __u32 nsid, __u32 len, struct nvme_dispersed_ns_participating_nss_log *log) + + Retrieve Dispersed Namespace Participating NVM Subsystems Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``__u32 nsid`` + Namespace Identifier + +``__u32 len`` + The allocated length of the log page + +``struct nvme_dispersed_ns_participating_nss_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_mgmt_addr_list (nvme_mi_ctrl_t ctrl, __u32 len, struct nvme_mgmt_addr_list_log *log) + + Retrieve Management Address List Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``__u32 len`` + The allocated length of the log page + +``struct nvme_mgmt_addr_list_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_mi_admin_get_log_phy_rx_eom (nvme_mi_ctrl_t ctrl, __u8 lsp, __u16 controller, __u32 len, struct nvme_phy_rx_eom_log *log) Retrieve Physical Interface Receiver Eye Opening Measurement Log @@ -2764,6 +2943,84 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise +.. c:function:: int nvme_mi_admin_get_log_reachability_groups (nvme_mi_ctrl_t ctrl, bool rgo, bool rae, __u32 len, struct nvme_reachability_groups_log *log) + + Retrieve Reachability Groups Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rgo`` + Return groups only + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_reachability_groups_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_reachability_associations (nvme_mi_ctrl_t ctrl, bool rao, bool rae, __u32 len, struct nvme_reachability_associations_log *log) + + Retrieve Reachability Associations Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rao`` + Return associations only + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_reachability_associations_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_changed_alloc_ns_list (nvme_mi_ctrl_t ctrl, bool rae, __u32 len, struct nvme_ns_list *log) + + Retrieve Changed Allocated Namespace List Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_ns_list *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_mi_admin_get_log_discovery (nvme_mi_ctrl_t ctrl, bool rae, __u32 offset, __u32 len, void *log) Retrieve Discovery log page @@ -2796,6 +3053,81 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_mi_admin_get_log_host_discover (nvme_mi_ctrl_t ctrl, bool allhoste, bool rae, __u32 len, struct nvme_host_discover_log *log) + + Retrieve Host Discovery Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool allhoste`` + All host entries + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_host_discover_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_ave_discover (nvme_mi_ctrl_t ctrl, bool rae, __u32 len, struct nvme_ave_discover_log *log) + + Retrieve AVE Discovery Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_ave_discover_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_pull_model_ddc_req (nvme_mi_ctrl_t ctrl, bool rae, __u32 len, struct nvme_pull_model_ddc_req_log *log) + + Retrieve Pull Model DDC Request Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_pull_model_ddc_req_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_mi_admin_get_log_media_unit_stat (nvme_mi_ctrl_t ctrl, __u16 domid, struct nvme_media_unit_stat_log *mus) Retrieve Media Unit Status diff --git a/doc/rst/nbft.rst b/doc/rst/nbft.rst index 984049b..2a7b72f 100644 --- a/doc/rst/nbft.rst +++ b/doc/rst/nbft.rst @@ -9,7 +9,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_desc_type +.. c:enum:: nbft_desc_type NBFT Elements - Descriptor Types (Figure 5) @@ -56,7 +56,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_trtype +.. c:enum:: nbft_trtype NBFT Interface Transport Types (Figure 7) @@ -68,7 +68,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_heap_obj +.. c:struct:: nbft_heap_obj NBFT Header Driver Signature @@ -94,7 +94,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_header +.. c:struct:: nbft_header NBFT Table - Header (Figure 8) @@ -193,7 +193,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_control +.. c:struct:: nbft_control NBFT Table - Control Descriptor (Figure 8) @@ -368,7 +368,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_control_flags +.. c:enum:: nbft_control_flags Control Descriptor Flags @@ -380,7 +380,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_host +.. c:struct:: nbft_host Host Descriptor (Figure 9) @@ -422,7 +422,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_host_flags +.. c:enum:: nbft_host_flags Host Flags @@ -479,7 +479,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_hfi +.. c:struct:: nbft_hfi Host Fabric Interface (HFI) Descriptor (Figure 11) @@ -529,7 +529,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_hfi_flags +.. c:enum:: nbft_hfi_flags HFI Descriptor Flags @@ -542,7 +542,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_hfi_info_tcp +.. c:struct:: nbft_hfi_info_tcp HFI Transport Info Descriptor - NVMe/TCP (Figure 13) @@ -685,7 +685,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_hfi_info_tcp_flags +.. c:enum:: nbft_hfi_info_tcp_flags HFI Transport Flags @@ -714,7 +714,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_ssns +.. c:struct:: nbft_ssns Subsystem Namespace (SSNS) Descriptor (Figure 15) @@ -879,7 +879,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_ssns_flags +.. c:enum:: nbft_ssns_flags Subsystem and Namespace Specific Flags Field (Figure 16) @@ -970,7 +970,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_ssns_trflags +.. c:enum:: nbft_ssns_trflags SSNS Transport Specific Flags Field (Figure 17) @@ -1008,7 +1008,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_ssns_ext_info +.. c:struct:: nbft_ssns_ext_info Subsystem and Namespace Extended Information Descriptor (Figure 19) @@ -1069,7 +1069,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_ssns_ext_info_flags +.. c:enum:: nbft_ssns_ext_info_flags Subsystem and Namespace Extended Information Descriptor Flags @@ -1091,7 +1091,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_security +.. c:struct:: nbft_security Security Profile Descriptor (Figure 21) @@ -1195,7 +1195,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_security_flags +.. c:enum:: nbft_security_flags Security Profile Descriptor Flags (Figure 22) @@ -1317,7 +1317,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_security_secret_type +.. c:enum:: nbft_security_secret_type Security Profile Descriptor Secret Type @@ -1333,7 +1333,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_discovery +.. c:struct:: nbft_discovery Discovery Descriptor (Figure 24) @@ -1410,7 +1410,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_discovery_flags +.. c:enum:: nbft_discovery_flags Discovery Descriptor Flags @@ -1424,7 +1424,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_info_primary_admin_host_flag +.. c:enum:: nbft_info_primary_admin_host_flag Primary Administrative Host Descriptor Flags @@ -1454,7 +1454,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_host +.. c:struct:: nbft_info_host Host Descriptor @@ -1496,7 +1496,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_hfi_info_tcp +.. c:struct:: nbft_info_hfi_info_tcp HFI Transport Info Descriptor - NVMe/TCP @@ -1585,7 +1585,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_hfi +.. c:struct:: nbft_info_hfi Host Fabric Interface (HFI) Descriptor @@ -1615,7 +1615,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_discovery +.. c:struct:: nbft_info_discovery Discovery Descriptor @@ -1655,7 +1655,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_security +.. c:struct:: nbft_info_security Security Profile Descriptor @@ -1677,7 +1677,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_info_nid_type +.. c:enum:: nbft_info_nid_type Namespace Identifier Type (NIDT) @@ -1698,7 +1698,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_subsystem_ns +.. c:struct:: nbft_info_subsystem_ns Subsystem Namespace (SSNS) info @@ -1808,7 +1808,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info +.. c:struct:: nbft_info The parsed NBFT table data. diff --git a/doc/rst/tree.rst b/doc/rst/tree.rst index 4cbc863..fd3b684 100644 --- a/doc/rst/tree.rst +++ b/doc/rst/tree.rst @@ -694,7 +694,9 @@ First :c:type:`nvme_ns_t` object of an **s** iterator Next :c:type:`nvme_ns_t` object of an **s** iterator -.. c:function:: nvme_for_each_host_safe (r, h, _h) +.. c:macro:: nvme_for_each_host_safe + +``nvme_for_each_host_safe (r, h, _h)`` Traverse host list @@ -710,7 +712,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator Temporary :c:type:`nvme_host_t` object -.. c:function:: nvme_for_each_host (r, h) +.. c:macro:: nvme_for_each_host + +``nvme_for_each_host (r, h)`` Traverse host list @@ -723,7 +727,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator :c:type:`nvme_host_t` object -.. c:function:: nvme_for_each_subsystem_safe (h, s, _s) +.. c:macro:: nvme_for_each_subsystem_safe + +``nvme_for_each_subsystem_safe (h, s, _s)`` Traverse subsystems @@ -739,7 +745,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator Temporary :c:type:`nvme_subsystem_t` object -.. c:function:: nvme_for_each_subsystem (h, s) +.. c:macro:: nvme_for_each_subsystem + +``nvme_for_each_subsystem (h, s)`` Traverse subsystems @@ -752,7 +760,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator :c:type:`nvme_subsystem_t` object -.. c:function:: nvme_subsystem_for_each_ctrl_safe (s, c, _c) +.. c:macro:: nvme_subsystem_for_each_ctrl_safe + +``nvme_subsystem_for_each_ctrl_safe (s, c, _c)`` Traverse controllers @@ -768,7 +778,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator A :c:type:`nvme_ctrl_t_node` to use as temporary storage -.. c:function:: nvme_subsystem_for_each_ctrl (s, c) +.. c:macro:: nvme_subsystem_for_each_ctrl + +``nvme_subsystem_for_each_ctrl (s, c)`` Traverse controllers @@ -781,7 +793,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator Controller instance -.. c:function:: nvme_ctrl_for_each_ns_safe (c, n, _n) +.. c:macro:: nvme_ctrl_for_each_ns_safe + +``nvme_ctrl_for_each_ns_safe (c, n, _n)`` Traverse namespaces @@ -797,7 +811,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator A :c:type:`nvme_ns_t_node` to use as temporary storage -.. c:function:: nvme_ctrl_for_each_ns (c, n) +.. c:macro:: nvme_ctrl_for_each_ns + +``nvme_ctrl_for_each_ns (c, n)`` Traverse namespaces @@ -810,7 +826,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator :c:type:`nvme_ns_t` object -.. c:function:: nvme_ctrl_for_each_path_safe (c, p, _p) +.. c:macro:: nvme_ctrl_for_each_path_safe + +``nvme_ctrl_for_each_path_safe (c, p, _p)`` Traverse paths @@ -826,7 +844,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator A :c:type:`nvme_path_t_node` to use as temporary storage -.. c:function:: nvme_ctrl_for_each_path (c, p) +.. c:macro:: nvme_ctrl_for_each_path + +``nvme_ctrl_for_each_path (c, p)`` Traverse paths @@ -839,7 +859,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator :c:type:`nvme_path_t` object -.. c:function:: nvme_subsystem_for_each_ns_safe (s, n, _n) +.. c:macro:: nvme_subsystem_for_each_ns_safe + +``nvme_subsystem_for_each_ns_safe (s, n, _n)`` Traverse namespaces @@ -855,7 +877,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator A :c:type:`nvme_ns_t_node` to use as temporary storage -.. c:function:: nvme_subsystem_for_each_ns (s, n) +.. c:macro:: nvme_subsystem_for_each_ns + +``nvme_subsystem_for_each_ns (s, n)`` Traverse namespaces @@ -868,7 +892,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator :c:type:`nvme_ns_t` object -.. c:function:: nvme_namespace_for_each_path_safe (n, p, _p) +.. c:macro:: nvme_namespace_for_each_path_safe + +``nvme_namespace_for_each_path_safe (n, p, _p)`` Traverse paths @@ -884,7 +910,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator A :c:type:`nvme_path_t_node` to use as temporary storage -.. c:function:: nvme_namespace_for_each_path (n, p) +.. c:macro:: nvme_namespace_for_each_path + +``nvme_namespace_for_each_path (n, p)`` Traverse paths diff --git a/doc/rst/types.rst b/doc/rst/types.rst index dd60493..f2d1957 100644 --- a/doc/rst/types.rst +++ b/doc/rst/types.rst @@ -5,7 +5,9 @@ NVMe standard definitions -.. c:function:: NVME_GET (value, name) +.. c:macro:: NVME_GET + +``NVME_GET (value, name)`` extract field from complex value @@ -28,7 +30,9 @@ sub-field. The 'name' field from 'value' -.. c:function:: NVME_SET (value, name) +.. c:macro:: NVME_SET + +``NVME_SET (value, name)`` set field into complex value @@ -45,7 +49,9 @@ The 'name' field from 'value' The 'name' field from 'value' -.. c:function:: NVME_CHECK (value, name, check) +.. c:macro:: NVME_CHECK + +``NVME_CHECK (value, name, check)`` check value to compare field value @@ -65,7 +71,9 @@ The 'name' field from 'value' The result of compare the value and the sub-field value -.. c:function:: NVME_VAL (name) +.. c:macro:: NVME_VAL + +``NVME_VAL (name)`` get mask value shifted @@ -81,7 +89,7 @@ The mask value shifted -.. c:type:: enum nvme_constants +.. c:enum:: nvme_constants A place to stash various constant nvme values @@ -196,7 +204,7 @@ The mask value shifted -.. c:type:: enum nvme_csi +.. c:enum:: nvme_csi Defined command set indicators @@ -211,10 +219,16 @@ The mask value shifted ``NVME_CSI_ZNS`` Zoned Namespace Command Set +``NVME_CSI_SLM`` + Subsystem Local Memory Command Set + +``NVME_CSI_CP`` + Computational Programs Command Set -.. c:type:: enum nvme_register_offsets + +.. c:enum:: nvme_register_offsets controller registers for all transports. This is the layout of BAR0/1 for PCIe, and properties for fabrics. @@ -328,7 +342,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_cap +.. c:enum:: nvme_cap This field indicates the controller capabilities register @@ -460,7 +474,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_vs +.. c:enum:: nvme_vs This field indicates the version @@ -487,7 +501,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_cc +.. c:enum:: nvme_cc This field indicates the controller configuration @@ -577,7 +591,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_csts +.. c:enum:: nvme_csts This field indicates the controller status register @@ -634,7 +648,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_aqa +.. c:enum:: nvme_aqa This field indicates the admin queue attributes @@ -655,7 +669,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_asq +.. c:enum:: nvme_asq This field indicates the admin submission queue base address @@ -667,7 +681,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_acq +.. c:enum:: nvme_acq This field indicates the admin completion queue base address @@ -679,7 +693,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_cmbloc +.. c:enum:: nvme_cmbloc This field indicates the controller memory buffer location @@ -736,7 +750,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_cmbsz +.. c:enum:: nvme_cmbsz This field indicates the controller memory buffer size @@ -822,7 +836,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_bpinfo +.. c:enum:: nvme_bpinfo This field indicates the boot partition information @@ -861,7 +875,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_bprsel +.. c:enum:: nvme_bprsel This field indicates the boot partition read select @@ -888,7 +902,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_bpmbl +.. c:enum:: nvme_bpmbl This field indicates the boot partition memory buffer location @@ -900,7 +914,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_cmbmsc +.. c:enum:: nvme_cmbmsc This field indicates the controller memory buffer memory space control @@ -924,7 +938,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_cmbsts +.. c:enum:: nvme_cmbsts This field indicates the controller memory buffer status @@ -939,7 +953,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_unit +.. c:enum:: nvme_unit Defined buffer size and write throughput granularity units @@ -960,7 +974,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_cmbebs +.. c:enum:: nvme_cmbebs This field indicates the controller memory buffer elasticity buffer size @@ -999,7 +1013,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_cmbswtp +.. c:enum:: nvme_cmbswtp This field indicates the controller memory buffer sustained write throughput @@ -1032,7 +1046,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_crto +.. c:enum:: nvme_crto This field indicates the controller ready timeouts @@ -1053,7 +1067,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_pmrcap +.. c:enum:: nvme_pmrcap This field indicates the persistent memory region capabilities @@ -1116,7 +1130,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_pmrctl +.. c:enum:: nvme_pmrctl This field indicates the persistent memory region control @@ -1131,7 +1145,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_pmrsts +.. c:enum:: nvme_pmrsts This field indicates the persistent memory region status @@ -1164,7 +1178,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_pmrebs +.. c:enum:: nvme_pmrebs This field indicates the persistent memory region elasticity buffer size @@ -1217,7 +1231,7 @@ size of controller persistent memory buffer in bytes -.. c:type:: enum nvme_pmrswtp +.. c:enum:: nvme_pmrswtp This field indicates the persistent memory region sustained write throughput @@ -1264,7 +1278,7 @@ throughput of controller persistent memory buffer in bytes/second -.. c:type:: enum nvme_pmrmsc +.. c:enum:: nvme_pmrmsc This field indicates the persistent memory region memory space control @@ -1282,7 +1296,7 @@ throughput of controller persistent memory buffer in bytes/second -.. c:type:: enum nvme_flbas +.. c:enum:: nvme_flbas This field indicates the formatted LBA size @@ -1309,7 +1323,7 @@ throughput of controller persistent memory buffer in bytes/second -.. c:type:: enum nvme_psd_flags +.. c:enum:: nvme_psd_flags Possible flag values in nvme power state descriptor @@ -1332,7 +1346,7 @@ throughput of controller persistent memory buffer in bytes/second -.. c:type:: enum nvme_psd_ps +.. c:enum:: nvme_psd_ps Known values for :c:type:`struct nvme_psd ` ``ips`` and ``aps``. Use with nvme_psd_power_scale() to extract the power scale field to match this enum. @@ -1364,7 +1378,7 @@ power scale value -.. c:type:: enum nvme_psd_workload +.. c:enum:: nvme_psd_workload Specifies a workload hint in the Power Management Feature (see :c:type:`struct nvme_psd `.apw) to inform the NVM subsystem or indicate the conditions for the active power level. @@ -1393,7 +1407,7 @@ power scale value -.. c:type:: struct nvme_id_psd +.. c:struct:: nvme_id_psd Power Management data structure @@ -1416,7 +1430,12 @@ power scale value __u8 rsvd19; __le16 actp; __u8 apws; - __u8 rsvd23[9]; + __u8 epfrt; + __u8 fqvt; + __u8 epfvt; + __u8 epfr_fqv_ts; + __u8 epfvts; + __u8 rsvd28[4]; }; **Members** @@ -1487,14 +1506,30 @@ power scale value used to calculate maximum power for this power state. See :c:type:`enum nvme_psd_workload ` for decoding this field. -``rsvd23`` +``epfrt`` + Emergency power fail recovery time + +``fqvt`` + Forced quiescence vault time + +``epfvt`` + Emergency power fail vault time + +``epfr_fqv_ts`` + Bits 7-4: Forced quiescence vault time scale + Bits 3-0: Emergency power fail recovery time scale + +``epfvts`` + Bits 3-0: Emergency power fail vault time scale + +``rsvd28`` Reserved -.. c:type:: struct nvme_id_ctrl +.. c:struct:: nvme_id_ctrl Identify Controller data structure @@ -1519,13 +1554,18 @@ power scale value __le32 oaes; __le32 ctratt; __le16 rrls; - __u8 rsvd102[9]; + __u8 bpcap; + __u8 rsvd103; + __le32 nssl; + __u8 rsvd108[2]; + __u8 plsi; __u8 cntrltype; __u8 fguid[16]; __le16 crdt1; __le16 crdt2; __le16 crdt3; - __u8 rsvd134[119]; + __u8 crcap; + __u8 rsvd135[118]; __u8 nvmsr; __u8 vwci; __u8 mec; @@ -1564,10 +1604,15 @@ power scale value __le32 nanagrpid; __le32 pels; __le16 domainid; - __u8 rsvd358[10]; + __u8 kpioc; + __u8 rsvd359; + __le16 mptfawr; + __u8 rsvd362[6]; __u8 megcap[16]; __u8 tmpthha; - __u8 rsvd385[127]; + __u8 rsvd385; + __le16 cqt; + __u8 rsvd388[124]; __u8 sqes; __u8 cqes; __le16 maxcmd; @@ -1587,18 +1632,19 @@ power scale value __u8 maxdna[16]; __le32 maxcna; __le32 oaqd; - __u8 rsvd568[2]; - __u16 cmmrtd; - __u16 nmmrtd; + __u8 rhiri; + __u8 hirt; + __le16 cmmrtd; + __le16 nmmrtd; __u8 minmrtg; __u8 maxmrtg; __u8 trattr; __u8 rsvd577; - __u16 mcudmq; - __u16 mnsudmq; - __u16 mcmr; - __u16 nmcmr; - __u16 mcdqpc; + __le16 mcudmq; + __le16 mnsudmq; + __le16 mcmr; + __le16 nmcmr; + __le16 mcdqpc; __u8 rsvd588[180]; char subnqn[NVME_NQN_LENGTH]; __u8 rsvd1024[768]; @@ -1677,9 +1723,23 @@ power scale value Read Recovery Level is supported. If a bit is cleared, then the corresponding Read Recovery Level is not supported. -``rsvd102`` +``bpcap`` + Boot Partition Capabilities, see :c:type:`enum nvme_id_ctrl_bpcap `. + +``rsvd103`` Reserved +``nssl`` + NVM Subsystem Shutdown Latency (NSSL). This field indicates the + typical latency in microseconds for an NVM Subsystem Shutdown to + complete. + +``rsvd108`` + Reserved + +``plsi`` + Power Loss Signaling Information (PLSI), see :c:type:`enum nvme_id_ctrl_plsi ` + ``cntrltype`` Controller Type, see :c:type:`enum nvme_id_ctrl_cntrltype ` @@ -1699,7 +1759,11 @@ power scale value Controller Retry Delay time in 100 millisecond units if CQE CRD field is 3 -``rsvd134`` +``crcap`` + Controller Reachability Capabilities (CRCAP), see + :c:type:`enum nvme_id_ctrl_crcap ` + +``rsvd135`` Reserved ``nvmsr`` @@ -1879,7 +1943,20 @@ power scale value Domain Identifier indicates the identifier of the domain that contains this controller. -``rsvd358`` +``kpioc`` + Key Per I/O Capabilities (KPIOC), see :c:type:`enum nvme_id_ctrl_kpioc ` + +``rsvd359`` + Reserved + +``mptfawr`` + Maximum Processing Time for Firmware Activation Without Reset + (MPTFAWR). This field shall indicate the estimated maximum time + in 100 ms units required by the controller to process a Firmware + Commit command that specifies a value of 011b in the Commit + Action field + +``rsvd362`` Reserved ``megcap`` @@ -1892,6 +1969,15 @@ power scale value ``rsvd385`` Reserved +``cqt`` + Command Quiesce Time (CQT). his field indicates the expected + worst-case time in 1 millisecond units for the controller to + quiesce all outstanding commands after a Keep Alive Timeout or + other communication loss. + +``rsvd388`` + Reserved + ``sqes`` Submission Queue Entry Size, see :c:type:`enum nvme_id_ctrl_sqes `. @@ -1976,8 +2062,20 @@ power scale value total number of outstanding I/O commands across all I/O queues on the controller for optimal operation. -``rsvd568`` - Reserved +``rhiri`` + Recommended Host-Initiated Refresh Interval (RHIRI). If the + Host-Initiated Refresh capability is supported, then this field + indicates the recommended time interval in days from last power + down to the time at which the host should initiate the + Host-Initiated Refresh operation. If this field is cleared to + 0h, then this field is not reported. + +``hirt`` + Host-Initiated Refresh Time (HIRT). If the Host-Initiated + Refresh capability is supported, then this field indicates the + nominal amount of time in minutes that the controller takes to + complete the Host-Initiated Refresh operation. If this field is + cleared to 0h, then this field is not reported. ``cmmrtd`` Controller Maximum Memory Range Tracking Descriptors indicates @@ -2002,8 +2100,8 @@ power scale value structure. ``trattr`` - Tracking Attributes indicates supported attributes for the - Track Send command and Track Receive command. + Tracking Attributes indicates supported attributes for the Track Send + command and Track Receive command. see :c:type:`enum nvme_id_ctrl_trattr ` ``rsvd577`` Reserved @@ -2084,7 +2182,7 @@ power scale value -.. c:type:: enum nvme_cmic +.. c:enum:: nvme_cmic This field indicates the controller multi-path I/O and NS sharing capabilities @@ -2123,7 +2221,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_cmic +.. c:enum:: nvme_id_ctrl_cmic Controller Multipath IO and Namespace Sharing Capabilities of the controller and NVM subsystem. @@ -2157,7 +2255,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_oaes +.. c:enum:: nvme_id_ctrl_oaes Optional Asynchronous Events Supported @@ -2283,7 +2381,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_ctratt +.. c:enum:: nvme_id_ctrl_ctratt Controller attributes @@ -2354,7 +2452,98 @@ power scale value -.. c:type:: enum nvme_id_ctrl_cntrltype +.. c:enum:: nvme_id_ctrl_bpcap + + Boot Partition Capabilities + +**Constants** + +``NVME_CTRL_BACAP_RPMBBPWPS_SHIFT`` + Shift amount to get the RPMB Boot Partition Write + Protection Support from the :c:type:`struct + nvme_id_ctrl `.bpcap field. + +``NVME_CTRL_BACAP_SFBPWPS_SHIFT`` + Shift amount to get the Set Features Boot Partition + Write Protection Support from the :c:type:`struct + nvme_id_ctrl `.bpcap field. + +``NVME_CTRL_BACAP_RPMBBPWPS_MASK`` + Mask to get the RPMB Boot Partition Write + Protection Support from the :c:type:`struct + nvme_id_ctrl `.bpcap field. + +``NVME_CTRL_BACAP_SFBPWPS_MASK`` + Mask to get the Set Features Boot Partition Write + Protection Support from the :c:type:`struct + nvme_id_ctrl `.bpcap field. + +``NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED`` + Support for RPMB Boot Partition Write Protection + is not specified. + +``NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED`` + RPMB Boot Partition Write Protection is not + supported by this controller. + +``NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED`` + RPMB Boot Partition Write Protection is supported + by this controller. + + + + +.. c:enum:: nvme_id_ctrl_plsi + + Power Loss Signaling Information + +**Constants** + +``NVME_CTRL_PLSI_PLSEPF_SHIFT`` + Shift amount to get the PLS Emergency Power Fail from the + :c:type:`struct nvme_id_ctrl `.plsi field. + +``NVME_CTRL_PLSI_PLSFQ_SHIFT`` + Shift amount to get the PLS Forced Quiescence from the + :c:type:`struct nvme_id_ctrl `.plsi field. + +``NVME_CTRL_PLSI_PLSEPF_MASK`` + Mask to get the PLS Emergency Power Fail from the + :c:type:`struct nvme_id_ctrl `.plsi field. + +``NVME_CTRL_PLSI_PLSFQ_MASK`` + Mask to get the PLS Forced Quiescence from the + :c:type:`struct nvme_id_ctrl `.plsi field. + + + + +.. c:enum:: nvme_id_ctrl_crcap + + Power Loss Signaling Information + +**Constants** + +``NVME_CTRL_CRCAP_RRSUP_SHIFT`` + Shift amount to get the Reachability Reporting Supported + from the :c:type:`struct nvme_id_ctrl `.crcap field. + +``NVME_CTRL_CRCAP_RGIDC_SHIFT`` + Shift amount to get the Reachability Group ID Changeable + from the :c:type:`struct nvme_id_ctrl `.crcap field. + +``NVME_CTRL_CRCAP_RRSUP_MASK`` + Mask to get the Reachability Reporting Supported from the + :c:type:`struct nvme_id_ctrl `.crcap field. + +``NVME_CTRL_CRCAP_RGIDC_MASK`` + Mask to get the Reachability Group ID Changeable from the + :c:type:`struct nvme_id_ctrl `.crcap field. + + + + +.. c:enum:: nvme_id_ctrl_cntrltype Controller types @@ -2372,7 +2561,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_dctype +.. c:enum:: nvme_id_ctrl_dctype Discovery Controller types @@ -2390,7 +2579,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_nvmsr +.. c:enum:: nvme_id_ctrl_nvmsr This field reports information associated with the NVM Subsystem, see :c:type:`struct nvme_id_ctrl `.nvmsr. @@ -2402,14 +2591,14 @@ power scale value is not part of an NVMe Storage Device. ``NVME_CTRL_NVMSR_NVMEE`` - If set’, then the NVM Subsystem is part of an NVMe + If set, then the NVM Subsystem is part of an NVMe Enclosure; if cleared, then the NVM Subsystem is not part of an NVMe Enclosure. -.. c:type:: enum nvme_id_ctrl_vwci +.. c:enum:: nvme_id_ctrl_vwci This field indicates information about remaining number of times that VPD contents are able to be updated using the VPD Write command, see :c:type:`struct nvme_id_ctrl `.vwci. @@ -2434,7 +2623,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_mec +.. c:enum:: nvme_id_ctrl_mec Flags indicating the capabilities of the Management Endpoint in the Controller, :c:type:`struct nvme_id_ctrl `.mec. @@ -2451,12 +2640,84 @@ power scale value -.. c:type:: enum nvme_id_ctrl_oacs +.. c:enum:: nvme_id_ctrl_oacs Flags indicating the optional Admin commands and features supported by the controller, see :c:type:`struct nvme_id_ctrl `.oacs. **Constants** +``NVME_CTRL_OACS_SSRS_SHIFT`` + Shift amount to get the Security Send Receive supported + +``NVME_CTRL_OACS_FNVMS_SHIFT`` + Shift amount to get the Format NVM supported + +``NVME_CTRL_OACS_FWDS_SHIFT`` + Shift amount to get the Firmware Download supported + +``NVME_CTRL_OACS_NMS_SHIFT`` + Shift amount to get the Namespace Management supported + +``NVME_CTRL_OACS_DSTS_SHIFT`` + Shift amount to get the Device Self-test supported + +``NVME_CTRL_OACS_DIRS_SHIFT`` + Shift amount to get the Directives supported + +``NVME_CTRL_OACS_NSRS_SHIFT`` + Shift amount to get the NVMe-MI Send Receive supported + +``NVME_CTRL_OACS_VMS_SHIFT`` + Shift amount to get the Virtualization Management supported + +``NVME_CTRL_OACS_DBCS_SHIFT`` + Shift amount to get the Doorbell Buffer Config supported + +``NVME_CTRL_OACS_GLSS_SHIFT`` + Shift amount to get the Get LBA Status supported + +``NVME_CTRL_OACS_CFLS_SHIFT`` + Shift amount to get the Command and Feature Lockdown supported + +``NVME_CTRL_OACS_HMLMS_SHIFT`` + Shift amount to get the Host Managed Live Migration support + +``NVME_CTRL_OACS_SSRS_MASK`` + Mask to get the Security Send Receive supported + +``NVME_CTRL_OACS_FNVMS_MASK`` + Mask to get the Format NVM supported + +``NVME_CTRL_OACS_FWDS_MASK`` + Mask to get the Firmware Download supported + +``NVME_CTRL_OACS_NMS_MASK`` + Mask to get the Namespace Management supported + +``NVME_CTRL_OACS_DSTS_MASK`` + Mask to get the Device Self-test supported + +``NVME_CTRL_OACS_DIRS_MASK`` + Mask to get the Directives supported + +``NVME_CTRL_OACS_NSRS_MASK`` + Mask to get the NVMe-MI Send Receive supported + +``NVME_CTRL_OACS_VMS_MASK`` + Mask to get the Virtualization Management supported + +``NVME_CTRL_OACS_DBCS_MASK`` + Mask to get the Doorbell Buffer Config supported + +``NVME_CTRL_OACS_GLSS_MASK`` + Mask to get the Get LBA Status supported + +``NVME_CTRL_OACS_CFLS_MASK`` + Mask to get the Command and Feature Lockdown supported + +``NVME_CTRL_OACS_HMLMS_MASK`` + Mask to get the Host Managed Live Migration support + ``NVME_CTRL_OACS_SECURITY`` If set, then the controller supports the Security Send and Security Receive commands. @@ -2502,10 +2763,14 @@ power scale value If set, then the controller supports the command and feature lockdown capability. +``NVME_CTRL_OACS_HMLM`` + If set, then the controller supports the command + and Host Managed Live Migration capability. -.. c:type:: enum nvme_id_ctrl_frmw + +.. c:enum:: nvme_id_ctrl_frmw Flags and values indicates capabilities regarding firmware updates from :c:type:`struct nvme_id_ctrl `.frmw. @@ -2530,7 +2795,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_lpa +.. c:enum:: nvme_id_ctrl_lpa Flags indicating optional attributes for log pages that are accessed via the Get Log Page command. @@ -2577,7 +2842,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_avscc +.. c:enum:: nvme_id_ctrl_avscc Flags indicating the configuration settings for Admin Vendor Specific command handling. @@ -2591,7 +2856,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_apsta +.. c:enum:: nvme_id_ctrl_apsta Flags indicating the attributes of the autonomous power state transition feature. @@ -2604,7 +2869,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_rpmbs +.. c:enum:: nvme_id_ctrl_rpmbs This field indicates if the controller supports one or more Replay Protected Memory Blocks, from :c:type:`struct nvme_id_ctrl `.rpmbs. @@ -2625,20 +2890,40 @@ power scale value -.. c:type:: enum nvme_id_ctrl_dsto +.. c:enum:: nvme_id_ctrl_dsto Flags indicating the optional Device Self-test command or operation behaviors supported by the controller or NVM subsystem. **Constants** +``NVME_CTRL_DSTO_SDSO_SHIFT`` + Shift amount to get the value of Single Device Self-test + Operation from Device Self-test Options field. + +``NVME_CTRL_DSTO_HIRS_SHIFT`` + Shift amount to get the value of Host-Initiated Refresh + Support from Device Self-test Options field. + +``NVME_CTRL_DSTO_SDSO_MASK`` + Mask to get the value of Single Device Self-test Operation + +``NVME_CTRL_DSTO_HIRS_MASK`` + Mask to get the value of Host-Initiated Refresh Support + ``NVME_CTRL_DSTO_ONE_DST`` - If set, then the NVM subsystem supports only one - device self-test operation in progress at a time. + If set, then the NVM subsystem supports only one device + self-test operation in progress at a time. If cleared, + then the NVM subsystem supports one device self-test + operation per controller at a time. + +``NVME_CTRL_DSTO_HIRS`` + If set, then the controller supports the Host-Initiated + Refresh capability. -.. c:type:: enum nvme_id_ctrl_hctm +.. c:enum:: nvme_id_ctrl_hctm Flags indicate the attributes of the host controlled thermal management feature @@ -2653,7 +2938,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_sanicap +.. c:enum:: nvme_id_ctrl_sanicap Indicates attributes for sanitize operations. @@ -2685,7 +2970,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_anacap +.. c:enum:: nvme_id_ctrl_anacap This field indicates the capabilities associated with Asymmetric Namespace Access Reporting. @@ -2726,7 +3011,32 @@ power scale value -.. c:type:: enum nvme_id_ctrl_sqes +.. c:enum:: nvme_id_ctrl_kpioc + + Key Per I/O Capabilities + +**Constants** + +``NVME_CTRL_KPIOC_KPIOS_SHIFT`` + Shift amount to get the Key Per I/O Supported from the + :c:type:`struct nvme_id_ctrl `.kpioc field. + +``NVME_CTRL_KPIOC_KPIOSC_SHIFT`` + Shift amount to get the Key Per I/O Scope from the + :c:type:`struct nvme_id_ctrl `.kpioc field. + +``NVME_CTRL_KPIOC_KPIOS_MASK`` + Mask to get the Key Per I/O Supported from the + :c:type:`struct nvme_id_ctrl `.kpioc field. + +``NVME_CTRL_KPIOC_KPIOSC_MASK`` + Mask to get the Key Per I/O Scope from the + :c:type:`struct nvme_id_ctrl `.kpioc field. + + + + +.. c:enum:: nvme_id_ctrl_sqes Defines the required and maximum Submission Queue entry size when using the NVM Command Set. @@ -2743,7 +3053,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_cqes +.. c:enum:: nvme_id_ctrl_cqes Defines the required and maximum Completion Queue entry size when using the NVM Command Set. @@ -2760,7 +3070,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_oncs +.. c:enum:: nvme_id_ctrl_oncs This field indicates the optional NVM commands and features supported by the controller. @@ -2817,10 +3127,23 @@ power scale value the Copy command are fast copy operations. +``NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE`` + If MAXWZD bit set, then the maximum data + size for Write Zeroes command depends on the + value of the Deallocate bit in the Write Zeroes + command and the value in the WZDSL field in the + I/O Command Set specific Identify Controller + data structure. + +``NVME_CTRL_ONCS_NAMESPACE_ZEROES`` + If NSZS bit set, then the controller supports + the Namespace Zeroes (NSZ) bit in the NVM + Command Set Write Zeroes command. -.. c:type:: enum nvme_id_ctrl_fuses + +.. c:enum:: nvme_id_ctrl_fuses This field indicates the fused operations that the controller supports. @@ -2833,7 +3156,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_fna +.. c:enum:: nvme_id_ctrl_fna This field indicates attributes for the Format NVM command. @@ -2896,7 +3219,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_vwc +.. c:enum:: nvme_id_ctrl_vwc Volatile write cache @@ -2915,7 +3238,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_nvscc +.. c:enum:: nvme_id_ctrl_nvscc This field indicates the configuration settings for NVM Vendor Specific command handling. @@ -2928,7 +3251,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_nwpc +.. c:enum:: nvme_id_ctrl_nwpc This field indicates the optional namespace write protection capabilities supported by the controller. @@ -2957,7 +3280,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_sgls +.. c:enum:: nvme_id_ctrl_sgls This field indicates if SGLs are supported for the NVM Command Set and the particular SGL types supported. @@ -2982,7 +3305,40 @@ power scale value -.. c:type:: enum nvme_id_ctrl_fcatt +.. c:enum:: nvme_id_ctrl_trattr + + Tracking Attributes + +**Constants** + +``NVME_CTRL_TRATTR_THMCS_SHIFT`` + Shift amount to get the Track Host Memory Changes Support + from the :c:type:`struct nvme_id_ctrl `.trattr field. + +``NVME_CTRL_TRATTR_TUDCS_SHIFT`` + Shift amount to get the Track User Data Changes Support + from the :c:type:`struct nvme_id_ctrl `.trattr field. + +``NVME_CTRL_TRATTR_MRTLL_SHIFT`` + Shift amount to get the Memory Range Tracking Length Limit + from the :c:type:`struct nvme_id_ctrl `.trattr field. + +``NVME_CTRL_TRATTR_THMCS_MASK`` + Mask to get the Track Host Memory Changes Support + from the :c:type:`struct nvme_id_ctrl `.trattr field. + +``NVME_CTRL_TRATTR_TUDCS_MASK`` + Mask to get the Track User Data Changes Support + from the :c:type:`struct nvme_id_ctrl `.trattr field. + +``NVME_CTRL_TRATTR_MRTLL_MASK`` + Mask to get the Memory Range Tracking Length Limit + from the :c:type:`struct nvme_id_ctrl `.trattr field. + + + + +.. c:enum:: nvme_id_ctrl_fcatt This field indicates attributes of the controller that are specific to NVMe over Fabrics. @@ -2996,7 +3352,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_ofcs +.. c:enum:: nvme_id_ctrl_ofcs Indicate whether the controller supports optional fabric commands. @@ -3010,7 +3366,7 @@ power scale value -.. c:type:: struct nvme_lbaf +.. c:struct:: nvme_lbaf LBA Format Data Structure @@ -3041,7 +3397,7 @@ power scale value -.. c:type:: enum nvme_lbaf_rp +.. c:enum:: nvme_lbaf_rp This field indicates the relative performance of the LBA format indicated relative to other LBA formats supported by the controller. @@ -3066,7 +3422,7 @@ power scale value -.. c:type:: struct nvme_id_ns +.. c:struct:: nvme_id_ns Identify Namespace data structure @@ -3104,9 +3460,11 @@ power scale value __le16 mssrl; __le32 mcl; __u8 msrc; - __u8 rsvd81; + __u8 kpios; __u8 nulbaf; - __u8 rsvd83[9]; + __u8 rsvd83; + __le32 kpiodaag; + __u8 rsvd88[4]; __le32 anagrpid; __u8 rsvd96[3]; __u8 nsattr; @@ -3251,8 +3609,8 @@ power scale value Range entries that may be used to specify source data in a Copy command. This is a 0’s based value. -``rsvd81`` - Reserved +``kpios`` + Key Per I/O Status indicates namespace Key Per I/O capability status. ``nulbaf`` Number of Unique Capability LBA Formats defines the number of @@ -3263,6 +3621,14 @@ power scale value ``rsvd83`` Reserved +``kpiodaag`` + Key Per I/O Data Access Alignment and Granularity indicates the + alignment and granularity in logical blocks that is required + for commands that support a KPIOTAG value in the CETYPE field. + +``rsvd88`` + Reserved + ``anagrpid`` ANA Group Identifier indicates the ANA Group Identifier of the ANA group of which the namespace is a member. @@ -3305,7 +3671,7 @@ power scale value -.. c:type:: enum nvme_id_nsfeat +.. c:enum:: nvme_id_nsfeat This field defines features of the namespace. @@ -3343,7 +3709,7 @@ power scale value -.. c:type:: enum nvme_id_ns_flbas +.. c:enum:: nvme_id_ns_flbas This field indicates the LBA data size & metadata size combination that the namespace has been formatted with @@ -3372,7 +3738,7 @@ power scale value -.. c:type:: enum nvme_nvm_id_ns_elbaf +.. c:enum:: nvme_nvm_id_ns_elbaf This field indicates the extended LBA format @@ -3393,7 +3759,7 @@ power scale value -.. c:type:: enum nvme_nvm_id_ns_pif +.. c:enum:: nvme_nvm_id_ns_pif This field indicates the type of the Protection Information Format @@ -3417,7 +3783,7 @@ power scale value -.. c:type:: enum nvme_id_ns_mc +.. c:enum:: nvme_id_ns_mc This field indicates the capabilities for metadata. @@ -3435,7 +3801,7 @@ power scale value -.. c:type:: enum nvme_id_ns_dpc +.. c:enum:: nvme_id_ns_dpc This field indicates the capabilities for the end-to-end data protection feature. @@ -3466,7 +3832,7 @@ power scale value -.. c:type:: enum nvme_id_ns_dps +.. c:enum:: nvme_id_ns_dps This field indicates the Type settings for the end-to-end data protection feature. @@ -3495,7 +3861,7 @@ power scale value -.. c:type:: enum nvme_id_ns_nmic +.. c:enum:: nvme_id_ns_nmic This field specifies multi-path I/O and namespace sharing capabilities of the namespace. @@ -3508,7 +3874,7 @@ power scale value -.. c:type:: enum nvme_id_ns_rescap +.. c:enum:: nvme_id_ns_rescap This field indicates the reservation capabilities of the namespace. @@ -3549,7 +3915,7 @@ power scale value -.. c:type:: enum nvme_nd_ns_fpi +.. c:enum:: nvme_nd_ns_fpi If a format operation is in progress, this field indicates the percentage of the namespace that remains to be formatted. @@ -3565,7 +3931,7 @@ power scale value -.. c:type:: enum nvme_id_ns_dlfeat +.. c:enum:: nvme_id_ns_dlfeat This field indicates information about features that affect deallocating logical blocks for this namespace. @@ -3600,7 +3966,7 @@ power scale value -.. c:type:: enum nvme_id_ns_attr +.. c:enum:: nvme_id_ns_attr Specifies attributes of the namespace. @@ -3614,7 +3980,7 @@ power scale value -.. c:type:: struct nvme_ns_id_desc +.. c:struct:: nvme_ns_id_desc Namespace identifier type descriptor @@ -3650,7 +4016,7 @@ power scale value -.. c:type:: enum nvme_ns_id_desc_nidt +.. c:enum:: nvme_ns_id_desc_nidt Known namespace identifier types @@ -3674,7 +4040,7 @@ power scale value -.. c:type:: struct nvme_nvmset_attr +.. c:struct:: nvme_nvmset_attr NVM Set Attributes Entry @@ -3726,7 +4092,7 @@ power scale value -.. c:type:: struct nvme_id_nvmset_list +.. c:struct:: nvme_id_nvmset_list NVM set list @@ -3755,7 +4121,7 @@ power scale value -.. c:type:: struct nvme_id_independent_id_ns +.. c:struct:: nvme_id_independent_id_ns Identify - I/O Command Set Independent Identify Namespace Data Structure @@ -3817,7 +4183,7 @@ power scale value -.. c:type:: struct nvme_id_ns_granularity_desc +.. c:struct:: nvme_id_ns_granularity_desc Namespace Granularity Descriptor @@ -3842,7 +4208,7 @@ power scale value -.. c:type:: struct nvme_id_ns_granularity_list +.. c:struct:: nvme_id_ns_granularity_list Namespace Granularity List @@ -3879,7 +4245,7 @@ power scale value -.. c:type:: struct nvme_id_uuid_list_entry +.. c:struct:: nvme_id_uuid_list_entry UUID List Entry @@ -3908,7 +4274,7 @@ power scale value -.. c:type:: enum nvme_id_uuid +.. c:enum:: nvme_id_uuid Identifier Association @@ -3925,7 +4291,7 @@ power scale value -.. c:type:: struct nvme_id_uuid_list +.. c:struct:: nvme_id_uuid_list UUID list @@ -3950,7 +4316,7 @@ power scale value -.. c:type:: struct nvme_ctrl_list +.. c:struct:: nvme_ctrl_list Controller List @@ -3975,7 +4341,7 @@ power scale value -.. c:type:: struct nvme_ns_list +.. c:struct:: nvme_ns_list Namespace List @@ -3996,7 +4362,22 @@ power scale value -.. c:type:: struct nvme_id_ctrl_nvm +.. c:enum:: nvme_id_ctrl_nvm_lbamqf + + LBA Migration Queue Format + +**Constants** + +``NVME_ID_CTRL_NVM_LBAMQF_TYPE_0`` + +``NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MIN`` + +``NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MAX`` + + + + +.. c:struct:: nvme_id_ctrl_nvm I/O Command Set Specific Identify Controller data structure @@ -4011,7 +4392,8 @@ power scale value __u8 dmrl; __le32 dmrsl; __le64 dmsl; - __u8 rsvd16[2]; + __u8 kpiocap; + __u8 wzdsl; __le16 aocs; __le32 ver; __u8 lbamqf; @@ -4038,8 +4420,11 @@ power scale value ``dmsl`` Dataset Management Size Limit -``rsvd16`` - Reserved +``kpiocap`` + Key Per I/O Capabilities + +``wzdsl`` + Write Zeroes With Deallocate Size Limit ``aocs`` Admin Optional Command Support @@ -4057,7 +4442,7 @@ power scale value -.. c:type:: struct nvme_nvm_id_ns +.. c:struct:: nvme_nvm_id_ns NVME Command Set I/O Command Set Specific Identify Namespace Data Structure @@ -4126,7 +4511,7 @@ power scale value -.. c:type:: struct nvme_zns_lbafe +.. c:struct:: nvme_zns_lbafe LBA Format Extension Data Structure @@ -4155,7 +4540,7 @@ power scale value -.. c:type:: struct nvme_zns_id_ns +.. c:struct:: nvme_zns_id_ns Zoned Namespace Command Set Specific Identify Namespace Data Structure @@ -4248,7 +4633,7 @@ power scale value -.. c:type:: struct nvme_zns_id_ctrl +.. c:struct:: nvme_zns_id_ctrl I/O Command Set Specific Identify Controller Data Structure for the Zoned Namespace Command Set @@ -4273,7 +4658,7 @@ power scale value -.. c:type:: struct nvme_primary_ctrl_cap +.. c:struct:: nvme_primary_ctrl_cap Identify - Controller Capabilities Structure @@ -4362,7 +4747,7 @@ power scale value -.. c:type:: struct nvme_secondary_ctrl +.. c:struct:: nvme_secondary_ctrl Secondary Controller Entry @@ -4411,7 +4796,7 @@ power scale value -.. c:type:: struct nvme_secondary_ctrl_list +.. c:struct:: nvme_secondary_ctrl_list Secondary Controller List @@ -4440,7 +4825,7 @@ power scale value -.. c:type:: struct nvme_id_iocs +.. c:struct:: nvme_id_iocs NVMe Identify IO Command Set data structure @@ -4461,7 +4846,50 @@ power scale value -.. c:type:: struct nvme_id_domain_attr +.. c:enum:: nvme_id_iocs_iocsc + + This field indicates the Identify I/O Command Set Data Structure + +**Constants** + +``NVME_IOCS_IOCSC_NVMCS_SHIFT`` + Shift amount to get the value of NVM Command Set + +``NVME_IOCS_IOCSC_NVMCS_MASK`` + Mask to get the value of NVM Command Set + +``NVME_IOCS_IOCSC_KVCS_SHIFT`` + Shift amount to get the value of Key Value Command Set + +``NVME_IOCS_IOCSC_KVCS_MASK`` + Mask to get the value of Key Value Command Set + +``NVME_IOCS_IOCSC_ZNSCS_SHIFT`` + Shift amount to get the value of Zoned Namespace Command + Set + +``NVME_IOCS_IOCSC_ZNSCS_MASK`` + Mask to get the value of Zoned Namespace Command Set + +``NVME_IOCS_IOCSC_SLMCS_SHIFT`` + Shift amount to get the value of Subsystem Local Memory + Command Set + +``NVME_IOCS_IOCSC_SLMCS_MASK`` + Mask to get the value of Subsystem Local Memory Command Set + +``NVME_IOCS_IOCSC_CPNCS_SHIFT`` + Shift amount to get the value of Computational Programs + Namespace Command Set + +``NVME_IOCS_IOCSC_CPNCS_MASK`` + Mask to get the value of Computational Programs Namespace + Command Set + + + + +.. c:struct:: nvme_id_domain_attr Domain Attributes Entry @@ -4502,7 +4930,7 @@ power scale value -.. c:type:: struct nvme_id_domain_list +.. c:struct:: nvme_id_domain_list Domain List @@ -4531,7 +4959,7 @@ power scale value -.. c:type:: struct nvme_id_endurance_group_list +.. c:struct:: nvme_id_endurance_group_list Endurance Group List @@ -4556,7 +4984,7 @@ power scale value -.. c:type:: struct nvme_supported_log_pages +.. c:struct:: nvme_supported_log_pages Supported Log Pages - Log @@ -4581,7 +5009,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_error_log_page +.. c:struct:: nvme_error_log_page Error Information Log Entry (Log Identifier 01h) @@ -4708,7 +5136,28 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_smart_log +.. c:enum:: nvme_err_status_field + + This field indicates the error information log entry status field + +**Constants** + +``NVME_ERR_SF_PHASE_TAG_SHIFT`` + Shift amount to get the phase tag + +``NVME_ERR_SF_STATUS_FIELD_SHIFT`` + Shift amount to get the status field + +``NVME_ERR_SF_PHASE_TAG_MASK`` + Mask to get the phase tag + +``NVME_ERR_SF_STATUS_FIELD_MASK`` + Mask to get the status field + + + + +.. c:struct:: nvme_smart_log SMART / Health Information Log (Log Identifier 02h) @@ -4949,7 +5398,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_smart_crit +.. c:enum:: nvme_smart_crit Critical Warning @@ -4988,7 +5437,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_smart_egcw +.. c:enum:: nvme_smart_egcw Endurance Group Critical Warning Summary @@ -5013,7 +5462,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_firmware_slot +.. c:struct:: nvme_firmware_slot Firmware Slot Information Log @@ -5046,7 +5495,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_cmd_effects_log +.. c:struct:: nvme_cmd_effects_log Commands Supported and Effects Log @@ -5075,7 +5524,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_cmd_effects +.. c:enum:: nvme_cmd_effects Commands Supported and Effects @@ -5108,7 +5557,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_st_result +.. c:struct:: nvme_st_result Self-test Result @@ -5191,7 +5640,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_status_result +.. c:enum:: nvme_status_result Result of the device self-test operation @@ -5245,7 +5694,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_st_code +.. c:enum:: nvme_st_code Self-test Code value @@ -5260,6 +5709,9 @@ Supported Log Pages (Log Identifier 00h) ``NVME_ST_CODE_EXTENDED`` Extended device self-test operation. +``NVME_ST_CODE_HOST_INIT`` + Host-Initiated Refresh operation. + ``NVME_ST_CODE_VS`` Vendor specific. @@ -5273,7 +5725,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_st_curr_op +.. c:enum:: nvme_st_curr_op Current Device Self-Test Operation @@ -5305,7 +5757,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_st_valid_diag_info +.. c:enum:: nvme_st_valid_diag_info Valid Diagnostic Information @@ -5330,7 +5782,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_self_test_log +.. c:struct:: nvme_self_test_log Device Self-test (Log Identifier 06h) @@ -5379,7 +5831,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_cmd_get_log_telemetry_host_lsp +.. c:enum:: nvme_cmd_get_log_telemetry_host_lsp Telemetry Host-Initiated log specific field @@ -5394,7 +5846,31 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_telemetry_log +.. c:enum:: nvme_telemetry_da + + Telemetry Log Data Area + +**Constants** + +``NVME_TELEMETRY_DA_CTRL_DETERMINE`` + The controller determines the data areas to be created + +``NVME_TELEMETRY_DA_1`` + Data Area 1 + +``NVME_TELEMETRY_DA_2`` + Data Area 2 + +``NVME_TELEMETRY_DA_3`` + Data Area 3 + +``NVME_TELEMETRY_DA_4`` + Data Area 4 + + + + +.. c:struct:: nvme_telemetry_log Retrieve internal data specific to the manufacturer. @@ -5411,8 +5887,12 @@ Supported Log Pages (Log Identifier 00h) __le16 dalb3; __u8 rsvd14[2]; __le32 dalb4; - __u8 rsvd20[361]; - __u8 hostdgn; + __u8 rsvd20[360]; + __u8 ths; + union { + __u8 hostdgn; + __u8 tcs; + }; __u8 ctrlavail; __u8 ctrldgn; __u8 rsnident[128]; @@ -5433,31 +5913,40 @@ Supported Log Pages (Log Identifier 00h) for the controller vendor that is able to interpret the data. ``dalb1`` - Telemetry Controller-Initiated Data Area 1 Last Block is + Telemetry Host/Controller Initiated Data Area 1 Last Block is the value of the last block in this area. ``dalb2`` - Telemetry Controller-Initiated Data Area 1 Last Block is + Telemetry Host/Controller Initiated Data Area 1 Last Block is the value of the last block in this area. ``dalb3`` - Telemetry Controller-Initiated Data Area 1 Last Block is + Telemetry Host/ControllerInitiated Data Area 1 Last Block is the value of the last block in this area. ``rsvd14`` Reserved ``dalb4`` - Telemetry Controller-Initiated Data Area 4 Last Block is + Telemetry Host/Controller Initiated Data Area 4 Last Block is the value of the last block in this area. ``rsvd20`` Reserved +``ths`` + Telemetry Host-Initiated Scope + +``{unnamed_union}`` + anonymous + ``hostdgn`` Telemetry Host-Initiated Data Generation Number is a value that is incremented each time the host initiates a - capture of its internal controller state in the controller . + capture of its internal controller state in the controller. + +``tcs`` + Telemetry Controller-Initiated Scope ``ctrlavail`` Telemetry Controller-Initiated Data Available, if cleared, @@ -5490,7 +5979,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_endurance_group_log +.. c:struct:: nvme_endurance_group_log Endurance Group Information Log @@ -5583,7 +6072,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_eg_critical_warning_flags +.. c:enum:: nvme_eg_critical_warning_flags Endurance Group Information Log - Critical Warning @@ -5603,7 +6092,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_aggregate_endurance_group_event +.. c:struct:: nvme_aggregate_endurance_group_event Endurance Group Event Aggregate @@ -5628,7 +6117,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_nvmset_predictable_lat_log +.. c:struct:: nvme_nvmset_predictable_lat_log Predictable Latency Mode - Deterministic Threshold Configuration Data @@ -5701,7 +6190,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_nvmeset_pl_status +.. c:enum:: nvme_nvmeset_pl_status Predictable Latency Per NVM Set Log - Status @@ -5719,7 +6208,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_nvmset_pl_events +.. c:enum:: nvme_nvmset_pl_events Predictable Latency Per NVM Set Log - Event Type @@ -5747,7 +6236,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_aggregate_predictable_lat_event +.. c:struct:: nvme_aggregate_predictable_lat_event Predictable Latency Event Aggregate Log Page @@ -5772,7 +6261,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_ana_group_desc +.. c:struct:: nvme_ana_group_desc ANA Group Descriptor @@ -5813,7 +6302,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ana_state +.. c:enum:: nvme_ana_state ANA Group Descriptor - Asymmetric Namespace Access State @@ -5837,7 +6326,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_ana_log +.. c:struct:: nvme_ana_log Asymmetric Namespace Access Log @@ -5870,7 +6359,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_persistent_event_log +.. c:struct:: nvme_persistent_event_log Persistent Event Log @@ -5963,7 +6452,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_pel_rci +.. c:enum:: nvme_pel_rci This field indicates the persistent event log reporting context @@ -6004,7 +6493,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_pel_rci_rcpit +.. c:enum:: nvme_pel_rci_rcpit Persistent Event Log Reporting Context - Port Identifier Type @@ -6022,7 +6511,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_persistent_event_entry +.. c:struct:: nvme_persistent_event_entry Persistent Event @@ -6079,7 +6568,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_persistent_event_types +.. c:enum:: nvme_persistent_event_types Persistent event log events @@ -6136,7 +6625,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_pel_ehai +.. c:enum:: nvme_pel_ehai This field indicates the persistent event header additional information @@ -6161,7 +6650,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_pel_ehai_pit +.. c:enum:: nvme_pel_ehai_pit Persistent Event Header Additional Information - Port Identifier Type @@ -6182,7 +6671,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fw_commit_event +.. c:struct:: nvme_fw_commit_event Firmware Commit Event Data @@ -6227,7 +6716,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_timestamp +.. c:struct:: nvme_timestamp Timestamp - Data Structure for Get Features @@ -6256,7 +6745,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_time_stamp_change_event +.. c:struct:: nvme_time_stamp_change_event Timestamp Change Event @@ -6281,7 +6770,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_power_on_reset_info_list +.. c:struct:: nvme_power_on_reset_info_list Controller Reset Information @@ -6326,7 +6815,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_nss_hw_err_event +.. c:struct:: nvme_nss_hw_err_event NVM Subsystem Hardware Error Event @@ -6355,7 +6844,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_change_ns_event +.. c:struct:: nvme_change_ns_event Change Namespace Event Data @@ -6424,7 +6913,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_format_nvm_start_event +.. c:struct:: nvme_format_nvm_start_event Format NVM Start Event Data @@ -6457,7 +6946,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_format_nvm_compln_event +.. c:struct:: nvme_format_nvm_compln_event Format NVM Completion Event Data @@ -6494,7 +6983,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_sanitize_start_event +.. c:struct:: nvme_sanitize_start_event Sanitize Start Event Data @@ -6523,7 +7012,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_sanitize_compln_event +.. c:struct:: nvme_sanitize_compln_event Sanitize Completion Event Data @@ -6556,7 +7045,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_set_feature_event +.. c:struct:: nvme_set_feature_event Set Feature Event Data @@ -6581,7 +7070,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_set_feat_event_layout +.. c:enum:: nvme_set_feat_event_layout This field indicates the set feature event layout @@ -6614,7 +7103,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_thermal_exc_event +.. c:struct:: nvme_thermal_exc_event Thermal Excursion Event Data @@ -6639,7 +7128,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_rd +.. c:struct:: nvme_lba_rd LBA Range Descriptor @@ -6668,7 +7157,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lbas_ns_element +.. c:struct:: nvme_lbas_ns_element LBA Status Log Namespace Element @@ -6705,7 +7194,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lba_status_atype +.. c:enum:: nvme_lba_status_atype Action type the controller uses to return LBA status @@ -6726,7 +7215,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_status_log +.. c:struct:: nvme_lba_status_log LBA Status Information Log @@ -6767,7 +7256,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_eg_event_aggregate_log +.. c:struct:: nvme_eg_event_aggregate_log Endurance Group Event Aggregate @@ -6792,7 +7281,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fid_supported_effects +.. c:enum:: nvme_fid_supported_effects FID Supported and Effects Data Structure definitions @@ -6840,10 +7329,13 @@ bytes, in size. This log captures the controller’s internal state. ``NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS`` NVM Subsystem Scope +``NVME_FID_SUPPORTED_EFFECTS_CDQSCP`` + Controller Data Queue -.. c:type:: struct nvme_fid_supported_effects_log + +.. c:struct:: nvme_fid_supported_effects_log Feature Identifiers Supported and Effects @@ -6864,7 +7356,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_mi_cmd_supported_effects +.. c:enum:: nvme_mi_cmd_supported_effects MI Command Supported and Effects Data Structure @@ -6912,7 +7404,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_mi_cmd_supported_effects_log +.. c:struct:: nvme_mi_cmd_supported_effects_log NVMe-MI Commands Supported and Effects Log @@ -6937,7 +7429,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_boot_partition +.. c:struct:: nvme_boot_partition Boot Partition Log @@ -6975,7 +7467,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_boot_partition_info +.. c:enum:: nvme_boot_partition_info This field indicates the boot partition information @@ -7000,7 +7492,143 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_eom_lane_desc +.. c:struct:: nvme_rotational_media_info_log + + Rotational Media Information Log + +**Definition** + +:: + + struct nvme_rotational_media_info_log { + __le16 endgid; + __le16 numa; + __le16 nrs; + __u8 rsvd6[2]; + __le32 spinc; + __le32 fspinc; + __le32 ldc; + __le32 fldc; + __u8 rsvd24[488]; + }; + +**Members** + +``endgid`` + Endurance Group Identifier + +``numa`` + Number of Actuators + +``nrs`` + Nominal Rotational Speed + +``rsvd6`` + Reserved + +``spinc`` + Spinup Count + +``fspinc`` + Failed Spinup Count + +``ldc`` + Load Count + +``fldc`` + Failed Load Count + +``rsvd24`` + Reserved + + + + + +.. c:struct:: nvme_dispersed_ns_participating_nss_log + + Dispersed Namespace Participating NVM Subsystems Log + +**Definition** + +:: + + struct nvme_dispersed_ns_participating_nss_log { + __le64 genctr; + __le64 numpsub; + __u8 rsvd16[240]; + __u8 participating_nss[]; + }; + +**Members** + +``genctr`` + Generation Counter + +``numpsub`` + Number of Participating NVM Subsystems + +``rsvd16`` + Reserved + +``participating_nss`` + Participating NVM Subsystem Entry + + + + + +.. c:struct:: nvme_mgmt_addr_desc + + Management Address Descriptor + +**Definition** + +:: + + struct nvme_mgmt_addr_desc { + __u8 mat; + __u8 rsvd1[3]; + __u8 madrs[508]; + }; + +**Members** + +``mat`` + Management Address Type + +``rsvd1`` + Reserved + +``madrs`` + Management Address + + + + + +.. c:struct:: nvme_mgmt_addr_list_log + + Management Address List Log + +**Definition** + +:: + + struct nvme_mgmt_addr_list_log { + struct nvme_mgmt_addr_desc mad[8]; + }; + +**Members** + +``mad`` + Management Address Descriptor + + + + + +.. c:struct:: nvme_eom_lane_desc EOM Lane Descriptor @@ -7069,7 +7697,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_phy_rx_eom_log +.. c:struct:: nvme_phy_rx_eom_log Physical Interface Receiver Eye Opening Measurement Log @@ -7174,7 +7802,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_eom_optional_data_present +.. c:enum:: nvme_eom_optional_data_present EOM Optional Data Present Fields @@ -7207,7 +7835,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_eom_optional_data +.. c:enum:: nvme_eom_optional_data EOM Optional Data Present Fields (Deprecated) @@ -7222,7 +7850,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_phy_rx_eom_progress +.. c:enum:: nvme_phy_rx_eom_progress EOM In Progress Values @@ -7240,7 +7868,151 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_media_unit_stat_desc +.. c:struct:: nvme_reachability_group_desc + + Reachability Group Descriptor + +**Definition** + +:: + + struct nvme_reachability_group_desc { + __le32 rgid; + __le32 nnid; + __le64 chngc; + __u8 rsvd16[16]; + __le32 nsid[]; + }; + +**Members** + +``rgid`` + Reachability Group ID + +``nnid`` + Number of NSID Values + +``chngc`` + Change Count + +``rsvd16`` + Reserved + +``nsid`` + Namespace Identifier List + + + + + +.. c:struct:: nvme_reachability_groups_log + + Reachability Groups Log + +**Definition** + +:: + + struct nvme_reachability_groups_log { + __le64 chngc; + __le16 nrgd; + __u8 rsvd10[6]; + struct nvme_reachability_group_desc rgd[]; + }; + +**Members** + +``chngc`` + Change Count + +``nrgd`` + Number of Reachability Group Descriptors + +``rsvd10`` + Reserved + +``rgd`` + Reachability Group Descriptor List + + + + + +.. c:struct:: nvme_reachability_association_desc + + Reachability Association Descriptor + +**Definition** + +:: + + struct nvme_reachability_association_desc { + __le32 rasid; + __le32 nrid; + __le64 chngc; + __u8 rac; + __u8 rsvd17[15]; + __le32 rgid[]; + }; + +**Members** + +``rasid`` + Reachability Association ID + +``nrid`` + Number of RGID Values + +``chngc`` + Change Count + +``rac`` + Reachability Association Characteristics + +``rsvd17`` + Reserved + +``rgid`` + Reachability Group Identifier List + + + + + +.. c:struct:: nvme_reachability_associations_log + + Reachability Associations Log + +**Definition** + +:: + + struct nvme_reachability_associations_log { + __le64 chngc; + __le16 nrad; + __u8 rsvd10[6]; + struct nvme_reachability_association_desc rad[]; + }; + +**Members** + +``chngc`` + Change Count + +``nrad`` + Number of Reachability Association Descriptors + +``rsvd10`` + Reserved + +``rad`` + Reachability Association Descriptor List + + + + + +.. c:struct:: nvme_media_unit_stat_desc Media Unit Status Descriptor @@ -7293,7 +8065,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_media_unit_stat_log +.. c:struct:: nvme_media_unit_stat_log Media Unit Status @@ -7330,7 +8102,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_media_unit_config_desc +.. c:struct:: nvme_media_unit_config_desc Media Unit Configuration Descriptor @@ -7359,7 +8131,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_channel_config_desc +.. c:struct:: nvme_channel_config_desc Channel Configuration Descriptor @@ -7389,7 +8161,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_end_grp_chan_desc +.. c:struct:: nvme_end_grp_chan_desc Endurance Group Channel Configuration Descriptor @@ -7415,7 +8187,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_end_grp_config_desc +.. c:struct:: nvme_end_grp_config_desc Endurance Group Configuration Descriptor @@ -7468,7 +8240,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_capacity_config_desc +.. c:struct:: nvme_capacity_config_desc Capacity Configuration structure definitions @@ -7507,7 +8279,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_supported_cap_config_list_log +.. c:struct:: nvme_supported_cap_config_list_log Supported Capacity Configuration list log page @@ -7537,7 +8309,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lockdown_log +.. c:struct:: nvme_lockdown_log Command and Feature Lockdown Log @@ -7570,7 +8342,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_resv_notification_log +.. c:struct:: nvme_resv_notification_log Reservation Notification Log @@ -7611,7 +8383,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_resv_notify_rnlpt +.. c:enum:: nvme_resv_notify_rnlpt Reservation Notification Log - Reservation Notification Log Page Type @@ -7632,7 +8404,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_sanitize_log_page +.. c:struct:: nvme_sanitize_log_page Sanitize Status (Log Identifier 81h) @@ -7758,7 +8530,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_sanitize_sstat +.. c:enum:: nvme_sanitize_sstat Sanitize Status (SSTAT) @@ -7838,7 +8610,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_sanitize_ssi +.. c:enum:: nvme_sanitize_ssi Sanitize State Information (SSI) @@ -7903,7 +8675,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_zns_changed_zone_log +.. c:struct:: nvme_zns_changed_zone_log ZNS Changed Zone List log @@ -7932,7 +8704,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_zns_zt +.. c:enum:: nvme_zns_zt Zone Descriptor Data Structure - Zone Type @@ -7944,7 +8716,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_zns_za +.. c:enum:: nvme_zns_za Zone Descriptor Data Structure @@ -7967,7 +8739,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_zns_zs +.. c:enum:: nvme_zns_zs Zone Descriptor Data Structure - Zone State @@ -7997,7 +8769,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_zns_desc +.. c:struct:: nvme_zns_desc Zone Descriptor Data Structure @@ -8050,7 +8822,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_zone_report +.. c:struct:: nvme_zone_report Report Zones Data Structure @@ -8079,7 +8851,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_ruh_type +.. c:enum:: nvme_fdp_ruh_type Reclaim Unit Handle Type @@ -8094,7 +8866,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_ruh_desc +.. c:struct:: nvme_fdp_ruh_desc Reclaim Unit Handle Descriptor @@ -8119,7 +8891,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_config_fdpa +.. c:enum:: nvme_fdp_config_fdpa FDP Attributes @@ -8146,7 +8918,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lockdown_log_scope +.. c:enum:: nvme_lockdown_log_scope lockdown log page scope attributes @@ -8167,7 +8939,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lockdown_log_contents +.. c:enum:: nvme_lockdown_log_contents lockdown log page content attributes @@ -8185,7 +8957,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lockdown_scope_contents +.. c:enum:: nvme_lockdown_scope_contents Lockdown Log shift and mask @@ -8206,7 +8978,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_config_desc +.. c:struct:: nvme_fdp_config_desc FDP Configuration Descriptor @@ -8267,7 +9039,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_config_log +.. c:struct:: nvme_fdp_config_log FDP Configurations Log Page @@ -8308,7 +9080,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_ruha +.. c:enum:: nvme_fdp_ruha Reclaim Unit Handle Attributes @@ -8329,7 +9101,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_ruhu_desc +.. c:struct:: nvme_fdp_ruhu_desc Reclaim Unit Handle Usage Descriptor @@ -8354,7 +9126,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_ruhu_log +.. c:struct:: nvme_fdp_ruhu_log Reclaim Unit Handle Usage Log Page @@ -8383,7 +9155,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_stats_log +.. c:struct:: nvme_fdp_stats_log FDP Statistics Log Page @@ -8416,7 +9188,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_event_type +.. c:enum:: nvme_fdp_event_type FDP Event Types @@ -8443,7 +9215,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_event_realloc_flags +.. c:enum:: nvme_fdp_event_realloc_flags Media Reallocated Event Type Specific Flags @@ -8455,7 +9227,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_event_realloc +.. c:struct:: nvme_fdp_event_realloc Media Reallocated Event Type Specific Information @@ -8492,7 +9264,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_event_flags +.. c:enum:: nvme_fdp_event_flags FDP Event Flags @@ -8510,7 +9282,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_event +.. c:struct:: nvme_fdp_event FDP Event @@ -8567,7 +9339,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_events_log +.. c:struct:: nvme_fdp_events_log FDP Events Log Page @@ -8596,9 +9368,9 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_feat_fdp_events_cdw11 +.. c:struct:: nvme_feat_fdp_events_cdw11 - FDP Events Feature Command Dword 11 + FDP Events Feature Command Dword 11 Deprecated: doesn't support this struct. Use NVME_FEAT_FDPE_*** definitions instead. **Definition** @@ -8625,7 +9397,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_supported_event_attributes +.. c:enum:: nvme_fdp_supported_event_attributes Supported FDP Event Attributes @@ -8640,7 +9412,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_supported_event_desc +.. c:struct:: nvme_fdp_supported_event_desc Supported FDP Event Descriptor @@ -8665,7 +9437,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_ruh_status_desc +.. c:struct:: nvme_fdp_ruh_status_desc Reclaim Unit Handle Status Descriptor @@ -8702,7 +9474,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_ruh_status +.. c:struct:: nvme_fdp_ruh_status Reclaim Unit Handle Status @@ -8731,7 +9503,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_status_desc +.. c:struct:: nvme_lba_status_desc LBA Status Descriptor Entry @@ -8768,7 +9540,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_status +.. c:struct:: nvme_lba_status LBA Status Descriptor List @@ -8801,7 +9573,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lba_status_cmpc +.. c:enum:: nvme_lba_status_cmpc Get LBA Status Command Completion Condition @@ -8823,7 +9595,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_feat_auto_pst +.. c:struct:: nvme_feat_auto_pst Autonomous Power State Transition @@ -8844,7 +9616,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_apst_entry +.. c:enum:: nvme_apst_entry Autonomous Power State Transition @@ -8865,7 +9637,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_metadata_element_desc +.. c:struct:: nvme_metadata_element_desc Metadata Element Descriptor @@ -8898,7 +9670,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_host_metadata +.. c:struct:: nvme_host_metadata Host Metadata Data Structure @@ -8936,7 +9708,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ctrl_metadata_type +.. c:enum:: nvme_ctrl_metadata_type Controller Metadata Element Types @@ -8999,7 +9771,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ns_metadata_type +.. c:enum:: nvme_ns_metadata_type Namespace Metadata Element Types @@ -9024,7 +9796,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_range_type_entry +.. c:struct:: nvme_lba_range_type_entry LBA Range Type - Data Structure Entry @@ -9069,7 +9841,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lbart +.. c:enum:: nvme_lbart LBA Range Type - Data Structure Entry @@ -9099,7 +9871,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_range_type +.. c:struct:: nvme_lba_range_type LBA Range Type @@ -9120,7 +9892,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_plm_config +.. c:struct:: nvme_plm_config Predictable Latency Mode - Deterministic Threshold Configuration Data Structure @@ -9161,7 +9933,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_feat_host_behavior +.. c:struct:: nvme_feat_host_behavior Host Behavior Support - Data Structure @@ -9173,8 +9945,8 @@ bytes, in size. This log captures the controller’s internal state. __u8 acre; __u8 etdas; __u8 lbafee; - __u8 rsvd3; - __u16 cdfe; + __u8 hdisns; + __le16 cdfe; __u8 rsvd6[506]; }; @@ -9189,8 +9961,8 @@ bytes, in size. This log captures the controller’s internal state. ``lbafee`` LBA Format Extension Enable -``rsvd3`` - Reserved +``hdisns`` + Host Dispersed Namespace Support ``cdfe`` Copy Descriptor Formats Enable @@ -9202,7 +9974,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_host_behavior_support +.. c:enum:: nvme_host_behavior_support Enable Advanced Command @@ -9214,7 +9986,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_dsm_range +.. c:struct:: nvme_dsm_range Dataset Management - Range Definition @@ -9243,7 +10015,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_copy_range +.. c:struct:: nvme_copy_range Copy - Source Range Entries Descriptor Format @@ -9289,7 +10061,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_copy_range_f1 +.. c:struct:: nvme_copy_range_f1 Copy - Source Range Entries Descriptor Format 1h @@ -9335,7 +10107,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_copy_range_sopt +.. c:enum:: nvme_copy_range_sopt NVMe Copy Range Source Options @@ -9347,7 +10119,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_copy_range_f2 +.. c:struct:: nvme_copy_range_f2 Copy - Source Range Entries Descriptor Format 2h @@ -9401,7 +10173,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_copy_range_f3 +.. c:struct:: nvme_copy_range_f3 Copy - Source Range Entries Descriptor Format 3h @@ -9459,7 +10231,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_registered_ctrl +.. c:struct:: nvme_registered_ctrl Registered Controller Data Structure @@ -9496,7 +10268,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_registered_ctrl_ext +.. c:struct:: nvme_registered_ctrl_ext Registered Controller Extended Data Structure @@ -9537,7 +10309,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_resv_status +.. c:struct:: nvme_resv_status Reservation Status Data Structure @@ -9600,7 +10372,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_streams_directive_params +.. c:struct:: nvme_streams_directive_params Streams Directive - Return Parameters Data Structure @@ -9657,7 +10429,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_streams_directive_status +.. c:struct:: nvme_streams_directive_status Streams Directive - Get Status Data Structure @@ -9682,7 +10454,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_id_directives +.. c:struct:: nvme_id_directives Identify Directive - Return Parameters Data Structure @@ -9711,7 +10483,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_directive_types +.. c:enum:: nvme_directive_types Directives Supported or Enabled @@ -9729,7 +10501,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_host_mem_buf_attrs +.. c:struct:: nvme_host_mem_buf_attrs Host Memory Buffer - Attributes Data Structure @@ -9766,7 +10538,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ae_type +.. c:enum:: nvme_ae_type Asynchronous Event Type @@ -9781,6 +10553,12 @@ bytes, in size. This log captures the controller’s internal state. ``NVME_AER_NOTICE`` Notice event +``NVME_AER_IMMEDIATE`` + Immediate + +``NVME_AER_ONESHOT`` + One-Shot + ``NVME_AER_CSS`` NVM Command Set Specific events @@ -9790,7 +10568,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ae_info_error +.. c:enum:: nvme_ae_info_error Asynchronous Event Information - Error Status @@ -9817,7 +10595,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ae_info_smart +.. c:enum:: nvme_ae_info_smart Asynchronous Event Information - SMART / Health Status @@ -9835,7 +10613,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ae_info_css_nvm +.. c:enum:: nvme_ae_info_css_nvm Asynchronous Event Information - I/O Command Specific Status @@ -9854,7 +10632,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ae_info_notice +.. c:enum:: nvme_ae_info_notice Asynchronous Event Information - Notice @@ -9887,7 +10665,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_subsys_type +.. c:enum:: nvme_subsys_type Type of the NVM subsystem. @@ -9918,7 +10696,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_disc_eflags +.. c:enum:: nvmf_disc_eflags Discovery Log Page entry flags. @@ -9955,7 +10733,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: union nvmf_tsas +.. c:union:: nvmf_tsas Transport Specific Address Subtype @@ -9993,7 +10771,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvmf_disc_log_entry +.. c:struct:: nvmf_disc_log_entry Discovery Log Page entry @@ -10095,7 +10873,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_trtype +.. c:enum:: nvmf_trtype Transport Type codes for Discovery Log Page entry TRTYPE field @@ -10123,7 +10901,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_addr_family +.. c:enum:: nvmf_addr_family Address Family codes for Discovery Log Page entry ADRFAM field @@ -10151,7 +10929,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_treq +.. c:enum:: nvmf_treq Transport Requirements codes for Discovery Log Page entry TREQ field @@ -10172,7 +10950,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_rdma_qptype +.. c:enum:: nvmf_rdma_qptype RDMA QP Service Type codes for Discovery Log Page entry TSAS RDMA_QPTYPE field @@ -10187,7 +10965,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_rdma_prtype +.. c:enum:: nvmf_rdma_prtype RDMA Provider Type codes for Discovery Log Page entry TSAS RDMA_PRTYPE field @@ -10211,7 +10989,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_rdma_cms +.. c:enum:: nvmf_rdma_cms RDMA Connection Management Service Type codes for Discovery Log Page entry TSAS RDMA_CMS field @@ -10223,7 +11001,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_tcp_sectype +.. c:enum:: nvmf_tcp_sectype Transport Specific Address Subtype Definition for NVMe/TCP Transport @@ -10243,7 +11021,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_log_discovery_lid_support +.. c:enum:: nvmf_log_discovery_lid_support Discovery log specific support @@ -10264,7 +11042,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_log_discovery_lsp +.. c:enum:: nvmf_log_discovery_lsp Discovery log specific field @@ -10285,7 +11063,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvmf_discovery_log +.. c:struct:: nvmf_discovery_log Discovery Log Page (Log Identifier 70h) @@ -10329,7 +11107,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_dim_tas +.. c:enum:: nvmf_dim_tas Discovery Information Management Task @@ -10347,7 +11125,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_dim_entfmt +.. c:enum:: nvmf_dim_entfmt Discovery Information Management Entry Format @@ -10362,7 +11140,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_dim_etype +.. c:enum:: nvmf_dim_etype Discovery Information Management Entity Type @@ -10380,7 +11158,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_exattype +.. c:enum:: nvmf_exattype Extended Attribute Type @@ -10395,7 +11173,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvmf_ext_attr +.. c:struct:: nvmf_ext_attr Extended Attribute (EXAT) @@ -10425,7 +11203,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvmf_ext_die +.. c:struct:: nvmf_ext_die Extended Discovery Information Entry (DIE) @@ -10510,7 +11288,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: union nvmf_die +.. c:union:: nvmf_die Discovery Information Entry (DIE) @@ -10550,7 +11328,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvmf_dim_data +.. c:struct:: nvmf_dim_data Discovery Information Management (DIM) - Data @@ -10619,7 +11397,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvmf_connect_data +.. c:struct:: nvmf_connect_data Data payload for the 'connect' command @@ -10660,7 +11438,269 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_read_nvm_ss_info +.. c:struct:: nvme_host_ext_discover_log + + Host Extended Discovery Log + +**Definition** + +:: + + struct nvme_host_ext_discover_log { + __u8 trtype; + __u8 adrfam; + __u8 rsvd2[8]; + __le16 eflags; + __u8 rsvd12[244]; + char hostnqn[NVME_NQN_LENGTH]; + char traddr[NVMF_TRADDR_SIZE]; + union nvmf_tsas tsas; + __le32 tel; + __le16 numexat; + __u8 rsvd1030[2]; + struct nvmf_ext_attr exat[]; + }; + +**Members** + +``trtype`` + Transport Type + +``adrfam`` + Address Family + +``rsvd2`` + Reserved + +``eflags`` + Entry Flags + +``rsvd12`` + Reserved + +``hostnqn`` + Host NVMe Qualified Name + +``traddr`` + Transport Address + +``tsas`` + Transport Specific Address Subtype + +``tel`` + Total Entry Length + +``numexat`` + Number of Extended Attributes + +``rsvd1030`` + Reserved + +``exat`` + Extended Attributes List + + + + + +.. c:struct:: nvme_host_discover_log + + Host Discovery Log + +**Definition** + +:: + + struct nvme_host_discover_log { + __le64 genctr; + __le64 numrec; + __le16 recfmt; + __u8 hdlpf; + __u8 rsvd19; + __le32 thdlpl; + __u8 rsvd24[1000]; + struct nvme_host_ext_discover_log hedlpe[]; + }; + +**Members** + +``genctr`` + Generation Counter + +``numrec`` + Number of Records + +``recfmt`` + Record Format + +``hdlpf`` + Host Discovery Log Page Flags + +``rsvd19`` + Reserved + +``thdlpl`` + Total Host Discovery Log Page Length + +``rsvd24`` + Reserved + +``hedlpe`` + Host Extended Discovery Log Page Entry List + + + + + +.. c:struct:: nvme_ave_tr_record + + AVE Transport Record + +**Definition** + +:: + + struct nvme_ave_tr_record { + __u8 aveadrfam; + __u8 rsvd1; + __le16 avetrsvcid; + __u8 avetraddr[16]; + }; + +**Members** + +``aveadrfam`` + AVE Address Family + +``rsvd1`` + Reserved + +``avetrsvcid`` + AVE Transport Service Identifier + +``avetraddr`` + AVE Transport Address + + + + + +.. c:struct:: nvme_ave_discover_log_entry + + AVE Discovery Log Entry + +**Definition** + +:: + + struct nvme_ave_discover_log_entry { + __le32 tel; + char avenqn[224]; + __u8 numatr; + __u8 rsvd229[3]; + struct nvme_ave_tr_record atr[]; + }; + +**Members** + +``tel`` + Total Entry Length + +``avenqn`` + AVE NQN + +``numatr`` + Number of AVE Transport Records + +``rsvd229`` + Reserved + +``atr`` + AVE Transport Record List + + + + + +.. c:struct:: nvme_ave_discover_log + + AVE Discovery Log + +**Definition** + +:: + + struct nvme_ave_discover_log { + __le64 genctr; + __le64 numrec; + __le16 recfmt; + __u8 rsvd18[2]; + __le32 tadlpl; + __u8 rsvd24[1000]; + struct nvme_ave_discover_log_entry adlpe[]; + }; + +**Members** + +``genctr`` + Generation Counter + +``numrec`` + Number of Records + +``recfmt`` + Record Format + +``rsvd18`` + Reserved + +``tadlpl`` + Total AVE Discovery Log Page Length + +``rsvd24`` + Reserved + +``adlpe`` + AVE Discovery Log Page Entry List + + + + + +.. c:struct:: nvme_pull_model_ddc_req_log + + Pull Model DDC Request Log + +**Definition** + +:: + + struct nvme_pull_model_ddc_req_log { + __u8 ori; + __u8 rsvd1[3]; + __le32 tpdrpl; + __u8 osp[]; + }; + +**Members** + +``ori`` + Operation Request Identifier + +``rsvd1`` + Reserved + +``tpdrpl`` + Total Pull Model DDC Request Log Page Length + +``osp`` + Operation Specific Parameters + + + + + +.. c:struct:: nvme_mi_read_nvm_ss_info NVM Subsystem Information Data Structure @@ -10693,7 +11733,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_port_pcie +.. c:struct:: nvme_mi_port_pcie PCIe Port Specific Data @@ -10738,7 +11778,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_port_smb +.. c:struct:: nvme_mi_port_smb SMBus Port Specific Data @@ -10779,7 +11819,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_read_port_info +.. c:struct:: nvme_mi_read_port_info Port Information Data Structure @@ -10825,7 +11865,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_read_ctrl_info +.. c:struct:: nvme_mi_read_ctrl_info Controller Information Data Structure @@ -10878,7 +11918,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_osc +.. c:struct:: nvme_mi_osc Optionally Supported Command Data Structure @@ -10903,7 +11943,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_read_sc_list +.. c:struct:: nvme_mi_read_sc_list Management Endpoint Buffer Supported Command List Data Structure @@ -10929,7 +11969,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_nvm_ss_health_status +.. c:struct:: nvme_mi_nvm_ss_health_status Subsystem Management Data Structure @@ -10970,7 +12010,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: enum nvme_mi_ccs +.. c:enum:: nvme_mi_ccs Get State Control Primitive Success Response Fields - Control Primitive Specific Response @@ -11015,7 +12055,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_ctrl_health_status +.. c:struct:: nvme_mi_ctrl_health_status Controller Health Data Structure (CHDS) @@ -11060,7 +12100,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: enum nvme_mi_csts +.. c:enum:: nvme_mi_csts Controller Health Data Structure (CHDS) - Controller Status (CSTS) @@ -11090,7 +12130,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: enum nvme_mi_cwarn +.. c:enum:: nvme_mi_cwarn Controller Health Data Structure (CHDS) - Critical Warning (CWARN) @@ -11114,7 +12154,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_mra +.. c:struct:: nvme_mi_vpd_mra NVMe MultiRecord Area @@ -11195,7 +12235,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_ppmra +.. c:struct:: nvme_mi_vpd_ppmra NVMe PCIe Port MultiRecord Area @@ -11248,7 +12288,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_telem +.. c:struct:: nvme_mi_vpd_telem Vital Product Data Element Descriptor @@ -11282,7 +12322,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: enum nvme_mi_elem +.. c:enum:: nvme_mi_elem Element Descriptor Types @@ -11312,7 +12352,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_tra +.. c:struct:: nvme_mi_vpd_tra Vital Product Data Topology MultiRecord @@ -11345,7 +12385,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_mr_common +.. c:struct:: nvme_mi_vpd_mr_common NVMe MultiRecord Area @@ -11399,7 +12439,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_hdr +.. c:struct:: nvme_mi_vpd_hdr Vital Product Data Common Header @@ -11452,7 +12492,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: enum nvme_status_field +.. c:enum:: nvme_status_field Defines all parts of the nvme status field: status code, status code type, and additional flags. @@ -11704,6 +12744,22 @@ entries are of a variable lengths (TEL), TEL is always a multiple of command requires access to media and the media is not ready. +``NVME_SC_INVALID_KEY_TAG`` + The command was aborted due to an invalid KEYTAG + field value. + +``NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED`` + The command is prohibited while the + Host Disperesed Namespace Support (HDISNS) field is not + set to 1h in the Host Behavior Support feature. + +``NVME_SC_HOST_ID_NOT_INITIALIZED`` + Host Identifier Not Initialized. + +``NVME_SC_INCORRECT_KEY`` + The command was aborted due to the key associated + with the KEYTAG field being incorrect. + ``NVME_SC_FDP_DISABLED`` Command is not allowed when Flexible Data Placement is disabled. @@ -11741,6 +12797,25 @@ entries are of a variable lengths (TEL), TEL is always a multiple of Format In Progress: A Format NVM command is in progress on the namespace. +``NVME_SC_INVALID_VALUE_SIZE`` + The value size is not valid. + +``NVME_SC_INVALID_KEY_SIZE`` + The KV key size is not valid. + +``NVME_SC_KV_KEY_NOT_EXISTS`` + The Store If Key Exists (SIKE) bit is set to + '1' in the Store Option field and the KV key does not + exists. + +``NVME_SC_UNRECOVERED_ERROR`` + There was an unrecovered error when reading + from the meidum. + +``NVME_SC_KEY_EXISTS`` + The Store If No Key Exists (SINKE) bit is set to '1' + in the Store Option field and the KV key exists. + ``NVME_SC_CQ_INVALID`` Completion Queue Invalid: The Completion Queue identifier specified in the command @@ -12275,7 +13350,7 @@ status code -.. c:type:: enum nvme_status_type +.. c:enum:: nvme_status_type type encoding for NVMe return values, when represented as an int. @@ -12357,7 +13432,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_admin_opcode +.. c:enum:: nvme_admin_opcode Known NVMe admin opcodes @@ -12444,9 +13519,42 @@ true if **status** is of the specified type and value ``nvme_admin_fabric_zoning_lookup`` Fabric Zoning Lookup +``nvme_admin_clear_export_nvm_res`` + Clear Exported NVM Resource Configuration + ``nvme_admin_fabric_zoning_send`` Fabric Zoning Send +``nvme_admin_create_export_nvms`` + Create Exported NVM Subsystem + +``nvme_admin_manage_export_nvms`` + Manage Exported NVM Subsystem + +``nvme_admin_manage_export_ns`` + Manage Exported Namespace + +``nvme_admin_manage_export_port`` + Manage Exported Port + +``nvme_admin_send_disc_log_page`` + Send Discovery Log Page + +``nvme_admin_track_send`` + Track Send + +``nvme_admin_track_receive`` + Track Receive + +``nvme_admin_migration_send`` + Migration Send + +``nvme_admin_migration_receive`` + Migration Receive + +``nvme_admin_ctrl_data_queue`` + Controller Data Queue + ``nvme_admin_dbbuf`` Doorbell Buffer Config @@ -12465,13 +13573,22 @@ true if **status** is of the specified type and value ``nvme_admin_sanitize_nvm`` Sanitize +``nvme_admin_load_program`` + Load Program + ``nvme_admin_get_lba_status`` Get LBA Status +``nvme_admin_program_act_mgmt`` + Program Activation Management + +``nvme_admin_mem_range_set_mgmt`` + Memory Range Set Management -.. c:type:: enum nvme_identify_cns + +.. c:enum:: nvme_identify_cns Identify - CNS Values @@ -12560,7 +13677,17 @@ true if **status** is of the specified type and value Data Structure for Allocated Namespace ID ``NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE`` - Base Specification 2.0a section 5.17.2.21 + I/O Command Set data structure + +``NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST`` + Get Underlying Namespace List + +``NVME_IDENTIFY_CNS_PORTS_LIST`` + Get Ports List + +``NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS`` + I/O Command Set Independent Identify Namespace data + structure for the specified allocated NSID ``NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS`` Supported Controller State Formats @@ -12570,7 +13697,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_cmd_get_log_lid +.. c:enum:: nvme_cmd_get_log_lid Get Log Page -Log Page Identifiers @@ -12699,7 +13826,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_features_id +.. c:enum:: nvme_features_id Features - Feature Identifiers @@ -12772,7 +13899,7 @@ true if **status** is of the specified type and value Host Behavior Support ``NVME_FEAT_FID_SANITIZE`` - Endurance Group Event Configuration + Sanitize Config ``NVME_FEAT_FID_ENDURANCE_EVT_CFG`` Endurance Group Event Configuration @@ -12783,12 +13910,33 @@ true if **status** is of the specified type and value ``NVME_FEAT_FID_SPINUP_CONTROL`` Spinup Control +``NVME_FEAT_FID_POWER_LOSS_SIGNAL`` + Power Loss Signaling Config + +``NVME_FEAT_FID_PERF_CHARACTERISTICS`` + Performance Characteristics + ``NVME_FEAT_FID_FDP`` Flexible Data Placement ``NVME_FEAT_FID_FDP_EVENTS`` FDP Events +``NVME_FEAT_FID_NS_ADMIN_LABEL`` + Namespace Admin Label + +``NVME_FEAT_FID_KEY_VALUE`` + Key Value Configuration + +``NVME_FEAT_FID_CTRL_DATA_QUEUE`` + Controller Data Queue + +``NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR`` + Embedded Management Controller Address + +``NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR`` + Host Management Agent Address + ``NVME_FEAT_FID_ENH_CTRL_METADATA`` Enhanced Controller Metadata @@ -12813,10 +13961,13 @@ true if **status** is of the specified type and value ``NVME_FEAT_FID_WRITE_PROTECT`` Namespace Write Protection Config +``NVME_FEAT_FID_BP_WRITE_PROTECT`` + Boot Partition Write Protection Config -.. c:type:: enum nvme_feat + +.. c:enum:: nvme_feat Features Access Shifts/Masks values @@ -12934,6 +14085,46 @@ true if **status** is of the specified type and value ``NVME_FEAT_AE_EGA_MASK`` +``NVME_FEAT_AE_NNSSHDN_SHIFT`` + +``NVME_FEAT_AE_NNSSHDN_MASK`` + +``NVME_FEAT_AE_TTHRY_SHIFT`` + +``NVME_FEAT_AE_TTHRY_MASK`` + +``NVME_FEAT_AE_RASSN_SHIFT`` + +``NVME_FEAT_AE_RASSN_MASK`` + +``NVME_FEAT_AE_RGRP0_SHIFT`` + +``NVME_FEAT_AE_RGRP0_MASK`` + +``NVME_FEAT_AE_ANSAN_SHIFT`` + +``NVME_FEAT_AE_ANSAN_MASK`` + +``NVME_FEAT_AE_ZDCN_SHIFT`` + +``NVME_FEAT_AE_ZDCN_MASK`` + +``NVME_FEAT_AE_PMDRLPCN_SHIFT`` + +``NVME_FEAT_AE_PMDRLPCN_MASK`` + +``NVME_FEAT_AE_ADLPCN_SHIFT`` + +``NVME_FEAT_AE_ADLPCN_MASK`` + +``NVME_FEAT_AE_HDLPCN_SHIFT`` + +``NVME_FEAT_AE_HDLPCN_MASK`` + +``NVME_FEAT_AE_DLPCN_SHIFT`` + +``NVME_FEAT_AE_DLPCN_MASK`` + ``NVME_FEAT_APST_APSTE_SHIFT`` ``NVME_FEAT_APST_APSTE_MASK`` @@ -12986,6 +14177,14 @@ true if **status** is of the specified type and value ``NVME_FEAT_EG_EGCW_MASK`` +``NVME_FEAT_FDPE_PHNDL_SHIFT`` + +``NVME_FEAT_FDPE_PHNDL_MASK`` + +``NVME_FEAT_FDPE_NOET_SHIFT`` + +``NVME_FEAT_FDPE_NOET_MASK`` + ``NVME_FEAT_SPM_PBSLC_SHIFT`` ``NVME_FEAT_SPM_PBSLC_MASK`` @@ -13018,6 +14217,14 @@ true if **status** is of the specified type and value ``NVME_FEAT_IOCSP_IOCSCI_MASK`` +``NVME_FEAT_SPINUP_CONTROL_SHIFT`` + +``NVME_FEAT_SPINUP_CONTROL_MASK`` + +``NVME_FEAT_PLS_MODE_SHIFT`` + +``NVME_FEAT_PLS_MODE_MASK`` + ``NVME_FEAT_FDP_ENABLED_SHIFT`` ``NVME_FEAT_FDP_ENABLED_MASK`` @@ -13033,7 +14240,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_get_features_sel +.. c:enum:: nvme_get_features_sel Get Features - Select @@ -13054,7 +14261,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_cmd_format_mset +.. c:enum:: nvme_cmd_format_mset Format NVM - Metadata Settings @@ -13071,7 +14278,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_cmd_format_pi +.. c:enum:: nvme_cmd_format_pi Format NVM - Protection Information @@ -13092,7 +14299,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_cmd_format_pil +.. c:enum:: nvme_cmd_format_pil Format NVM - Protection Information Location @@ -13109,7 +14316,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_cmd_format_ses +.. c:enum:: nvme_cmd_format_ses Format NVM - Secure Erase Settings @@ -13136,7 +14343,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_ns_mgmt_sel +.. c:enum:: nvme_ns_mgmt_sel Namespace Management - Select @@ -13151,7 +14358,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_ns_attach_sel +.. c:enum:: nvme_ns_attach_sel Namespace Attachment - Select @@ -13166,7 +14373,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_fw_commit_ca +.. c:enum:: nvme_fw_commit_ca Firmware Commit - Commit Action @@ -13210,7 +14417,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_directive_dtype +.. c:enum:: nvme_directive_dtype Directive Types @@ -13225,7 +14432,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_directive_receive_doper +.. c:enum:: nvme_directive_receive_doper Directive Receive Directive Operation @@ -13242,7 +14449,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_directive_send_doper +.. c:enum:: nvme_directive_send_doper Directive Send Directive Operation @@ -13257,7 +14464,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_directive_send_identify_endir +.. c:enum:: nvme_directive_send_identify_endir Enable Directive @@ -13270,7 +14477,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_sanitize_sanact +.. c:enum:: nvme_sanitize_sanact Sanitize Action @@ -13294,7 +14501,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_dst_stc +.. c:enum:: nvme_dst_stc Action taken by the Device Self-test command @@ -13306,6 +14513,9 @@ true if **status** is of the specified type and value ``NVME_DST_STC_LONG`` Start an extended device self-test operation +``NVME_DST_STC_HOST_INIT`` + Start a Host-Initiated Refresh operation + ``NVME_DST_STC_VS`` Start a vendor specific device self-test operation @@ -13315,7 +14525,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_virt_mgmt_act +.. c:enum:: nvme_virt_mgmt_act Virtualization Management - Action @@ -13337,7 +14547,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_virt_mgmt_rt +.. c:enum:: nvme_virt_mgmt_rt Virtualization Management - Resource Type @@ -13352,7 +14562,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_ns_write_protect_cfg +.. c:enum:: nvme_ns_write_protect_cfg Write Protection - Write Protection State @@ -13373,7 +14583,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_log_ana_lsp +.. c:enum:: nvme_log_ana_lsp Asymmetric Namespace Access - Return Groups Only @@ -13386,7 +14596,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_log_phy_rx_eom_action +.. c:enum:: nvme_log_phy_rx_eom_action Physical Interface Receiver Eye Opening Measurement Action @@ -13404,7 +14614,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_log_phy_rx_eom_quality +.. c:enum:: nvme_log_phy_rx_eom_quality Physical Interface Receiver Eye Opening Measurement Quality @@ -13422,7 +14632,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_pevent_log_action +.. c:enum:: nvme_pevent_log_action Persistent Event Log - Action @@ -13440,7 +14650,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_feat_tmpthresh_thsel +.. c:enum:: nvme_feat_tmpthresh_thsel Temperature Threshold - Threshold Type Select @@ -13455,7 +14665,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_features_async_event_config_flags +.. c:enum:: nvme_features_async_event_config_flags Asynchronous Event Configuration configuration flags @@ -13492,7 +14702,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_feat_plm_window_select +.. c:enum:: nvme_feat_plm_window_select Predictable Latency Per NVM Set Log @@ -13507,7 +14717,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_feat_resv_notify_flags +.. c:enum:: nvme_feat_resv_notify_flags Reservation Notification Configuration @@ -13525,7 +14735,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_feat_nswpcfg_state +.. c:enum:: nvme_feat_nswpcfg_state Write Protection - Write Protection State @@ -13546,7 +14756,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_fctype +.. c:enum:: nvme_fctype Fabrics Command Types @@ -13573,7 +14783,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_data_tfr +.. c:enum:: nvme_data_tfr Data transfer direction of the command @@ -13594,7 +14804,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_io_opcode +.. c:enum:: nvme_io_opcode Opcodes for I/O Commands @@ -13657,10 +14867,13 @@ true if **status** is of the specified type and value ``nvme_zns_cmd_append`` Zone Append +``nvme_cmd_fabric`` + Fabric Commands -.. c:type:: enum nvme_kv_opcode + +.. c:enum:: nvme_kv_opcode Opcodes for KV Commands @@ -13699,7 +14912,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_io_control_flags +.. c:enum:: nvme_io_control_flags I/O control flags @@ -13708,6 +14921,9 @@ true if **status** is of the specified type and value ``NVME_IO_DTYPE_STREAMS`` Directive Type Streams +``NVME_IO_NSZ`` + Namespace Zeroes + ``NVME_IO_STC`` Storage Tag Check @@ -13738,7 +14954,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_io_dsm_flags +.. c:enum:: nvme_io_dsm_flags Dataset Management flags @@ -13792,7 +15008,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_dsm_attributes +.. c:enum:: nvme_dsm_attributes Dataset Management attributes @@ -13810,7 +15026,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_resv_rtype +.. c:enum:: nvme_resv_rtype Reservation Type Encoding @@ -13837,7 +15053,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_resv_racqa +.. c:enum:: nvme_resv_racqa Reservation Acquire - Reservation Acquire Action @@ -13855,7 +15071,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_resv_rrega +.. c:enum:: nvme_resv_rrega Reservation Register - Reservation Register Action @@ -13873,7 +15089,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_resv_cptpl +.. c:enum:: nvme_resv_cptpl Reservation Register - Change Persist Through Power Loss State @@ -13893,7 +15109,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_resv_rrela +.. c:enum:: nvme_resv_rrela Reservation Release - Reservation Release Action @@ -13908,7 +15124,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_zns_send_action +.. c:enum:: nvme_zns_send_action Zone Management Send - Zone Send Action @@ -13938,7 +15154,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_zns_recv_action +.. c:enum:: nvme_zns_recv_action Zone Management Receive - Zone Receive Action Specific Features @@ -13953,7 +15169,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_zns_report_options +.. c:enum:: nvme_zns_report_options Zone Management Receive - Zone Receive Action Specific Field @@ -13986,7 +15202,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_io_mgmt_recv_mo +.. c:enum:: nvme_io_mgmt_recv_mo I/O Management Receive - Management Operation @@ -13998,7 +15214,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_io_mgmt_send_mo +.. c:enum:: nvme_io_mgmt_send_mo I/O Management Send - Management Operation @@ -14010,7 +15226,7 @@ true if **status** is of the specified type and value -.. c:type:: struct nvme_ns_mgmt_host_sw_specified +.. c:struct:: nvme_ns_mgmt_host_sw_specified Namespace management Host Software Specified Fields. @@ -14130,3 +15346,598 @@ true if **status** is of the specified type and value + + +.. c:enum:: nvme_lm_cdq_fields + + Controller Data Queue command fields + +**Constants** + +``NVME_LM_CDQ_MOS_SHIFT`` + Shift to set Management Operation Specific (MOS) field + +``NVME_LM_CDQ_MOS_MASK`` + Mask to set MOS field + +``NVME_LM_CDQ_SEL_SHIFT`` + Shift to set Select (SEL) field + +``NVME_LM_CDQ_SEL_MASK`` + Mask to set SEL field + +``NVME_LM_SEL_CREATE_CDQ`` + Create CDQ select option + +``NVME_LM_SEL_DELETE_CDQ`` + Delete CDQ select option + +``NVME_LM_QT_SHIFT`` + Shift amount to set Queue Type (QT) field relative to MOS + +``NVME_LM_QT_MASK`` + Mask to set QT field relative to MOS + +``NVME_LM_QT_USER_DATA_MIGRATION_QUEUE`` + User Data Migration Queue type + +``NVME_LM_CREATE_CDQ_PC`` + Physically Contiguous (PC) + +``NVME_LM_CREATE_CDQ_CNTLID_SHIFT`` + Shift amount to set CNTLID field relative to MOS + +``NVME_LM_CREATE_CDQ_CNTLID_MASK`` + Mask to set CNTLID field relative to MOS + +``NVME_LM_DELETE_CDQ_CDQID_SHIFT`` + Shift amount to set CDQID field for deletion + +``NVME_LM_DELETE_CDQ_CDQID_MASK`` + Mask to set CDQID field for deletion + +``NVME_LM_CREATE_CDQ_CDQID_SHIFT`` + Shift amount to get CDQID field from Create response in + completion dword0 + +``NVME_LM_CREATE_CDQ_CDQID_MASK`` + Mask to get CNTLID field from Create response in + completion dword0 + + + + +.. c:enum:: nvme_lm_track_send_fields + + Track Send command fields + +**Constants** + +``NVME_LM_TRACK_SEND_MOS_SHIFT`` + Shift to set Management Operation Specific (MOS) field + +``NVME_LM_TRACK_SEND_MOS_MASK`` + Mask to set MOS field + +``NVME_LM_TRACK_SEND_SEL_SHIFT`` + Shift to set Select (SEL) field + +``NVME_LM_TRACK_SEND_SEL_MASK`` + Mask to set SEL field + +``NVME_LM_SEL_LOG_USER_DATA_CHANGES`` + Log User Data Changes select option + +``NVME_LM_SEL_TRACK_MEMORY_CHANGES`` + Track Memory Changes select option + +``NVME_LM_LACT_SHIFT`` + Shift to set Logging Action (LACT) relative to MOS + +``NVME_LM_LACT_MASK`` + Mask to set LACT relative to MOS + +``NVME_LM_LACT_STOP_LOGGING`` + The controller shall stop logging user data changes to + namespaces attached to the controller associated with the + User Data Migration Queue specified in the CDQ ID. + +``NVME_LM_LACT_START_LOGGING`` + The controller shall start logging user data changes to + namespaces attached to the controller associated with the + User Data Migration Queue into that User Data Migration + Queue where those user data changes are caused by the + controller associated with that User Data Migration Queue + processing commands. + + + + +.. c:enum:: nvme_lm_migration_send_fields + + Migration Send command fields + +**Constants** + +``NVME_LM_MIGRATION_SEND_MOS_SHIFT`` + Shift to set Management Operation Specific (MOS) + field + +``NVME_LM_MIGRATION_SEND_MOS_MASK`` + Mask to set MOS field + +``NVME_LM_MIGRATION_SEND_SEL_SHIFT`` + Shift amount to set Select (SEL) field + +``NVME_LM_MIGRATION_SEND_SEL_MASK`` + Mask to set SEL field + +``NVME_LM_SEL_SUSPEND`` + Migration Send - Suspend + +``NVME_LM_SEL_RESUME`` + Migration Send - Resume + +``NVME_LM_SEL_SET_CONTROLLER_STATE`` + Migration Send - Set Controller State + +``NVME_LM_MIGRATION_SEND_UIDX_SHIFT`` + Shift to set UUID Index (UIDX) + +``NVME_LM_MIGRATION_SEND_UIDX_MASK`` + Mask to set UIDX + +``NVME_LM_DUDMQ`` + Delete User Data Migration Queue + +``NVME_LM_STYPE_SHIFT`` + Shift amount to set Suspend Type (STYPE) + +``NVME_LM_STYPE_MASK`` + Mask to set STYPE + +``NVME_LM_STYPE_SUSPEND_NOTIFICATION`` + Suspend Notification - The specified controller is + going to be suspended in the future with a + subsequent Migration Send command + +``NVME_LM_STYPE_SUSPEND`` + Suspend - Suspend the controller + +``NVME_LM_SUSPEND_CNTLID_SHIFT`` + Shift amount to set Controller ID (CNTLID) when SEL + is Suspend + +``NVME_LM_SUSPEND_CNTLID_MASK`` + Mask to set CNTLID with SEL Suspend + +``NVME_LM_RESUME_CNTLID_SHIFT`` + Shift amount to set Controller ID (CNTLID) when SEL + is Resume + +``NVME_LM_RESUME_CNTLID_MASK`` + Mask to set CNTLID when SEL is Resume + +``NVME_LM_SEQIND_SHIFT`` + Shift amount to set Sequence Indicator (SEQIND) + field relative to MOS + +``NVME_LM_SEQIND_MASK`` + Mask to set SEQIND field relative to MOS + +``NVME_LM_SEQIND_NOT_FIRST_NOT_LAST`` + This command is not the first or last of a sequence + of two or more Migration Send commands with this + management operation used to transfer the controller + state from host to controller + +``NVME_LM_SEQIND_FIRST`` + This command is the first of a sequence of two or + more Migration Send commands + +``NVME_LM_SEQIND_LAST`` + This command is the last command of a sequence of + two or more Migration Send commands + +``NVME_LM_SEQIND_ENTIRE`` + This Migration Send command is the only command and + contains the entire controller state for this + management operation + +``NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT`` + Shift amount to set Controller State UUID Index + (CSUUIDI) + +``NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK`` + Mask to set CSUUIDI + +``NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT`` + Shift amount to set Controller State Version Index + (CSVI) + +``NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK`` + Mask to set CSVI + +``NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT`` + Shift amount to set Controller ID (CNTLID) when SEL + is Set Controller State + +``NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK`` + Mask to set CNTLID when SEL is Set Controller State + + + + +.. c:enum:: nvme_lm_migration_recv_fields + + Migration Receive command fields + +**Constants** + +``NVME_LM_MIGRATION_RECV_MOS_SHIFT`` + Shift amount to set Management Specific Operation + (MOS) field + +``NVME_LM_MIGRATION_RECV_MOS_MASK`` + Mask to set MOS field + +``NVME_LM_MIGRATION_RECV_SEL_SHIFT`` + Shift amount to set Select (SEL) field + +``NVME_LM_MIGRATION_RECV_SEL_MASK`` + Mask to set SEL field + +``NVME_LM_SEL_GET_CONTROLLER_STATE`` + Get Controller State select option + +``NVME_LM_MIGRATION_RECV_UIDX_SHIFT`` + Shift to set UUID Index (UIDX) + +``NVME_LM_MIGRATION_RECV_UIDX_MASK`` + Mask to set UIDX + +``NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT`` + Shift amount to set Controller State Version Index + (CSVI) relative to MOS + +``NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK`` + Mask to set CSVI relative to MOS + +``NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT`` + Shift amount to set Controller State UUID Index + Parameter (CSUIDXP) + +``NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK`` + Mask to set CSUIDXP + +``NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT`` + Shift amount to set Controller State UUID Index + (CSUUIDI) + +``NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK`` + Mask to set CSUUIDI + +``NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT`` + Shift amount to set Controller ID (CNTLID) + +``NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK`` + Mask to set CNTLID + +``NVME_LM_GET_CONTROLLER_STATE_CSUP`` + Controller Suspended + + + + +.. c:struct:: nvme_lm_io_submission_queue_data + + I/O Submission Queue data structure. Fields related to the contents of Create I/O Submission Queue command that created an I/O Submission Queue. + +**Definition** + +:: + + struct nvme_lm_io_submission_queue_data { + __le64 iosqprp1; + __le16 iosqqsize; + __le16 iosqqid; + __le16 iosqcqid; + __le16 iosqa; + __le16 iosqhp; + __le16 iosqtp; + __u8 rsvd20[4]; + }; + +**Members** + +``iosqprp1`` + I/O Submission PRP Entry 1 (IOSQPRP1) + +``iosqqsize`` + I/O Submission Queue Size (IOSQQSIZE) + +``iosqqid`` + I/O Submission Queue Identifier (IOSQQID) + +``iosqcqid`` + I/O Completion Queue Identifier (IOSQCQID) + +``iosqa`` + I/O Submission Queue Attributes (IOSQA) + +``iosqhp`` + I/O Submission Queue Head Pointer (IOSQHP) + +``iosqtp`` + I/O Submission Queue Tail Pointer (IOSQTP) + +``rsvd20`` + Reserved + + + + + +.. c:struct:: nvme_lm_io_completion_queue_data + + I/O Completion Queue data structure. Fields related to the contents of Create I/O Completion Queue command that created an I/O Completion Queue. + +**Definition** + +:: + + struct nvme_lm_io_completion_queue_data { + __le64 iocqprp1; + __le16 iocqqsize; + __le16 iocqqid; + __le16 iocqhp; + __le16 iocqtp; + __le32 iocqa; + __u8 rsvd20[4]; + }; + +**Members** + +``iocqprp1`` + I/O Completion Queue PRP Entry 1 (IOCQPRP1) + +``iocqqsize`` + I/O Completion Queue Size (IOCQQSIZE) + +``iocqqid`` + I/O Completion Queue Identifier (IOCQQID) + +``iocqhp`` + I/O Completion Queue Head Pointer (IOCQHP) + +``iocqtp`` + I/O Completion Queue Tail Pointer (IOCQTP) + +``iocqa`` + I/O Completion Queue Attributes (IOCQA) + +``rsvd20`` + Reserved + + + + + +.. c:struct:: nvme_lm_nvme_controller_state_data_header + + Controller State data structure header + +**Definition** + +:: + + struct nvme_lm_nvme_controller_state_data_header { + __le16 ver; + __le16 niosq; + __le16 niocq; + __le16 rsvd6; + }; + +**Members** + +``ver`` + The version of this data structure. + +``niosq`` + The number of I/O Submission Queues contained in this data structure. + +``niocq`` + The number of I/O Completion Queues contained in this data structure. + +``rsvd6`` + Reserved + + + + + +.. c:struct:: nvme_lm_nvme_controller_state_data + + NVMe Controller State data structure describes the state of a NVMe Controller's I/O Submission and I/O Completion queues + +**Definition** + +:: + + struct nvme_lm_nvme_controller_state_data { + struct nvme_lm_nvme_controller_state_data_header hdr; + union { + struct nvme_lm_io_submission_queue_data sqs[0]; + struct nvme_lm_io_completion_queue_data cqs[0]; + }; + }; + +**Members** + +``hdr`` + Header + +``{unnamed_union}`` + anonymous + +``sqs`` + I/O Submission Queue list + +``cqs`` + I/O Completion Queue list + + + + + +.. c:struct:: nvme_lm_controller_state_data_header + + Controller State data header structure describes the contents of the Controller State data + +**Definition** + +:: + + struct nvme_lm_controller_state_data_header { + __le16 ver; + __u8 csattr; + __u8 rsvd3[13]; + __u8 nvmecss[16]; + __u8 vss[16]; + }; + +**Members** + +``ver`` + Version of this data structure + +``csattr`` + Controller state attributes + +``rsvd3`` + Reserved + +``nvmecss`` + NVMe Controller state size in dwords + +``vss`` + Vendor specific size in dowrds + + + + + +.. c:struct:: nvme_lm_controller_state_data + + Controller State data structure contains data on the controller's state. + +**Definition** + +:: + + struct nvme_lm_controller_state_data { + struct nvme_lm_controller_state_data_header hdr; + struct nvme_lm_nvme_controller_state_data data; + }; + +**Members** + +``hdr`` + Header + +``data`` + Data + + + + + +.. c:enum:: nvme_lm_queue_attributes + + I/O Submission and I/O Completion Queue Attributes + +**Constants** + +``NVME_LM_IOSQPC_MASK`` + Mask to get the Physically Contiguous (PC) bit for this I/O + submission queue. + +``NVME_LM_IOSQPC_SHIFT`` + Shift to get the PC bit for this I/O submission queue + +``NVME_LM_IOSQPRIO_MASK`` + Mask to get the Priority for this I/O submission queue. + +``NVME_LM_IOSQPRIO_SHIFT`` + Shift to get the Priority for this I/O submission queue. + +``NVME_LM_IOCQPC_MASK`` + Mask to get the Physicaly Contiguous (PC) bit for this I/O + completion queue. + +``NVME_LM_IOCQPC_SHIFT`` + Shift to get the PC bit for this I/O completion queue. + +``NVME_LM_IOCQIEN_MASK`` + Mask to get the Interrupts Enabled bit for this I/O completion + queue + +``NVME_LM_IOCQIEN_SHIFT`` + Shift to get the Interrupts Enabled bit for this I/O completion + +``NVME_LM_S0PT_MASK`` + Mask to get the value of the Phase Tag bit for Slot 0 of this I/O + completion queue. + +``NVME_LM_S0PT_SHIFT`` + Shift to get the value of the Phase Tag bit for Slot 0 of this I/O + completion queue. + +``NVME_LM_IOCQIV_MASK`` + Mask to get the Interrupt Vector (IV) for this I/O completion + queue. + +``NVME_LM_IOCQIV_SHIFT`` + Shift to get the IV for this I/O completion queue. + + + + +.. c:enum:: nvme_lm_ctrl_data_queue_fid + + Controller Data Queue - Set Feature + +**Constants** + +``NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK`` + Mask to set Enable Tail Pointer Trigger (ETPT) + +``NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT`` + Shift to set ETPT + + + + +.. c:struct:: nvme_lm_ctrl_data_queue_fid_data + + Get Controller Data Queue feature data + +**Definition** + +:: + + struct nvme_lm_ctrl_data_queue_fid_data { + __le32 hp; + __le32 tpt; + }; + +**Members** + +``hp`` + Head Pointer + +``tpt`` + Tail Pointer Trigger + + + diff --git a/doc/rst/util.rst b/doc/rst/util.rst index f8d4a52..6d024ed 100644 --- a/doc/rst/util.rst +++ b/doc/rst/util.rst @@ -7,7 +7,7 @@ libnvme utility functions -.. c:type:: enum nvme_connect_err +.. c:enum:: nvme_connect_err nvme connect error codes @@ -487,7 +487,9 @@ If **s** starts with **prefix**, then return a pointer within **s** at the first character after the matched **prefix**. NULL otherwise. -.. c:function:: round_up (val, mult) +.. c:macro:: round_up + +``round_up (val, mult)`` Round a value **val** to the next multiple specified by **mult**. @@ -570,7 +572,7 @@ Pointer to the next element in the array. -.. c:type:: enum nvme_version +.. c:enum:: nvme_version Selector for version to be returned by **nvme_get_version** diff --git a/examples/mi-conf.c b/examples/mi-conf.c index 4fdd405..e47d281 100644 --- a/examples/mi-conf.c +++ b/examples/mi-conf.c @@ -25,9 +25,9 @@ #include -#define MCTP_DBUS_NAME "xyz.openbmc_project.MCTP" -#define MCTP_DBUS_PATH "/xyz/openbmc_project/mctp" -#define MCTP_DBUS_EP_IFACE "au.com.CodeConstruct.MCTP.Endpoint" +#define MCTP_DBUS_NAME "au.com.codeconstruct.MCTP1" +#define MCTP_DBUS_PATH "/au/com/codeconstruct/mctp1" +#define MCTP_DBUS_EP_IFACE "au.com.codeconstruct.MCTP.Endpoint1" static int parse_mctp(const char *devstr, unsigned int *net, uint8_t *eid) { @@ -87,7 +87,8 @@ int set_local_mtu(DBusConnection *bus, unsigned int net, uint8_t eid, char *ep_path; int rc; - rc = asprintf(&ep_path, "%s/%u/%hhu", MCTP_DBUS_PATH, net, eid); + rc = asprintf(&ep_path, "%s/networks/%u/endpoints/%hhu", MCTP_DBUS_PATH, + net, eid); if (rc < 0) { warn("Failed to create dbus path"); return -1; diff --git a/examples/telemetry-listen.c b/examples/telemetry-listen.c index 9aae8b0..e38a8ad 100644 --- a/examples/telemetry-listen.c +++ b/examples/telemetry-listen.c @@ -50,8 +50,8 @@ static void save_telemetry(nvme_ctrl_t c) return; s = time(NULL); - ret = snprintf(buf, sizeof(buf), "/var/log/%s-telemetry-%ld", - nvme_ctrl_get_subsysnqn(c), s); + ret = snprintf(buf, sizeof(buf), "/var/log/%s-telemetry-%llu", + nvme_ctrl_get_subsysnqn(c), (unsigned long long)s); if (ret < 0) { free(log); return; diff --git a/internal/meson.build b/internal/meson.build index 744f83e..99003a8 100644 --- a/internal/meson.build +++ b/internal/meson.build @@ -21,10 +21,4 @@ config_dep = declare_dependency( sources: config_h) config_h_path = meson.current_build_dir() / 'config.h' - -add_project_arguments( - [ - '-include', config_h_path, - ], - language : 'c', -) +config_h_arg = [ '-include', config_h_path ] diff --git a/libnvme.spec.in b/libnvme.spec.in index ea263ce..82cea0f 100644 --- a/libnvme.spec.in +++ b/libnvme.spec.in @@ -21,6 +21,8 @@ Provides: libnvme.so.1 This package provides header files to include and libraries to link with for Linux-native nvme device maangement. +%define _prefix @PREFIX@ + %prep %autosetup -c diff --git a/libnvme/meson.build b/libnvme/meson.build index b5b99fc..c06c07f 100644 --- a/libnvme/meson.build +++ b/libnvme/meson.build @@ -62,9 +62,9 @@ if build_python_bindings # Set the PYTHONPATH so that we can run the # tests directly from the build directory. test_env = environment() - test_env.append('MALLOC_PERTURB_', '0') - test_env.append('PYTHONPATH', join_paths(meson.current_build_dir(), '..')) - test_env.append('PYTHONMALLOC', 'malloc') + test_env.set('MALLOC_PERTURB_', '90') + test_env.prepend('PYTHONPATH', join_paths(meson.current_build_dir(), '..')) + test_env.set('PYTHONMALLOC', 'malloc') # Test section test('python-import-libnvme', python3, args: ['-c', 'from libnvme import nvme'], env: test_env, depends: pynvme_clib) diff --git a/libnvme/nvme.i b/libnvme/nvme.i index eb94cac..4ede50e 100644 --- a/libnvme/nvme.i +++ b/libnvme/nvme.i @@ -357,6 +357,9 @@ struct nvme_subsystem { }; struct nvme_ctrl { + %immutable name; + %immutable subsystem; + %immutable state; %immutable sysfs_dir; %immutable address; %immutable firmware; @@ -369,34 +372,67 @@ struct nvme_ctrl { %immutable subsysnqn; %immutable traddr; %immutable trsvcid; - %immutable dhchap_host_key; - %immutable dhchap_key; %immutable cntrltype; + %immutable cntlid; %immutable dctype; - %immutable discovery_ctrl; + %immutable phy_slot; %immutable discovered; - %immutable persistent; - char *sysfs_dir; - char *address; - char *firmware; - char *model; - char *numa_node; - char *queue_count; - char *serial; - char *sqsize; - char *transport; - char *subsysnqn; - char *traddr; - char *trsvcid; + + const char *cntrltype; // Do not put in %extend because there's no getter method in libnvme.map + const char *dctype; // Do not put in %extend because there's no getter method in libnvme.map + const bool discovered; // Do not put in %extend because there's no getter method in libnvme.map + %extend { - char *dhchap_host_key: - char *dhchap_key; + /** + * By putting these attributes in an %extend block, we're + * forcing SWIG to invoke getter/setter methods instead of + * accessing the members directly. + * + * For example, SWIG will generate code like this: + * name = nvme_ctrl_name_get(ctrl) + * + * instead of that: + * name = ctrl->name + */ + const char *name; + const char *state; + const char *sysfs_dir; + const char *address; + const char *firmware; + const char *model; + const char *numa_node; + const char *queue_count; + const char *serial; + const char *sqsize; + const char *transport; + const char *subsysnqn; + const char *traddr; + const char *trsvcid; + const char *cntlid; + const char *phy_slot; + + bool unique_discovery_ctrl; + bool discovery_ctrl; + bool persistent; + + char *keyring; + char *tls_key_identity; + char *tls_key; + + /** + * We are remapping the following members of the C code's + * nvme_ctrl_t to different names in Python. Here's the mapping: + * + * C code Python (SWIG) + * ===================== ===================== + * ctrl->s ctrl->subsystem + * ctrl->dhchap_key ctrl->dhchap_host_key + * ctrl->dhchap_ctrl_key ctrl->dhchap_key + */ + struct nvme_subsystem *subsystem; // Maps to "s" in the C code + char *dhchap_host_key; // Maps to "dhchap_key" in the C code + char *dhchap_key; // Maps to "dhchap_ctrl_key" in the C code } - char *cntrltype; - char *dctype; - bool discovery_ctrl; - bool discovered; - bool persistent; }; struct nvme_ns { @@ -634,9 +670,13 @@ struct nvme_ns { nvme_free_ctrl($self); } - void discovery_ctrl_set(bool discovery) { - nvme_ctrl_set_discovery_ctrl($self, discovery); - } + %pythoncode %{ + def discovery_ctrl_set(self, discovery: bool): + r"""DEPRECATED METHOD: Use property setter instead (e.g. ctrl.discovery_ctrl = True)""" + import warnings + warnings.warn("Use property setter instead (e.g. ctrl_obj.discovery_ctrl = True)", DeprecationWarning, stacklevel=2) + return _nvme.ctrl_discovery_ctrl_set(self, discovery) + %} bool init(struct nvme_host *h, int instance) { return nvme_init_ctrl(h, $self, instance) == 0; @@ -665,9 +705,13 @@ struct nvme_ns { bool connected() { return nvme_ctrl_get_name($self) != NULL; } - void persistent_set(bool persistent) { - nvme_ctrl_set_persistent($self, persistent); - } + %pythoncode %{ + def persistent_set(self, persistent: bool): + r"""DEPRECATED METHOD: Use property setter instead (e.g. ctrl.persistent = True)""" + import warnings + warnings.warn("Use property setter instead (e.g. ctrl_obj.persistent = True)", DeprecationWarning, stacklevel=2) + return _nvme.ctrl_persistent_set(self, persistent) + %} void rescan() { nvme_rescan_ctrl($self); } @@ -760,15 +804,22 @@ struct nvme_ns { struct nvme_ns* namespaces() { return nvme_ctrl_first_ns($self); } - %immutable name; - const char *name; - %immutable subsystem; - struct nvme_subsystem *subsystem; - %immutable state; - const char *state; } %{ + /********************************************************************** + * SWIG automatically generates getter and setter methods using + * the syntax: [class]_[member]_[get|set]. These need to be mapped + * to the matching methods in libnvme (i.e. those that are defined + * publicly in libnvme.map). Typically, we get the following mapping: + * + * SWIG libnvme.map + * ====================== ======================= + * nvme_ctrl_[member]_get -> nvme_ctrl_get_[member] + * nvme_ctrl_[member]_set -> nvme_ctrl_set_[member] + * + */ + const char *nvme_ctrl_name_get(struct nvme_ctrl *c) { return nvme_ctrl_get_name(c); } @@ -787,7 +838,108 @@ struct nvme_ns { const char *nvme_ctrl_dhchap_host_key_get(struct nvme_ctrl *c) { return nvme_ctrl_get_dhchap_host_key(c); } -%}; + void nvme_ctrl_dhchap_host_key_set(struct nvme_ctrl *c, const char *key) { + nvme_ctrl_set_dhchap_host_key(c, key); + } + + const char *nvme_ctrl_cntlid_get(nvme_ctrl_t c) { + return nvme_ctrl_get_cntlid(c); + } + + bool nvme_ctrl_persistent_get(struct nvme_ctrl *c) { + return nvme_ctrl_is_persistent(c); + } + void nvme_ctrl_persistent_set(struct nvme_ctrl *c, bool persistent) { + nvme_ctrl_set_persistent(c, persistent); + } + + const char *nvme_ctrl_phy_slot_get(nvme_ctrl_t c) { + return nvme_ctrl_get_phy_slot(c); + } + + const char *nvme_ctrl_trsvcid_get(nvme_ctrl_t c) { + return nvme_ctrl_get_trsvcid(c); + } + + const char *nvme_ctrl_traddr_get(nvme_ctrl_t c) { + return nvme_ctrl_get_traddr(c); + } + + const char *nvme_ctrl_subsysnqn_get(nvme_ctrl_t c) { + return nvme_ctrl_get_subsysnqn(c); + } + + const char *nvme_ctrl_transport_get(nvme_ctrl_t c) { + return nvme_ctrl_get_transport(c); + } + + const char *nvme_ctrl_sqsize_get(nvme_ctrl_t c) { + return nvme_ctrl_get_sqsize(c); + } + + const char *nvme_ctrl_serial_get(nvme_ctrl_t c) { + return nvme_ctrl_get_serial(c); + } + + const char *nvme_ctrl_queue_count_get(nvme_ctrl_t c) { + return nvme_ctrl_get_queue_count(c); + } + + const char *nvme_ctrl_numa_node_get(nvme_ctrl_t c) { + return nvme_ctrl_get_numa_node(c); + } + + const char *nvme_ctrl_model_get(nvme_ctrl_t c) { + return nvme_ctrl_get_model(c); + } + + const char *nvme_ctrl_firmware_get(nvme_ctrl_t c) { + return nvme_ctrl_get_firmware(c); + } + + const char *nvme_ctrl_address_get(nvme_ctrl_t c) { + return nvme_ctrl_get_address(c); + } + + const char *nvme_ctrl_sysfs_dir_get(nvme_ctrl_t c) { + return nvme_ctrl_get_sysfs_dir(c); + } + + bool nvme_ctrl_discovery_ctrl_get(struct nvme_ctrl *c) { + return nvme_ctrl_is_discovery_ctrl(c); + } + void nvme_ctrl_discovery_ctrl_set(struct nvme_ctrl *c, bool discovery) { + nvme_ctrl_set_discovery_ctrl(c, discovery); + } + + bool nvme_ctrl_unique_discovery_ctrl_get(nvme_ctrl_t c) { + return nvme_ctrl_is_unique_discovery_ctrl(c); + } + void nvme_ctrl_unique_discovery_ctrl_set(nvme_ctrl_t c, bool unique) { + nvme_ctrl_set_unique_discovery_ctrl(c, unique); + } + + const char *nvme_ctrl_keyring_get(nvme_ctrl_t c) { + return nvme_ctrl_get_keyring(c); + } + void nvme_ctrl_keyring_set(nvme_ctrl_t c, const char *keyring) { + nvme_ctrl_set_keyring(c, keyring); + } + + const char *nvme_ctrl_tls_key_identity_get(nvme_ctrl_t c) { + return nvme_ctrl_get_tls_key_identity(c); + } + void nvme_ctrl_tls_key_identity_set(nvme_ctrl_t c, const char *identity) { + nvme_ctrl_set_tls_key_identity(c, identity); + } + + const char *nvme_ctrl_tls_key_get(nvme_ctrl_t c) { + return nvme_ctrl_get_tls_key(c); + } + void nvme_ctrl_tls_key_set(nvme_ctrl_t c, const char *key) { + nvme_ctrl_set_tls_key(c, key); + } +%} %pythonappend nvme_ns::nvme_ns(struct nvme_subsystem *s, unsigned int nsid) { diff --git a/meson.build b/meson.build index 50f68d1..58b4cc2 100644 --- a/meson.build +++ b/meson.build @@ -7,8 +7,8 @@ # project( 'libnvme', ['c'], - meson_version: '>= 0.50.0', - version: '1.11.1', + meson_version: '>= 0.62.0', + version: '1.12', license: 'LGPL-2.1-or-later', default_options: [ 'c_std=gnu99', @@ -31,7 +31,7 @@ endif ################################################################################ cc = meson.get_compiler('c') -cxx_available = add_languages('cpp', required: false) +cxx_available = add_languages('cpp', required: false, native: false) prefixdir = get_option('prefix') libdir = join_paths(prefixdir, get_option('libdir')) @@ -68,40 +68,34 @@ else endif conf.set('CONFIG_JSONC', json_c_dep.found(), description: 'Is json-c required?') +if get_option('liburing').disabled() + liburing_dep = dependency('', required: false) +else + liburing_dep = dependency('liburing', version: '>=2.2', required: get_option('liburing')) +endif +conf.set('CONFIG_LIBURING', liburing_dep.found(), description: 'Is liburing available?') + if get_option('openssl').disabled() openssl_dep = dependency('', required: false) else openssl_dep = dependency('openssl', - version: '>=1.1.0', + version: '>=3.0.0', required: get_option('openssl'), fallback : ['openssl', 'libssl_dep']) - - if openssl_dep.found() - if openssl_dep.version().version_compare('<2.0.0') - api_version = 1 +endif +if openssl_dep.found() + # Test for LibreSSL v3.x with incomplete OpenSSL v3 APIs + if openssl_dep.type_name() != 'internal' + is_libressl = cc.has_header_symbol('openssl/opensslv.h', + 'LIBRESSL_VERSION_NUMBER', + dependencies: openssl_dep) + has_header = cc.has_header('openssl/core_names.h', + dependencies: openssl_dep) + if is_libressl and not has_header + openssl_dep = dependency('', required: false) endif - - if openssl_dep.version().version_compare('>=3.0.0') - api_version = 3 - endif - - # Test for LibreSSL v3.x with incomplete OpenSSL v3 APIs - if openssl_dep.type_name() != 'internal' - is_libressl = cc.has_header_symbol('openssl/opensslv.h', - 'LIBRESSL_VERSION_NUMBER', - dependencies: openssl_dep) - has_header = cc.has_header('openssl/core_names.h', - dependencies: openssl_dep) - if is_libressl and not has_header - api_version = 1 - endif - endif - - conf.set('CONFIG_OPENSSL_@0@'.format(api_version), true, - description: 'OpenSSL/LibreSSL API version @0@'.format(api_version)) endif endif - conf.set('CONFIG_OPENSSL', openssl_dep.found(), description: 'Is OpenSSL/LibreSSL available?') @@ -236,15 +230,11 @@ conf.set( ), description: 'Is network address and service translation available' ) +dl_dep = dependency('dl', required: false) conf.set( - 'HAVE_GLIBC_IOCTL', - cc.compiles( - '''#include - int ioctl(int fd, unsigned long request, ...); - ''', - name: 'ioctl has glibc-style prototype' - ), - description: 'Is ioctl the glibc interface (rather than POSIX)' + 'HAVE_LIBC_DLSYM', + cc.has_function('dlsym', dependencies: dl_dep), + description: 'Is dlsym function present', ) if cc.has_function_attribute('fallthrough') @@ -258,6 +248,7 @@ substs = configuration_data() substs.set('NAME', meson.project_name()) substs.set('VERSION', meson.project_version()) substs.set('LICENSE', meson.project_license()[0]) +substs.set('PREFIX', prefixdir) configure_file( input: 'libnvme.spec.in', output: 'libnvme.spec', @@ -304,6 +295,7 @@ if meson.version().version_compare('>=0.53.0') 'keyutitls': keyutils_dep.found(), 'libdbus': libdbus_dep.found(), 'Python 3': py3_dep.found(), + 'liburing': liburing_dep.found(), } summary(dep_dict, section: 'Dependencies') conf_dict = { diff --git a/meson_options.txt b/meson_options.txt index 251ae11..051b4ae 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -13,3 +13,4 @@ option('openssl', type : 'feature', value: 'auto', description : 'OpenSSL suppor option('libdbus', type : 'feature', value: 'disabled', description : 'libdbus support') option('json-c', type : 'feature', value: 'auto', description : 'JSON support') option('keyutils', type: 'feature', value: 'auto', description: 'keyutils support') +option('liburing', type : 'feature', value: 'auto', description : 'liburing support') diff --git a/pyproject.toml b/pyproject.toml index 5416f3d..626fb92 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [build-system] -requires = ["mesonpep517", "wheel", "meson==0.61.2", "ninja"] # PEP 508 specifications. +requires = ["mesonpep517", "wheel", "meson", "ninja"] # PEP 508 specifications. build-backend = "mesonpep517.buildapi" [tool.mesonpep517.metadata] diff --git a/src/libnvme-mi.map b/src/libnvme-mi.map index 11b3954..0fb3782 100644 --- a/src/libnvme-mi.map +++ b/src/libnvme-mi.map @@ -1,3 +1,8 @@ +LIBNVME_MI_1_12 { + global: + nvme_mi_mi_xfer; +}; + LIBNVME_MI_1_11 { global: nvme_mi_control; diff --git a/src/libnvme.map b/src/libnvme.map index d60d076..31daf75 100644 --- a/src/libnvme.map +++ b/src/libnvme.map @@ -1,4 +1,15 @@ # SPDX-License-Identifier: LGPL-2.1-or-later +LIBNVME_1.12 { + global: + nvme_lm_cdq; + nvme_lm_track_send; + nvme_lm_migration_send; + nvme_lm_migration_recv; + nvme_lm_set_features_ctrl_data_queue; + nvme_lm_get_features_ctrl_data_queue; + nvmf_exat_ptr_next; +}; + LIBNVME_1.11 { global: nvme_ctrl_get_keyring; diff --git a/src/meson.build b/src/meson.build index 001c3b9..ca27187 100644 --- a/src/meson.build +++ b/src/meson.build @@ -35,6 +35,7 @@ deps = [ json_c_dep, openssl_dep, keyutils_dep, + liburing_dep, ] mi_deps = [ @@ -54,6 +55,7 @@ libnvme = library( link_args: ['-Wl,--version-script=' + version_script_arg], dependencies: deps, link_depends: mapfile, + c_args: config_h_arg, include_directories: [incdir, internal_incdir], install: true, link_with: libccan, @@ -80,6 +82,7 @@ libnvme_mi = library( 'nvme-mi', # produces libnvme-mi.so mi_sources, version: library_version, + c_args: config_h_arg, link_args: ['-Wl,--version-script=' + mi_version_script_arg], dependencies: mi_deps, link_depends: mi_mapfile, @@ -99,6 +102,7 @@ libnvme_mi_test = library( 'nvme-mi-test', # produces libnvme-mi-test.so mi_sources, dependencies: mi_deps, + c_args: config_h_arg, include_directories: [incdir, internal_incdir], install: false, link_with: libccan, diff --git a/src/nvme/api-types.h b/src/nvme/api-types.h index 4cf8e8c..9126343 100644 --- a/src/nvme/api-types.h +++ b/src/nvme/api-types.h @@ -962,4 +962,141 @@ struct nvme_dim_args { __u8 tas; }; +/** + * struct nvme_lm_cdq_args - Arguments for Controller Data Queue (CDQ) command + * @result: Set on completion to the command's CQE DWORD 0 controller response + * @data: Pointer to data + * @args_size: Length of structure + * @fd: File descriptor of nvme device + * @timeout: Timeout in ms + * @mos: Management Operation Specific (MOS): This field is specific to the SEL type + * @cntlid: Controller ID: For Create CDQ, specifies the target migratable controller + * @cdqid: Controller Data Queue ID (CDQID): For Create CDQ, this field is the CDQID created + * by the controller if no error is present. For Delete CDQ, this field is the CDQID + * to delete. + * @sel: Select (SEL): This field specifies the type of management operation to perform. + * @sz: For Create CDQ, specifies the size of CDQ, in dwords + */ +struct nvme_lm_cdq_args { + __u32 *result; + void *data; + int args_size; + int fd; + __u32 timeout; + __u16 mos; + __u16 cntlid; + __u16 cdqid; + __u8 sel; + __u8 sz; +}; + +/** + * struct nvme_lm_track_send_args - Arguments for the Track Send command + * @result: Set on completion to the command's CQE DWORD 0 controller response + * @args_size: Length of structure + * @fd: File descriptor of nvme device + * @timeout: Timeout in ms + * @mos: Management Operation Specific (MOS): This field is specific to the SEL type + * @cdqid: Controller Data Queue ID (CDQID) + * @sel: Select (SEL): This field specifies the type of management operation to perform + */ +struct nvme_lm_track_send_args { + __u32 *result; + int args_size; + int fd; + __u32 timeout; + __u16 mos; + __u16 cdqid; + __u8 sel; +}; + +/** + * struct nvme_lm_migration_send_args - Arguments for the Migration Send command + * @offset: Offset: This field specifies the offset, in bytes, within the data available to be + * returned and specifies the starting point for that data for what is actually + * returned to the host. + * @result: Set on completion to the command's CQE DWORD 0 controller response + * @data: Pointer to data + * @args_size: Length of structure + * @fd: File descriptor of nvme device + * @timeout: Timeout in ms + * @numd: Number of Dwords (NUMD): This field specifies the number of dwords being transferred + * @mos: Management Operation Specific (MOS): This field is specific to the SEL type + * @cntlid: Controller ID: This field specifies the identifier of the controller to which the + * operation is performed. + * @csuuidi: Controller State UUID Index (CSUUIDI): A non-zero value in this field specifies the + * index to a specific entry in the Vendor Specific Controller State UUID Supported. + * list of the Supported Controller State Formats data structure. + * @sel: Select (SEL): This field specifies the type of management operation to perform. + * @uidx: UUID Index (UIDX): If this field is set to a non-zero value, then the value of this + * field is the index of a UUID in the UUID List (refer to Figure 320) that is used by + * the command. + * @stype: Suspend Type (STYPE): This field specifies the type of suspend. + * @seqind: Sequence Identifier (SEQIND): This field identified the sequences of this Migration + * Send command in relation to other Migration Send commands. + * @csvi: Controller State Version Index (CSVI): A non-zero value in this field specifies the + * index to a specific entry in the NVMe Controller State Version list of the Supported + * Controller State Formats data structure. + * @dudmq: Delete User Data Migration Queue (DUDMQ): If set, the migration queue is deleted + * is deleted as part of the Suspend operation. If cleared, it is retained. + */ +struct nvme_lm_migration_send_args { + __u64 offset; + __u32 *result; + void *data; + int args_size; + int fd; + __u32 timeout; + __u32 numd; + __u16 mos; + __u16 cntlid; + __u16 csuuidi; + __u8 sel; + __u8 uidx; + __u8 stype; + __u8 seqind; + __u8 csvi; + bool dudmq; +}; + +/** + * struct nvme_lm_migration_recv_args - Arguments for the Migration Receive command + * @offset: Offset: This field specifies the offset, in bytes, within the data available to be + * returned and specifies the starting point for that data for what is actually + * returned to the host. + * @result: Set on completion to the command's CQE DWORD 0 controller response + * @data: Pointer to data + * @args_size: Length of structure + * @fd: File descriptor of nvme device + * @timeout: Timeout in ms + * @numd: Number of Dwords (NUMD): This field specifies the number of dwords to return. This + * is a 0's based value. + * @mos: Management Operation Specific (MOS): This field is specific to the SEL type + * @cntlid: Controller ID: This field specifies the identifier of the controller to which the + * operation is performed. + * @csuuidi: Controller State UUID Index (CSUUIDI): A non-zero value in this field specifies the + * index to a specific entry in the Vendor Specific Controller State UUID Supported. + * list of the Supported Controller State Formats data structure. + * @sel: Select (SEL): This field specifies the type of management operation to perform + * @uidx: UUID Index (UIDX): If this field is set to a non-zero value, then the value of this + * field is the index of a UUID in the UUID List (refer to Figure 320) that is used by + * the command. + * @csuidxp: Controller State UUID Index Parameter (CSUIDXP): This field is vendor specific. + */ +struct nvme_lm_migration_recv_args { + __u64 offset; + __u32 *result; + void *data; + int args_size; + int fd; + __u32 timeout; + __u32 numd; + __u16 mos; + __u16 cntlid; + __u16 csuuidi; + __u8 sel; + __u8 uidx; + __u8 csuidxp; +}; + #endif /* _LIBNVME_API_TYPES_H */ diff --git a/src/nvme/ioctl.c b/src/nvme/ioctl.c index ba9d5b1..18b228d 100644 --- a/src/nvme/ioctl.c +++ b/src/nvme/ioctl.c @@ -8,6 +8,9 @@ */ #include #include +#ifdef CONFIG_LIBURING +#include +#endif #include #include #include @@ -20,6 +23,7 @@ #include #include +#include #include #include "ioctl.h" @@ -316,6 +320,115 @@ int nvme_get_log(struct nvme_get_log_args *args) return nvme_submit_admin_passthru(args->fd, &cmd, args->result); } +#ifdef CONFIG_LIBURING +enum { + IO_URING_NOT_AVAILABLE, + IO_URING_AVAILABLE, +} io_uring_kernel_support = IO_URING_NOT_AVAILABLE; + +/* + * gcc specific attribute, call automatically on the library loading. + * if IORING_OP_URING_CMD is not supported, fallback to ioctl interface. + */ +__attribute__((constructor)) +static void nvme_uring_cmd_probe() +{ + struct io_uring_probe *probe = io_uring_get_probe(); + + if (!probe) + return; + + if (!io_uring_opcode_supported(probe, IORING_OP_URING_CMD)) + return; + + io_uring_kernel_support = IO_URING_AVAILABLE; +} + +static int nvme_uring_cmd_setup(struct io_uring *ring) +{ + return io_uring_queue_init(NVME_URING_ENTRIES, ring, + IORING_SETUP_SQE128 | IORING_SETUP_CQE32); +} + +static void nvme_uring_cmd_exit(struct io_uring *ring) +{ + io_uring_queue_exit(ring); +} + +static int nvme_uring_cmd_admin_passthru_async(struct io_uring *ring, struct nvme_get_log_args *args) +{ + struct io_uring_sqe *sqe; + struct nvme_uring_cmd *cmd; + int ret; + + __u32 numd = (args->len >> 2) - 1; + __u16 numdu = numd >> 16, numdl = numd & 0xffff; + + __u32 cdw10 = NVME_SET(args->lid, LOG_CDW10_LID) | + NVME_SET(args->lsp, LOG_CDW10_LSP) | + NVME_SET(!!args->rae, LOG_CDW10_RAE) | + NVME_SET(numdl, LOG_CDW10_NUMDL); + __u32 cdw11 = NVME_SET(numdu, LOG_CDW11_NUMDU) | + NVME_SET(args->lsi, LOG_CDW11_LSI); + __u32 cdw12 = args->lpo & 0xffffffff; + __u32 cdw13 = args->lpo >> 32; + __u32 cdw14 = NVME_SET(args->uuidx, LOG_CDW14_UUID) | + NVME_SET(!!args->ot, LOG_CDW14_OT) | + NVME_SET(args->csi, LOG_CDW14_CSI); + + if (args->args_size < sizeof(struct nvme_get_log_args)) { + errno = EINVAL; + return -1; + } + + sqe = io_uring_get_sqe(ring); + if (!sqe) + return -1; + + cmd = (void *)&sqe->cmd; + cmd->opcode = nvme_admin_get_log_page, + cmd->nsid = args->nsid, + cmd->addr = (__u64)(uintptr_t)args->log, + cmd->data_len = args->len, + cmd->cdw10 = cdw10, + cmd->cdw11 = cdw11, + cmd->cdw12 = cdw12, + cmd->cdw13 = cdw13, + cmd->cdw14 = cdw14, + cmd->timeout_ms = args->timeout, + + sqe->fd = args->fd; + sqe->opcode = IORING_OP_URING_CMD; + sqe->cmd_op = NVME_URING_CMD_ADMIN; + + ret = io_uring_submit(ring); + if (ret < 0) { + errno = -ret; + return -1; + } + + return 0; +} + +static int nvme_uring_cmd_wait_complete(struct io_uring *ring, int n) +{ + struct io_uring_cqe *cqe; + int i, ret; + + for (i = 0; i < n; i++) { + ret = io_uring_wait_cqe(ring, &cqe); + if (ret) { + errno = -ret; + return -1; + } + + io_uring_cqe_seen(ring, cqe); + } + + return n; +} +#endif + int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args) { __u64 offset = 0, xfer, data_len = args->len; @@ -326,6 +439,15 @@ int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args) args->fd = fd; +#ifdef CONFIG_LIBURING + int n = 0; + struct io_uring ring; + + if (io_uring_kernel_support == IO_URING_AVAILABLE) { + if (nvme_uring_cmd_setup(&ring)) + return -1; + } +#endif /* * 4k is the smallest possible transfer unit, so restricting to 4k * avoids having to check the MDTS value of the controller. @@ -344,6 +466,16 @@ int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args) args->len = xfer; args->log = ptr; args->rae = offset + xfer < data_len || retain; +#ifdef CONFIG_LIBURING + if (io_uring_kernel_support == IO_URING_AVAILABLE) { + if (n >= NVME_URING_ENTRIES) { + nvme_uring_cmd_wait_complete(&ring, n); + n = 0; + } + n += 1; + ret = nvme_uring_cmd_admin_passthru_async(&ring, args); + } else +#endif ret = nvme_get_log(args); if (ret) return ret; @@ -352,6 +484,14 @@ int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args) ptr += xfer; } while (offset < data_len); +#ifdef CONFIG_LIBURING + if (io_uring_kernel_support == IO_URING_AVAILABLE) { + ret = nvme_uring_cmd_wait_complete(&ring, n); + nvme_uring_cmd_exit(&ring); + if (ret < 0) + return -1; + } +#endif return 0; } @@ -364,7 +504,7 @@ static int read_ana_chunk(int fd, enum nvme_log_ana_lsp lsp, bool rae, } while (*read < to_read) { - __u32 len = min(log_end - *read, NVME_LOG_PAGE_PDU_SIZE); + __u32 len = min_t(__u32, log_end - *read, NVME_LOG_PAGE_PDU_SIZE); int ret; ret = nvme_get_log_ana(fd, lsp, rae, *read - log, len, *read); @@ -2163,3 +2303,174 @@ int nvme_dim_send(struct nvme_dim_args *args) return nvme_submit_admin_passthru(args->fd, &cmd, args->result); } + + +int nvme_lm_cdq(struct nvme_lm_cdq_args *args) +{ + __u32 cdw10 = NVME_SET(args->sel, LM_CDQ_SEL) | + NVME_SET(args->mos, LM_CDQ_MOS); + __u32 cdw11 = 0, data_len = 0; + int err; + + if (args->sel == NVME_LM_SEL_CREATE_CDQ) { + cdw11 = NVME_SET(args->cntlid, LM_CREATE_CDQ_CNTLID) | + NVME_LM_CREATE_CDQ_PC; + data_len = args->sz << 2; + } else if (args->sel == NVME_LM_SEL_DELETE_CDQ) { + cdw11 = NVME_SET(args->cdqid, LM_DELETE_CDQ_CDQID); + } + + struct nvme_passthru_cmd cmd = { + .opcode = nvme_admin_ctrl_data_queue, + .cdw10 = cdw10, + .cdw11 = cdw11, + .cdw12 = args->sz, + .addr = (__u64)(uintptr_t)args->data, + .data_len = data_len, + .timeout_ms = args->timeout, + }; + + if (args->args_size < sizeof(*args)) { + errno = EINVAL; + return -1; + } + + err = nvme_submit_admin_passthru(args->fd, &cmd, args->result); + + if (!err) + args->cdqid = NVME_GET(cmd.result, LM_CREATE_CDQ_CDQID); + + return err; +} + +int nvme_lm_track_send(struct nvme_lm_track_send_args *args) +{ + __u32 cdw10 = NVME_SET(args->sel, LM_TRACK_SEND_SEL) | + NVME_SET(args->mos, LM_TRACK_SEND_MOS); + + struct nvme_passthru_cmd cmd = { + .opcode = nvme_admin_track_send, + .cdw10 = cdw10, + .cdw11 = args->cdqid, + .timeout_ms = args->timeout, + }; + + if (args->args_size < sizeof(*args)) { + errno = EINVAL; + return -1; + } + + return nvme_submit_admin_passthru(args->fd, &cmd, args->result); +} + +int nvme_lm_migration_send(struct nvme_lm_migration_send_args *args) +{ + __u32 cdw10 = NVME_SET(args->sel, LM_MIGRATION_SEND_SEL) | + NVME_SET(args->mos, LM_MIGRATION_SEND_MOS); + __u32 cdw11 = 0; + + if (args->sel == NVME_LM_SEL_SUSPEND) { + cdw11 = NVME_SET(args->stype, LM_STYPE) | + NVME_SET(args->cntlid, LM_SUSPEND_CNTLID); + if (args->dudmq) + cdw11 |= NVME_LM_DUDMQ; + } else if (args->sel == NVME_LM_SEL_RESUME) { + cdw11 = NVME_SET(args->cntlid, LM_RESUME_CNTLID); + } else if (args->sel == NVME_LM_SEL_SET_CONTROLLER_STATE) { + cdw11 = NVME_SET(args->csuuidi, LM_SET_CONTROLLER_STATE_CSUUIDI) | + NVME_SET(args->csvi, LM_SET_CONTROLLER_STATE_CSVI) | + NVME_SET(args->cntlid, LM_SET_CONTROLLER_STATE_CNTLID); + } + + struct nvme_passthru_cmd cmd = { + .opcode = nvme_admin_migration_send, + .cdw10 = cdw10, + .cdw11 = cdw11, + .cdw12 = (__u32)args->offset, + .cdw13 = (__u32)(args->offset >> 32), + .cdw14 = NVME_SET(args->uidx, LM_MIGRATION_SEND_UIDX), + .cdw15 = args->numd, + .addr = (__u64)(uintptr_t)args->data, + .data_len = args->numd << 2, + .timeout_ms = args->timeout, + }; + + if (args->args_size < sizeof(*args)) { + errno = EINVAL; + return -1; + } + + return nvme_submit_admin_passthru(args->fd, &cmd, args->result); +} + +int nvme_lm_migration_recv(struct nvme_lm_migration_recv_args *args) +{ + __u32 cdw10 = NVME_SET(args->sel, LM_MIGRATION_RECV_SEL) | + NVME_SET(args->mos, LM_MIGRATION_RECV_MOS); + __u32 cdw11 = 0, data_len = 0; + + if (args->sel == NVME_LM_SEL_GET_CONTROLLER_STATE) { + cdw11 = NVME_SET(args->csuidxp, LM_GET_CONTROLLER_STATE_CSUIDXP) | + NVME_SET(args->csuuidi, LM_GET_CONTROLLER_STATE_CSUUIDI) | + NVME_SET(args->cntlid, LM_GET_CONTROLLER_STATE_CNTLID); + data_len = (args->numd + 1 /*0's based*/) << 2; + } + + struct nvme_passthru_cmd cmd = { + .opcode = nvme_admin_migration_receive, + .cdw10 = cdw10, + .cdw11 = cdw11, + .cdw12 = (__u32)args->offset, + .cdw13 = (__u32)(args->offset >> 32), + .cdw14 = NVME_SET(args->uidx, LM_MIGRATION_RECV_UIDX), + .cdw15 = args->numd, + .addr = (__u64)(uintptr_t)args->data, + .data_len = data_len, + .timeout_ms = args->timeout, + }; + + if (args->args_size < sizeof(*args)) { + errno = EINVAL; + return -1; + } + + return nvme_submit_admin_passthru(args->fd, &cmd, args->result); +} + +int nvme_lm_set_features_ctrl_data_queue(int fd, __u16 cdqid, __u32 hp, __u32 tpt, bool etpt, + __u32 *result) +{ + struct nvme_set_features_args args = { + .args_size = sizeof(args), + .fd = fd, + .fid = NVME_FEAT_FID_CTRL_DATA_QUEUE, + .nsid = NVME_NSID_NONE, + .cdw11 = cdqid | NVME_SET(tpt, LM_CTRL_DATA_QUEUE_ETPT), + .cdw12 = hp, + .cdw13 = tpt, + .save = false, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .result = result, + }; + + return nvme_set_features(&args); +} + +int nvme_lm_get_features_ctrl_data_queue(int fd, __u16 cdqid, + struct nvme_lm_ctrl_data_queue_fid_data *data, + __u32 *result) +{ + struct nvme_get_features_args args = { + .args_size = sizeof(args), + .fd = fd, + .fid = NVME_FEAT_FID_CTRL_DATA_QUEUE, + .nsid = NVME_NSID_NONE, + .cdw11 = cdqid, + .data = data, + .data_len = sizeof(*data), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .result = result, + }; + + return nvme_get_features(&args); +} diff --git a/src/nvme/ioctl.h b/src/nvme/ioctl.h index 7d407a0..b1449f9 100644 --- a/src/nvme/ioctl.h +++ b/src/nvme/ioctl.h @@ -40,6 +40,11 @@ */ #define NVME_LOG_PAGE_PDU_SIZE 4096 +/* + * should not exceed CAP.MQES, 16 is rational for most ssd + */ +#define NVME_URING_ENTRIES 16 + /** * struct nvme_passthru_cmd - nvme passthrough command structure * @opcode: Operation code, see &enum nvme_io_opcodes and &enum nvme_admin_opcodes @@ -180,6 +185,8 @@ struct nvme_uring_cmd { /* io_uring async commands: */ #define NVME_URING_CMD_IO _IOWR('N', 0x80, struct nvme_uring_cmd) #define NVME_URING_CMD_IO_VEC _IOWR('N', 0x81, struct nvme_uring_cmd) +#define NVME_URING_CMD_ADMIN _IOWR('N', 0x82, struct nvme_uring_cmd) +#define NVME_URING_CMD_ADMIN_VEC _IOWR('N', 0x83, struct nvme_uring_cmd) #endif /* _UAPI_LINUX_NVME_IOCTL_H */ @@ -1363,6 +1370,30 @@ static inline int nvme_get_nsid_log(int fd, bool rae, return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } +static inline int nvme_get_endgid_log(int fd, bool rae, enum nvme_cmd_get_log_lid lid, __u16 endgid, + __u32 len, void *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = lid, + .len = len, + .nsid = NVME_NSID_NONE, + .csi = NVME_CSI_NVM, + .lsi = endgid, + .lsp = NVME_LOG_LSP_NONE, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); +} + static inline int nvme_get_log_simple(int fd, enum nvme_cmd_get_log_lid lid, __u32 len, void *log) { @@ -1526,14 +1557,16 @@ static inline int nvme_get_log_device_self_test(int fd, } /** - * nvme_get_log_create_telemetry_host() - Create host telemetry log + * nvme_get_log_create_telemetry_host_mcda() - Create host telemetry log * @fd: File descriptor of nvme device + * @mcda: Maximum Created Data Area * @log: Userspace address of the log payload * * Return: The nvme command status if a response was received (see * &enum nvme_status_field) or -1 with errno set otherwise. */ -static inline int nvme_get_log_create_telemetry_host(int fd, +static inline int nvme_get_log_create_telemetry_host_mcda(int fd, + enum nvme_telemetry_da mcda, struct nvme_telemetry_log *log) { struct nvme_get_log_args args = { @@ -1548,7 +1581,7 @@ static inline int nvme_get_log_create_telemetry_host(int fd, .nsid = NVME_NSID_NONE, .csi = NVME_CSI_NVM, .lsi = NVME_LOG_LSI_NONE, - .lsp = NVME_LOG_TELEM_HOST_LSP_CREATE, + .lsp = (__u8)((mcda << 1) | NVME_LOG_TELEM_HOST_LSP_CREATE), .uuidx = NVME_UUID_NONE, .rae = false, .ot = false, @@ -1556,6 +1589,20 @@ static inline int nvme_get_log_create_telemetry_host(int fd, return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } +/** + * nvme_get_log_create_telemetry_host() - Create host telemetry log + * @fd: File descriptor of nvme device + * @log: Userspace address of the log payload + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +static inline int nvme_get_log_create_telemetry_host(int fd, + struct nvme_telemetry_log *log) +{ + return nvme_get_log_create_telemetry_host_mcda(fd, NVME_TELEMETRY_DA_CTRL_DETERMINE, log); +} + /** * nvme_get_log_telemetry_host() - Get Telemetry Host-Initiated log page * @fd: File descriptor of nvme device @@ -2072,6 +2119,55 @@ static inline int nvme_get_log_boot_partition(int fd, bool rae, return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } +/** + * nvme_get_log_rotational_media_info() - Retrieve Rotational Media Information Log + * @fd: File descriptor of nvme device + * @endgid: Endurance Group Identifier + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_rotational_media_info(int fd, __u16 endgid, __u32 len, + struct nvme_rotational_media_info_log *log) +{ + return nvme_get_endgid_log(fd, false, NVME_LOG_LID_ROTATIONAL_MEDIA_INFO, endgid, len, log); +} + +/** + * nvme_get_log_dispersed_ns_participating_nss() - Retrieve Dispersed Namespace Participating NVM + * Subsystems Log + * @fd: File descriptor of nvme device + * @nsid: Namespace Identifier + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_dispersed_ns_participating_nss(int fd, __u32 nsid, __u32 len, + struct nvme_dispersed_ns_participating_nss_log *log) +{ + return nvme_get_nsid_log(fd, false, NVME_LOG_LID_DISPERSED_NS_PARTICIPATING_NSS, nsid, len, + log); +} + +/** + * nvme_get_log_mgmt_addr_list() - Retrieve Management Address List Log + * @fd: File descriptor of nvme device + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_mgmt_addr_list(int fd, __u32 len, + struct nvme_mgmt_addr_list_log *log) +{ + return nvme_get_log_simple(fd, NVME_LOG_LID_MGMT_ADDR_LIST, len, log); +} + /** * nvme_get_log_phy_rx_eom() - Retrieve Physical Interface Receiver Eye Opening Measurement Log * @fd: File descriptor of nvme device @@ -2107,6 +2203,93 @@ static inline int nvme_get_log_phy_rx_eom(int fd, __u8 lsp, __u16 controller, return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } +/** + * nvme_get_log_reachability_groups() - Retrieve Reachability Groups Log + * @fd: File descriptor of nvme device + * @rgo: Return groups only + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_reachability_groups(int fd, bool rgo, bool rae, __u32 len, + struct nvme_reachability_groups_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_REACHABILITY_GROUPS, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = rgo, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_get_log_reachability_associations() - Retrieve Reachability Associations Log + * @fd: File descriptor of nvme device + * @rao: Return associations only + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_reachability_associations(int fd, bool rao, bool rae, __u32 len, + struct nvme_reachability_associations_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_REACHABILITY_ASSOCIATIONS, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = rao, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_get_log_changed_alloc_ns_list() - Retrieve Changed Allocated Namespace List Log + * @fd: File descriptor of nvme device + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_changed_alloc_ns_list(int fd, bool rae, __u32 len, + struct nvme_ns_list *log) +{ + return nvme_get_nsid_log(fd, rae, NVME_LOG_LID_CHANGED_ALLOC_NS_LIST, NVME_NSID_ALL, len, + log); +} + /** * nvme_get_log_discovery() - Retrieve Discovery log page * @fd: File descriptor of nvme device @@ -2144,6 +2327,73 @@ static inline int nvme_get_log_discovery(int fd, bool rae, return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } +/** + * nvme_get_log_host_discover() - Retrieve Host Discovery Log + * @fd: File descriptor of nvme device + * @allhoste: All host entries + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_host_discover(int fd, bool allhoste, bool rae, __u32 len, + struct nvme_host_discover_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_HOST_DISCOVER, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = allhoste, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_get_log_ave_discover() - Retrieve AVE Discovery Log + * @fd: File descriptor of nvme device + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_ave_discover(int fd, bool rae, __u32 len, + struct nvme_ave_discover_log *log) +{ + return nvme_get_nsid_log(fd, rae, NVME_LOG_LID_AVE_DISCOVER, NVME_NSID_ALL, len, log); +} + +/** + * nvme_get_log_pull_model_ddc_req() - Retrieve Pull Model DDC Request Log + * @fd: File descriptor of nvme device + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_pull_model_ddc_req(int fd, bool rae, __u32 len, + struct nvme_pull_model_ddc_req_log *log) +{ + return nvme_get_nsid_log(fd, rae, NVME_LOG_LID_PULL_MODEL_DDC_REQ, NVME_NSID_ALL, len, log); +} + /** * nvme_get_log_media_unit_stat() - Retrieve Media Unit Status * @fd: File descriptor of nvme device @@ -4242,4 +4492,68 @@ int nvme_zns_append(struct nvme_zns_append_args *args); */ int nvme_dim_send(struct nvme_dim_args *args); +/** + * nvme_lm_cdq() - Controller Data Queue - Controller Data Queue command + * @args: &struct nvme_lm_cdq_args argument structure + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise.) + */ +int nvme_lm_cdq(struct nvme_lm_cdq_args *args); + +/** + * nvme_lm_track_send() - Track Send command + * @args: &struct nvme_lm_track_send_args argument structure + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_lm_track_send(struct nvme_lm_track_send_args *args); + +/** + * nvme_lm_migration_send() - Migration Send command + * @args: &struct nvme_lm_migration_send_args argument structure + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_lm_migration_send(struct nvme_lm_migration_send_args *args); + +/** + * nvme_lm_migration_recv - Migration Receive command + * @args: &struct nvme_lm_migration_rev_args argument structure + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_lm_migration_recv(struct nvme_lm_migration_recv_args *args); + +/** + * nvme_lm_set_features_ctrl_data_queue - Set Controller Datea Queue feature + * @fd: File descriptor of nvme device + * @cdqid: Controller Data Queue ID (CDQID) + * @hp: Head Pointer + * @tpt: Tail Pointer Trigger + * @etpt: Enable Tail Pointer Trigger + * @result: The command completions result from CQE dword0 + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_lm_set_features_ctrl_data_queue(int fd, __u16 cdqid, __u32 hp, __u32 tpt, bool etpt, + __u32 *result); + +/** + * nvme_lm_get_features_ctrl_data_queue - Get Controller Data Queue feature + * @fd: File descriptor of nvme device + * @cdqid: Controller Data Queue ID (CDQID) + * @data: Get Controller Data Queue feature data + * @result: The command completions result from CQE dword0 + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_lm_get_features_ctrl_data_queue(int fd, __u16 cdqid, + struct nvme_lm_ctrl_data_queue_fid_data *data, + __u32 *result); #endif /* _LIBNVME_IOCTL_H */ diff --git a/src/nvme/linux.c b/src/nvme/linux.c index a9ba58b..ae4aa52 100644 --- a/src/nvme/linux.c +++ b/src/nvme/linux.c @@ -21,12 +21,9 @@ #include #include #include - -#ifdef CONFIG_OPENSSL_3 #include #include #endif -#endif #ifdef CONFIG_KEYUTILS #include @@ -197,7 +194,7 @@ int nvme_get_telemetry_log(int fd, bool create, bool ctrl, bool rae, size_t max_ } else { lid = NVME_LOG_LID_TELEMETRY_HOST; if (create) - err = nvme_get_log_create_telemetry_host(fd, log); + err = nvme_get_log_create_telemetry_host_mcda(fd, da, log); else err = nvme_get_log_telemetry_host(fd, 0, xfer, log); } @@ -812,149 +809,7 @@ static int derive_tls_key(int version, unsigned char cipher, return key_len; } -#endif /* CONFIG_OPENSSL */ -#ifdef CONFIG_OPENSSL_1 -static DEFINE_CLEANUP_FUNC(cleanup_hmac_ctx, HMAC_CTX *, HMAC_CTX_free) -#define _cleanup_hmac_ctx_ __cleanup__(cleanup_hmac_ctx) - -int nvme_gen_dhchap_key(char *hostnqn, enum nvme_hmac_alg hmac, - unsigned int key_len, unsigned char *secret, - unsigned char *key) -{ - const char hmac_seed[] = "NVMe-over-Fabrics"; - _cleanup_hmac_ctx_ HMAC_CTX *hmac_ctx = NULL; - const EVP_MD *md; - - hmac_ctx = HMAC_CTX_new(); - if (!hmac_ctx) { - errno = ENOMEM; - return -1; - } - - switch (hmac) { - case NVME_HMAC_ALG_NONE: - memcpy(key, secret, key_len); - return 0; - case NVME_HMAC_ALG_SHA2_256: - md = EVP_sha256(); - break; - case NVME_HMAC_ALG_SHA2_384: - md = EVP_sha384(); - break; - case NVME_HMAC_ALG_SHA2_512: - md = EVP_sha512(); - break; - default: - errno = EINVAL; - return -1; - } - - if (!md) { - errno = EINVAL; - return -1; - } - - if (!HMAC_Init_ex(hmac_ctx, secret, key_len, md, NULL)) { - errno = ENOMEM; - return -1; - } - - if (!HMAC_Update(hmac_ctx, (unsigned char *)hostnqn, - strlen(hostnqn))) { - errno = ENOKEY; - return -1; - } - - if (!HMAC_Update(hmac_ctx, (unsigned char *)hmac_seed, - strlen(hmac_seed))) { - errno = ENOKEY; - return -1; - } - - if (!HMAC_Final(hmac_ctx, key, &key_len)) { - errno = ENOKEY; - return -1; - } - - return 0; -} - -static int derive_psk_digest(const char *hostnqn, const char *subsysnqn, - int version, int cipher, - unsigned char *retained, size_t key_len, - char *digest, size_t digest_len) -{ - static const char hmac_seed[] = "NVMe-over-Fabrics"; - _cleanup_hmac_ctx_ HMAC_CTX *hmac_ctx = NULL; - _cleanup_free_ unsigned char *psk_ctx = NULL; - const EVP_MD *md; - size_t hmac_len; - size_t len; - - hmac_ctx = HMAC_CTX_new(); - if (!hmac_ctx) { - errno = ENOMEM; - return -1; - } - md = select_hmac(cipher, &hmac_len); - if (!md || !hmac_len) { - errno = EINVAL; - return -1; - } - - psk_ctx = malloc(key_len); - if (!psk_ctx) { - errno = ENOMEM; - return -1; - } - if (!HMAC_Init_ex(hmac_ctx, retained, key_len, md, NULL)) { - errno = ENOMEM; - return -1; - } - if (!HMAC_Update(hmac_ctx, (unsigned char *)hostnqn, - strlen(hostnqn))) { - errno = ENOKEY; - return -1; - } - if (!HMAC_Update(hmac_ctx, (unsigned char *)" ", 1)) { - errno = ENOKEY; - return -1; - } - if (!HMAC_Update(hmac_ctx, (unsigned char *)subsysnqn, - strlen(subsysnqn))) { - errno = ENOKEY; - return -1; - } - if (!HMAC_Update(hmac_ctx, (unsigned char *)" ", 1)) { - errno = ENOKEY; - return -1; - } - if (!HMAC_Update(hmac_ctx, (unsigned char *)hmac_seed, - strlen(hmac_seed))) { - errno = ENOKEY; - return -1; - } - if (!HMAC_Final(hmac_ctx, psk_ctx, (unsigned int *)&key_len)) { - errno = ENOKEY; - return -1; - } - if (key_len * 2 > digest_len) { - errno = EINVAL; - return -1; - } - memset(digest, 0, digest_len); - len = base64_encode(psk_ctx, key_len, digest); - if (len < 0) { - errno = ENOKEY; - return len; - } - return strlen(digest); -} - -#endif /* !CONFIG_OPENSSL_1 */ - -#ifdef CONFIG_OPENSSL_3 static DEFINE_CLEANUP_FUNC( cleanup_ossl_lib_ctx, OSSL_LIB_CTX *, OSSL_LIB_CTX_free) #define _cleanup_ossl_lib_ctx_ __cleanup__(cleanup_ossl_lib_ctx) @@ -1148,7 +1003,7 @@ static int derive_psk_digest(const char *hostnqn, const char *subsysnqn, } return strlen(digest); } -#endif /* !CONFIG_OPENSSL_3 */ +#endif /* !CONFIG_OPENSSL */ static int gen_tls_identity(const char *hostnqn, const char *subsysnqn, int version, int cipher, char *digest, diff --git a/src/nvme/linux.h b/src/nvme/linux.h index 5dbc092..c38c47a 100644 --- a/src/nvme/linux.h +++ b/src/nvme/linux.h @@ -34,20 +34,6 @@ int nvme_fw_download_seq(int fd, __u32 size, __u32 xfer, __u32 offset, void *buf); -/** - * enum nvme_telemetry_da - Telemetry Log Data Area - * @NVME_TELEMETRY_DA_1: Data Area 1 - * @NVME_TELEMETRY_DA_2: Data Area 2 - * @NVME_TELEMETRY_DA_3: Data Area 3 - * @NVME_TELEMETRY_DA_4: Data Area 4 - */ -enum nvme_telemetry_da { - NVME_TELEMETRY_DA_1 = 1, - NVME_TELEMETRY_DA_2 = 2, - NVME_TELEMETRY_DA_3 = 3, - NVME_TELEMETRY_DA_4 = 4, -}; - /** * nvme_get_telemetry_max() - Get telemetry limits * @fd: File descriptor of nvme device diff --git a/src/nvme/mi-mctp.c b/src/nvme/mi-mctp.c index 2f1c02d..a4124f0 100644 --- a/src/nvme/mi-mctp.c +++ b/src/nvme/mi-mctp.c @@ -26,8 +26,8 @@ #ifdef CONFIG_DBUS #include -#define MCTP_DBUS_PATH "/xyz/openbmc_project/mctp" -#define MCTP_DBUS_IFACE "xyz.openbmc_project.MCTP" +#define MCTP_DBUS_PATH "/au/com/codeconstruct/mctp1" +#define MCTP_DBUS_IFACE "au.com.codeconstruct.MCTP1" #define MCTP_DBUS_IFACE_ENDPOINT "xyz.openbmc_project.MCTP.Endpoint" #endif diff --git a/src/nvme/mi.c b/src/nvme/mi.c index e9f39a8..4640b0a 100644 --- a/src/nvme/mi.c +++ b/src/nvme/mi.c @@ -14,6 +14,7 @@ #include #include +#include #include #include "log.h" @@ -1021,7 +1022,7 @@ static int read_ana_chunk(nvme_mi_ctrl_t ctrl, enum nvme_log_ana_lsp lsp, bool r } while (*read < to_read) { - __u32 len = min(log_end - *read, NVME_LOG_PAGE_PDU_SIZE); + __u32 len = min_t(__u32, log_end - *read, NVME_LOG_PAGE_PDU_SIZE); int ret; ret = nvme_mi_admin_get_log_ana(ctrl, lsp, rae, @@ -1599,6 +1600,72 @@ static int nvme_mi_read_data(nvme_mi_ep_t ep, __u32 cdw0, return 0; } +int nvme_mi_mi_xfer(nvme_mi_ep_t ep, + struct nvme_mi_mi_req_hdr *mi_req, + size_t req_data_size, + struct nvme_mi_mi_resp_hdr *mi_resp, + size_t *resp_data_size) +{ + int rc; + struct nvme_mi_req req; + struct nvme_mi_resp resp; + + /* There is nothing in the spec to define this limit but going with the limits + * from the admin message types for DLEN seems like a reasonable starting point + * to check for coding errors + */ + const size_t mi_data_xfer_size_limit = 4096; + + /* length/offset checks. The common _submit() API will do further + * checking on the message lengths too, so these are kept specific + * to the requirements of the particular command set + */ + + if (*resp_data_size > mi_data_xfer_size_limit) { + errno = EINVAL; + return -1; + } + + /* request and response lengths & offset must be aligned */ + if ((req_data_size & 0x3) || + (*resp_data_size & 0x3)) { + errno = EINVAL; + return -1; + } + + /* bidirectional not permitted */ + if (req_data_size && *resp_data_size) { + errno = EINVAL; + return -1; + } + + mi_req->hdr.type = NVME_MI_MSGTYPE_NVME; + mi_req->hdr.nmp = (NVME_MI_ROR_REQ << 7) | + (NVME_MI_MT_MI << 3); + + memset(&req, 0, sizeof(req)); + req.hdr = &mi_req->hdr; + req.hdr_len = sizeof(*mi_req); + req.data = mi_req + 1; + req.data_len = req_data_size; + + nvme_mi_calc_req_mic(&req); + + memset(&resp, 0, sizeof(resp)); + resp.hdr = &mi_resp->hdr; + resp.hdr_len = sizeof(*mi_resp); + resp.data = mi_resp + 1; + resp.data_len = *resp_data_size; + + rc = nvme_mi_submit(ep, &req, &resp); + if (rc) + return rc; + + *resp_data_size = resp.data_len; + + return 0; +} + int nvme_mi_mi_read_mi_data_subsys(nvme_mi_ep_t ep, struct nvme_mi_read_nvm_ss_info *s) { diff --git a/src/nvme/mi.h b/src/nvme/mi.h index 3ea2b22..825de27 100644 --- a/src/nvme/mi.h +++ b/src/nvme/mi.h @@ -729,6 +729,36 @@ char *nvme_mi_endpoint_desc(nvme_mi_ep_t ep); /* MI Command API: nvme_mi_mi_ prefix */ +/** + * nvme_mi_mi_xfer() - Raw mi transfer interface. + * @ep: endpoint to send the MI command to + * @mi_req: request data + * @req_data_size: size of request data payload + * @mi_resp: buffer for response data + * @resp_data_size: size of response data buffer, updated to received size + * + * Performs an arbitrary NVMe MI command, using the provided request data, + * in @mi_req. The size of the request data *payload* is specified in + * @req_data_size - this does not include the standard header length (so a + * header-only request would have a size of 0). Note that the Management + * Request Doublewords are considered part of the header data. + * + * On success, response data is stored in @mi_resp, which has an optional + * appended payload buffer of @resp_data_size bytes. The actual payload + * size transferred will be stored in @resp_data_size. This size does not + * include the MI response header, so 0 represents no payload. + * + * See: &struct nvme_mi_mi_req_hdr and &struct nvme_mi_mi_resp_hdr. + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise.. + */ +int nvme_mi_mi_xfer(nvme_mi_ep_t ep, + struct nvme_mi_mi_req_hdr *mi_req, + size_t req_data_size, + struct nvme_mi_mi_resp_hdr *mi_resp, + size_t *resp_data_size); + /** * nvme_mi_mi_read_mi_data_subsys() - Perform a Read MI Data Structure command, * retrieving subsystem data. @@ -1575,6 +1605,47 @@ static inline int nvme_mi_admin_get_nsid_log(nvme_mi_ctrl_t ctrl, bool rae, return nvme_mi_admin_get_log(ctrl, &args); } +/** + * nvme_mi_admin_get_endgid_log() - Helper for Get Endurance Group ID Log Page functions + * @ctrl: Controller to query + * @rae: Retain Asynchronous Events + * @lid: Log identifier + * @endgid: Endurance Group ID + * @len: length of log buffer + * @log: pointer for resulting log data + * + * Performs a Get Log Page Admin command for a specific log ID @lid and + * endurance group ID @endgid. Log data is expected to be @len bytes, and is stored + * in @log on success. The @rae flag is passed as-is to the Get Log Page + * command, and is specific to the Log Page requested. + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +static inline int nvme_mi_admin_get_endgid_log(nvme_mi_ctrl_t ctrl, bool rae, + enum nvme_cmd_get_log_lid lid, __u16 endgid, + __u32 len, void *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = lid, + .len = len, + .nsid = NVME_NSID_NONE, + .csi = NVME_CSI_NVM, + .lsi = endgid, + .lsp = NVME_LOG_LSP_NONE, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_mi_admin_get_log(ctrl, &args); +} + /** * nvme_mi_admin_get_log_simple() - Helper for Get Log Page functions with no * NSID or RAE requirements @@ -1635,8 +1706,8 @@ static inline int nvme_mi_admin_get_log_error(nvme_mi_ctrl_t ctrl, struct nvme_error_log_page *err_log) { return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_ERROR, - NVME_NSID_ALL, sizeof(*err_log) * nr_entries, - err_log); + NVME_NSID_ALL, sizeof(*err_log) * nr_entries, + err_log); } /** @@ -1661,7 +1732,7 @@ static inline int nvme_mi_admin_get_log_smart(nvme_mi_ctrl_t ctrl, __u32 nsid, struct nvme_smart_log *smart_log) { return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_SMART, - nsid, sizeof(*smart_log), smart_log); + nsid, sizeof(*smart_log), smart_log); } /** @@ -1681,7 +1752,7 @@ static inline int nvme_mi_admin_get_log_fw_slot(nvme_mi_ctrl_t ctrl, bool rae, struct nvme_firmware_slot *fw_log) { return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_FW_SLOT, - NVME_NSID_ALL, sizeof(*fw_log), fw_log); + NVME_NSID_ALL, sizeof(*fw_log), fw_log); } /** @@ -1702,7 +1773,7 @@ static inline int nvme_mi_admin_get_log_changed_ns_list(nvme_mi_ctrl_t ctrl, struct nvme_ns_list *ns_log) { return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_CHANGED_NS, - NVME_NSID_ALL, sizeof(*ns_log), ns_log); + NVME_NSID_ALL, sizeof(*ns_log), ns_log); } /** @@ -1760,15 +1831,17 @@ static inline int nvme_mi_admin_get_log_device_self_test(nvme_mi_ctrl_t ctrl, } /** - * nvme_mi_admin_get_log_create_telemetry_host() - Create host telemetry log + * nvme_mi_admin_get_log_create_telemetry_host_mcda() - Create host telemetry log * @ctrl: Controller to query + * @mcda: Maximum Created Data Area * @log: Userspace address of the log payload * * Return: The nvme command status if a response was received (see * &enum nvme_status_field) or -1 with errno set otherwise. */ -static inline int nvme_mi_admin_get_log_create_telemetry_host(nvme_mi_ctrl_t ctrl, - struct nvme_telemetry_log *log) +static inline int nvme_mi_admin_get_log_create_telemetry_host_mcda(nvme_mi_ctrl_t ctrl, + enum nvme_telemetry_da mcda, + struct nvme_telemetry_log *log) { struct nvme_get_log_args args = { .lpo = 0, @@ -1780,7 +1853,7 @@ static inline int nvme_mi_admin_get_log_create_telemetry_host(nvme_mi_ctrl_t ctr .nsid = NVME_NSID_NONE, .csi = NVME_CSI_NVM, .lsi = NVME_LOG_LSI_NONE, - .lsp = NVME_LOG_TELEM_HOST_LSP_CREATE, + .lsp = (__u8)((mcda << 1) | NVME_LOG_TELEM_HOST_LSP_CREATE), .uuidx = NVME_UUID_NONE, .rae = false, .ot = false, @@ -1788,6 +1861,20 @@ static inline int nvme_mi_admin_get_log_create_telemetry_host(nvme_mi_ctrl_t ctr return nvme_mi_admin_get_log(ctrl, &args); } +/** + * nvme_mi_admin_get_log_create_telemetry_host() - Create host telemetry log + * @ctrl: Controller to query + * @log: Userspace address of the log payload + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +static inline int nvme_mi_admin_get_log_create_telemetry_host(nvme_mi_ctrl_t ctrl, + struct nvme_telemetry_log *log) +{ + return nvme_mi_admin_get_log_create_telemetry_host_mcda(ctrl, NVME_TELEMETRY_DA_CTRL_DETERMINE, log); +} + /** * nvme_mi_admin_get_log_telemetry_host() - Get Telemetry Host-Initiated log * page @@ -2157,7 +2244,7 @@ static inline int nvme_mi_admin_get_log_mi_cmd_supported_effects(nvme_mi_ctrl_t struct nvme_mi_cmd_supported_effects_log *log) { return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_MI_CMD_SUPPORTED_EFFECTS, - NVME_NSID_NONE, sizeof(*log), log); + NVME_NSID_NONE, sizeof(*log), log); } /** @@ -2195,6 +2282,58 @@ static inline int nvme_mi_admin_get_log_boot_partition(nvme_mi_ctrl_t ctrl, return nvme_mi_admin_get_log(ctrl, &args); } +/** + * nvme_mi_admin_get_log_rotational_media_info() - Retrieve Rotational Media Information Log + * @ctrl: Controller to query + * @endgid: Endurance Group Identifier + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_rotational_media_info(nvme_mi_ctrl_t ctrl, __u16 endgid, + __u32 len, + struct nvme_rotational_media_info_log *log) +{ + return nvme_mi_admin_get_endgid_log(ctrl, false, NVME_LOG_LID_ROTATIONAL_MEDIA_INFO, endgid, + len, log); +} + +/** + * nvme_mi_admin_get_log_dispersed_ns_participating_nss() - Retrieve Dispersed Namespace + * Participating NVM Subsystems Log + * @ctrl: Controller to query + * @nsid: Namespace Identifier + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_dispersed_ns_participating_nss(nvme_mi_ctrl_t ctrl, + __u32 nsid, __u32 len, + struct nvme_dispersed_ns_participating_nss_log *log) +{ + return nvme_mi_admin_get_nsid_log(ctrl, false, NVME_LOG_LID_DISPERSED_NS_PARTICIPATING_NSS, + nsid, len, log); +} + +/** + * nvme_mi_admin_get_log_mgmt_addr_list() - Retrieve Management Address List Log + * @ctrl: Controller to query + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_mgmt_addr_list(nvme_mi_ctrl_t ctrl, __u32 len, + struct nvme_mgmt_addr_list_log *log) +{ + return nvme_mi_admin_get_log_simple(ctrl, NVME_LOG_LID_MGMT_ADDR_LIST, len, log); +} + /** * nvme_mi_admin_get_log_phy_rx_eom() - Retrieve Physical Interface Receiver Eye Opening Measurement Log * @ctrl: Controller to query @@ -2230,6 +2369,92 @@ static inline int nvme_mi_admin_get_log_phy_rx_eom(nvme_mi_ctrl_t ctrl, return nvme_mi_admin_get_log(ctrl, &args); } +/** + * nvme_mi_admin_get_log_reachability_groups() - Retrieve Reachability Groups Log + * @ctrl: Controller to query + * @rgo: Return groups only + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_reachability_groups(nvme_mi_ctrl_t ctrl, bool rgo, bool rae, + __u32 len, struct nvme_reachability_groups_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_REACHABILITY_GROUPS, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = rgo, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_mi_admin_get_log_page(ctrl, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_mi_admin_get_log_reachability_associations() - Retrieve Reachability Associations Log + * @ctrl: Controller to query + * @rao: Return associations only + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_reachability_associations(nvme_mi_ctrl_t ctrl, bool rao, + bool rae, __u32 len, + struct nvme_reachability_associations_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_REACHABILITY_ASSOCIATIONS, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = rao, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_mi_admin_get_log_page(ctrl, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_mi_admin_get_log_changed_alloc_ns_list() - Retrieve Changed Allocated Namespace List Log + * @ctrl: Controller to query + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_changed_alloc_ns_list(nvme_mi_ctrl_t ctrl, bool rae, + __u32 len, struct nvme_ns_list *log) +{ + return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_CHANGED_ALLOC_NS_LIST, + NVME_NSID_ALL, len, log); +} + /** * nvme_mi_admin_get_log_discovery() - Retrieve Discovery log page * @ctrl: Controller to query @@ -2266,6 +2491,74 @@ static inline int nvme_mi_admin_get_log_discovery(nvme_mi_ctrl_t ctrl, bool rae, return nvme_mi_admin_get_log(ctrl, &args); } +/** + * nvme_mi_admin_get_log_host_discover() - Retrieve Host Discovery Log + * @ctrl: Controller to query + * @allhoste: All host entries + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_host_discover(nvme_mi_ctrl_t ctrl, bool allhoste, bool rae, + __u32 len, struct nvme_host_discover_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_HOST_DISCOVER, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = allhoste, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_mi_admin_get_log_page(ctrl, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_mi_admin_get_log_ave_discover() - Retrieve AVE Discovery Log + * @ctrl: Controller to query + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_ave_discover(nvme_mi_ctrl_t ctrl, bool rae, __u32 len, + struct nvme_ave_discover_log *log) +{ + return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_AVE_DISCOVER, NVME_NSID_ALL, len, + log); +} + +/** + * nvme_mi_admin_get_log_pull_model_ddc_req() - Retrieve Pull Model DDC Request Log + * @ctrl: Controller to query + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_pull_model_ddc_req(nvme_mi_ctrl_t ctrl, bool rae, __u32 len, + struct nvme_pull_model_ddc_req_log *log) +{ + return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_PULL_MODEL_DDC_REQ, NVME_NSID_ALL, + len, log); +} + /** * nvme_mi_admin_get_log_media_unit_stat() - Retrieve Media Unit Status * @ctrl: Controller to query diff --git a/src/nvme/types.h b/src/nvme/types.h index fdc4652..f3afd70 100644 --- a/src/nvme/types.h +++ b/src/nvme/types.h @@ -151,11 +151,15 @@ enum nvme_constants { * @NVME_CSI_NVM: NVM Command Set Indicator * @NVME_CSI_KV: Key Value Command Set * @NVME_CSI_ZNS: Zoned Namespace Command Set + * @NVME_CSI_SLM: Subsystem Local Memory Command Set + * @NVME_CSI_CP: Computational Programs Command Set */ enum nvme_csi { NVME_CSI_NVM = 0, NVME_CSI_KV = 1, NVME_CSI_ZNS = 2, + NVME_CSI_SLM = 3, + NVME_CSI_CP = 4, }; /** @@ -1050,8 +1054,8 @@ enum nvme_flbas { * does not process I/O commands in this power state. */ enum nvme_psd_flags { - NVME_PSD_FLAGS_MXPS = 1 << 0, - NVME_PSD_FLAGS_NOPS = 1 << 1, + NVME_PSD_FLAGS_MXPS = 1 << 0, + NVME_PSD_FLAGS_NOPS = 1 << 1, }; /** @@ -1063,9 +1067,9 @@ enum nvme_psd_flags { * @NVME_PSD_PS_10_MILLI_WATT: 0.01 watt scale */ enum nvme_psd_ps { - NVME_PSD_PS_NOT_REPORTED = 0, - NVME_PSD_PS_100_MICRO_WATT = 1, - NVME_PSD_PS_10_MILLI_WATT = 2, + NVME_PSD_PS_NOT_REPORTED = 0, + NVME_PSD_PS_100_MICRO_WATT = 1, + NVME_PSD_PS_10_MILLI_WATT = 2, }; /** @@ -1100,9 +1104,9 @@ static inline unsigned int nvme_psd_power_scale(__u8 ps) * times during the workload. */ enum nvme_psd_workload { - NVME_PSD_WORKLOAD_NP = 0, - NVME_PSD_WORKLOAD_1 = 1, - NVME_PSD_WORKLOAD_2 = 2, + NVME_PSD_WORKLOAD_NP = 0, + NVME_PSD_WORKLOAD_1 = 1, + NVME_PSD_WORKLOAD_2 = 2, }; /** @@ -1145,7 +1149,13 @@ enum nvme_psd_workload { * Bits 2-0: Active Power Workload(APW) indicates the workload * used to calculate maximum power for this power state. * See &enum nvme_psd_workload for decoding this field. - * @rsvd23: Reserved + * @epfrt: Emergency power fail recovery time + * @fqvt: Forced quiescence vault time + * @epfvt: Emergency power fail vault time + * @epfr_fqv_ts: Bits 7-4: Forced quiescence vault time scale + * Bits 3-0: Emergency power fail recovery time scale + * @epfvts: Bits 3-0: Emergency power fail vault time scale + * @rsvd28: Reserved */ struct nvme_id_psd { __le16 mp; @@ -1162,7 +1172,12 @@ struct nvme_id_psd { __u8 rsvd19; __le16 actp; __u8 apws; - __u8 rsvd23[9]; + __u8 epfrt; + __u8 fqvt; + __u8 epfvt; + __u8 epfr_fqv_ts; + __u8 epfvts; + __u8 rsvd28[4]; }; /** @@ -1196,7 +1211,13 @@ struct nvme_id_psd { * @rrls: Read Recovery Levels. If a bit is set, then the corresponding * Read Recovery Level is supported. If a bit is cleared, then the * corresponding Read Recovery Level is not supported. - * @rsvd102: Reserved + * @bpcap: Boot Partition Capabilities, see &enum nvme_id_ctrl_bpcap. + * @rsvd103: Reserved + * @nssl: NVM Subsystem Shutdown Latency (NSSL). This field indicates the + * typical latency in microseconds for an NVM Subsystem Shutdown to + * complete. + * @rsvd108: Reserved + * @plsi: Power Loss Signaling Information (PLSI), see &enum nvme_id_ctrl_plsi * @cntrltype: Controller Type, see &enum nvme_id_ctrl_cntrltype * @fguid: FRU GUID, a 128-bit value that is globally unique for a given * Field Replaceable Unit @@ -1206,7 +1227,9 @@ struct nvme_id_psd { * field is 2 * @crdt3: Controller Retry Delay time in 100 millisecond units if CQE CRD * field is 3 - * @rsvd134: Reserved + * @crcap: Controller Reachability Capabilities (CRCAP), see + * &enum nvme_id_ctrl_crcap + * @rsvd135: Reserved * @nvmsr: NVM Subsystem Report, see &enum nvme_id_ctrl_nvmsr * @vwci: VPD Write Cycle Information, see &enum nvme_id_ctrl_vwci * @mec: Management Endpoint Capabilities, see &enum nvme_id_ctrl_mec @@ -1308,11 +1331,23 @@ struct nvme_id_psd { * for the Persistent Event Log. * @domainid: Domain Identifier indicates the identifier of the domain * that contains this controller. - * @rsvd358: Reserved + * @kpioc: Key Per I/O Capabilities (KPIOC), see &enum nvme_id_ctrl_kpioc + * @rsvd359: Reserved + * @mptfawr: Maximum Processing Time for Firmware Activation Without Reset + * (MPTFAWR). This field shall indicate the estimated maximum time + * in 100 ms units required by the controller to process a Firmware + * Commit command that specifies a value of 011b in the Commit + * Action field + * @rsvd362: Reserved * @megcap: Max Endurance Group Capacity indicates the maximum capacity * of a single Endurance Group. * @tmpthha: Temperature Threshold Hysteresis Attributes * @rsvd385: Reserved + * @cqt: Command Quiesce Time (CQT). his field indicates the expected + * worst-case time in 1 millisecond units for the controller to + * quiesce all outstanding commands after a Keep Alive Timeout or + * other communication loss. + * @rsvd388: Reserved * @sqes: Submission Queue Entry Size, see &enum nvme_id_ctrl_sqes. * @cqes: Completion Queue Entry Size, see &enum nvme_id_ctrl_cqes. * @maxcmd: Maximum Outstanding Commands indicates the maximum number of @@ -1359,7 +1394,17 @@ struct nvme_id_psd { * @oaqd: Optimal Aggregated Queue Depth indicates the recommended maximum * total number of outstanding I/O commands across all I/O queues * on the controller for optimal operation. - * @rsvd568: Reserved + * @rhiri: Recommended Host-Initiated Refresh Interval (RHIRI). If the + * Host-Initiated Refresh capability is supported, then this field + * indicates the recommended time interval in days from last power + * down to the time at which the host should initiate the + * Host-Initiated Refresh operation. If this field is cleared to + * 0h, then this field is not reported. + * @hirt: Host-Initiated Refresh Time (HIRT). If the Host-Initiated + * Refresh capability is supported, then this field indicates the + * nominal amount of time in minutes that the controller takes to + * complete the Host-Initiated Refresh operation. If this field is + * cleared to 0h, then this field is not reported. * @cmmrtd: Controller Maximum Memory Range Tracking Descriptors indicates * the maximum number of Memory Range Tracking Descriptors the * controller supports. @@ -1374,8 +1419,8 @@ struct nvme_id_psd { * value supported in the Requested Memory Range Tracking * Granularity (RMRTG) field of the Track Memory Ranges data * structure. - * @trattr: Tracking Attributes indicates supported attributes for the - * Track Send command and Track Receive command. + * @trattr: Tracking Attributes indicates supported attributes for the Track Send + * command and Track Receive command. see &enum nvme_id_ctrl_trattr * @rsvd577: Reserved * @mcudmq: Maximum Controller User Data Migration Queues indicates the * maximum number of User Data Migration Queues supported by the @@ -1431,13 +1476,18 @@ struct nvme_id_ctrl { __le32 oaes; __le32 ctratt; __le16 rrls; - __u8 rsvd102[9]; + __u8 bpcap; + __u8 rsvd103; + __le32 nssl; + __u8 rsvd108[2]; + __u8 plsi; __u8 cntrltype; __u8 fguid[16]; __le16 crdt1; __le16 crdt2; __le16 crdt3; - __u8 rsvd134[119]; + __u8 crcap; + __u8 rsvd135[118]; __u8 nvmsr; __u8 vwci; __u8 mec; @@ -1476,10 +1526,15 @@ struct nvme_id_ctrl { __le32 nanagrpid; __le32 pels; __le16 domainid; - __u8 rsvd358[10]; + __u8 kpioc; + __u8 rsvd359; + __le16 mptfawr; + __u8 rsvd362[6]; __u8 megcap[16]; __u8 tmpthha; - __u8 rsvd385[127]; + __u8 rsvd385; + __le16 cqt; + __u8 rsvd388[124]; __u8 sqes; __u8 cqes; __le16 maxcmd; @@ -1499,18 +1554,19 @@ struct nvme_id_ctrl { __u8 maxdna[16]; __le32 maxcna; __le32 oaqd; - __u8 rsvd568[2]; - __u16 cmmrtd; - __u16 nmmrtd; + __u8 rhiri; + __u8 hirt; + __le16 cmmrtd; + __le16 nmmrtd; __u8 minmrtg; __u8 maxmrtg; __u8 trattr; __u8 rsvd577; - __u16 mcudmq; - __u16 mnsudmq; - __u16 mcmr; - __u16 nmcmr; - __u16 mcdqpc; + __le16 mcudmq; + __le16 mnsudmq; + __le16 mcmr; + __le16 nmcmr; + __le16 mcdqpc; __u8 rsvd588[180]; char subnqn[NVME_NQN_LENGTH]; __u8 rsvd1024[768]; @@ -1737,6 +1793,73 @@ enum nvme_id_ctrl_ctratt { NVME_CTRL_CTRATT_FDPS = 1 << 19, }; +/** + * enum nvme_id_ctrl_bpcap - Boot Partition Capabilities + * @NVME_CTRL_BACAP_RPMBBPWPS_SHIFT: Shift amount to get the RPMB Boot Partition Write + * Protection Support from the &struct + * nvme_id_ctrl.bpcap field. + * @NVME_CTRL_BACAP_SFBPWPS_SHIFT: Shift amount to get the Set Features Boot Partition + * Write Protection Support from the &struct + * nvme_id_ctrl.bpcap field. + * @NVME_CTRL_BACAP_RPMBBPWPS_MASK: Mask to get the RPMB Boot Partition Write + * Protection Support from the &struct + * nvme_id_ctrl.bpcap field. + * @NVME_CTRL_BACAP_SFBPWPS_MASK: Mask to get the Set Features Boot Partition Write + * Protection Support from the &struct + * nvme_id_ctrl.bpcap field. + * @NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED: Support for RPMB Boot Partition Write Protection + * is not specified. + * @NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED: RPMB Boot Partition Write Protection is not + * supported by this controller. + * @NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED: RPMB Boot Partition Write Protection is supported + * by this controller. + */ +enum nvme_id_ctrl_bpcap { + NVME_CTRL_BACAP_RPMBBPWPS_SHIFT = 0, + NVME_CTRL_BACAP_SFBPWPS_SHIFT = 2, + NVME_CTRL_BACAP_RPMBBPWPS_MASK = 0x3, + NVME_CTRL_BACAP_SFBPWPS_MASK = 0x1, + NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED = 0, + NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED = 1, + NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED = 2, +}; + +/** + * enum nvme_id_ctrl_plsi - Power Loss Signaling Information + * @NVME_CTRL_PLSI_PLSEPF_SHIFT: Shift amount to get the PLS Emergency Power Fail from the + * &struct nvme_id_ctrl.plsi field. + * @NVME_CTRL_PLSI_PLSFQ_SHIFT: Shift amount to get the PLS Forced Quiescence from the + * &struct nvme_id_ctrl.plsi field. + * @NVME_CTRL_PLSI_PLSEPF_MASK: Mask to get the PLS Emergency Power Fail from the + * &struct nvme_id_ctrl.plsi field. + * @NVME_CTRL_PLSI_PLSFQ_MASK: Mask to get the PLS Forced Quiescence from the + * &struct nvme_id_ctrl.plsi field. + */ +enum nvme_id_ctrl_plsi { + NVME_CTRL_PLSI_PLSEPF_SHIFT = 0, + NVME_CTRL_PLSI_PLSFQ_SHIFT = 1, + NVME_CTRL_PLSI_PLSEPF_MASK = 0x1, + NVME_CTRL_PLSI_PLSFQ_MASK = 0x1, +}; + +/** + * enum nvme_id_ctrl_crcap - Power Loss Signaling Information + * @NVME_CTRL_CRCAP_RRSUP_SHIFT: Shift amount to get the Reachability Reporting Supported + * from the &struct nvme_id_ctrl.crcap field. + * @NVME_CTRL_CRCAP_RGIDC_SHIFT: Shift amount to get the Reachability Group ID Changeable + * from the &struct nvme_id_ctrl.crcap field. + * @NVME_CTRL_CRCAP_RRSUP_MASK: Mask to get the Reachability Reporting Supported from the + * &struct nvme_id_ctrl.crcap field. + * @NVME_CTRL_CRCAP_RGIDC_MASK: Mask to get the Reachability Group ID Changeable from the + * &struct nvme_id_ctrl.crcap field. + */ +enum nvme_id_ctrl_crcap { + NVME_CTRL_CRCAP_RRSUP_SHIFT = 0, + NVME_CTRL_CRCAP_RGIDC_SHIFT = 1, + NVME_CTRL_CRCAP_RRSUP_MASK = 0x1, + NVME_CTRL_CRCAP_RGIDC_MASK = 0x1, +}; + /** * enum nvme_id_ctrl_cntrltype - Controller types * @NVME_CTRL_CNTRLTYPE_IO: NVM I/O controller @@ -1767,7 +1890,7 @@ enum nvme_id_ctrl_dctype { * @NVME_CTRL_NVMSR_NVMESD: If set, then the NVM Subsystem is part of an NVMe * Storage Device; if cleared, then the NVM Subsystem * is not part of an NVMe Storage Device. - * @NVME_CTRL_NVMSR_NVMEE: If set’, then the NVM Subsystem is part of an NVMe + * @NVME_CTRL_NVMSR_NVMEE: If set, then the NVM Subsystem is part of an NVMe * Enclosure; if cleared, then the NVM Subsystem is * not part of an NVMe Enclosure. */ @@ -1816,6 +1939,30 @@ enum nvme_id_ctrl_mec { * enum nvme_id_ctrl_oacs - Flags indicating the optional Admin commands and * features supported by the controller, see * &struct nvme_id_ctrl.oacs. + * @NVME_CTRL_OACS_SSRS_SHIFT: Shift amount to get the Security Send Receive supported + * @NVME_CTRL_OACS_FNVMS_SHIFT:Shift amount to get the Format NVM supported + * @NVME_CTRL_OACS_FWDS_SHIFT: Shift amount to get the Firmware Download supported + * @NVME_CTRL_OACS_NMS_SHIFT: Shift amount to get the Namespace Management supported + * @NVME_CTRL_OACS_DSTS_SHIFT: Shift amount to get the Device Self-test supported + * @NVME_CTRL_OACS_DIRS_SHIFT: Shift amount to get the Directives supported + * @NVME_CTRL_OACS_NSRS_SHIFT: Shift amount to get the NVMe-MI Send Receive supported + * @NVME_CTRL_OACS_VMS_SHIFT: Shift amount to get the Virtualization Management supported + * @NVME_CTRL_OACS_DBCS_SHIFT: Shift amount to get the Doorbell Buffer Config supported + * @NVME_CTRL_OACS_GLSS_SHIFT: Shift amount to get the Get LBA Status supported + * @NVME_CTRL_OACS_CFLS_SHIFT: Shift amount to get the Command and Feature Lockdown supported + * @NVME_CTRL_OACS_HMLMS_SHIFT:Shift amount to get the Host Managed Live Migration support + * @NVME_CTRL_OACS_SSRS_MASK: Mask to get the Security Send Receive supported + * @NVME_CTRL_OACS_FNVMS_MASK: Mask to get the Format NVM supported + * @NVME_CTRL_OACS_FWDS_MASK: Mask to get the Firmware Download supported + * @NVME_CTRL_OACS_NMS_MASK: Mask to get the Namespace Management supported + * @NVME_CTRL_OACS_DSTS_MASK: Mask to get the Device Self-test supported + * @NVME_CTRL_OACS_DIRS_MASK: Mask to get the Directives supported + * @NVME_CTRL_OACS_NSRS_MASK: Mask to get the NVMe-MI Send Receive supported + * @NVME_CTRL_OACS_VMS_MASK: Mask to get the Virtualization Management supported + * @NVME_CTRL_OACS_DBCS_MASK: Mask to get the Doorbell Buffer Config supported + * @NVME_CTRL_OACS_GLSS_MASK: Mask to get the Get LBA Status supported + * @NVME_CTRL_OACS_CFLS_MASK: Mask to get the Command and Feature Lockdown supported + * @NVME_CTRL_OACS_HMLMS_MASK: Mask to get the Host Managed Live Migration support * @NVME_CTRL_OACS_SECURITY: If set, then the controller supports the * Security Send and Security Receive commands. * @NVME_CTRL_OACS_FORMAT: If set then the controller supports the Format @@ -1837,23 +1984,63 @@ enum nvme_id_ctrl_mec { * Doorbell Buffer Config command. * @NVME_CTRL_OACS_LBA_STATUS: If set, then the controller supports the Get LBA * Status capability. - * @NVME_CTRL_OACS_CMD_FEAT_LD: If set, then the controller supports the command - * and feature lockdown capability. + * @NVME_CTRL_OACS_CMD_FEAT_LD:If set, then the controller supports the command + * and feature lockdown capability. + * @NVME_CTRL_OACS_HMLM: If set, then the controller supports the command + * and Host Managed Live Migration capability. */ enum nvme_id_ctrl_oacs { - NVME_CTRL_OACS_SECURITY = 1 << 0, - NVME_CTRL_OACS_FORMAT = 1 << 1, - NVME_CTRL_OACS_FW = 1 << 2, - NVME_CTRL_OACS_NS_MGMT = 1 << 3, - NVME_CTRL_OACS_SELF_TEST = 1 << 4, - NVME_CTRL_OACS_DIRECTIVES = 1 << 5, - NVME_CTRL_OACS_NVME_MI = 1 << 6, - NVME_CTRL_OACS_VIRT_MGMT = 1 << 7, - NVME_CTRL_OACS_DBBUF_CFG = 1 << 8, - NVME_CTRL_OACS_LBA_STATUS = 1 << 9, - NVME_CTRL_OACS_CMD_FEAT_LD = 1 << 10, + NVME_CTRL_OACS_SSRS_SHIFT = 0, + NVME_CTRL_OACS_FNVMS_SHIFT = 1, + NVME_CTRL_OACS_FWDS_SHIFT = 2, + NVME_CTRL_OACS_NMS_SHIFT = 3, + NVME_CTRL_OACS_DSTS_SHIFT = 4, + NVME_CTRL_OACS_DIRS_SHIFT = 5, + NVME_CTRL_OACS_NSRS_SHIFT = 6, + NVME_CTRL_OACS_VMS_SHIFT = 7, + NVME_CTRL_OACS_DBCS_SHIFT = 8, + NVME_CTRL_OACS_GLSS_SHIFT = 9, + NVME_CTRL_OACS_CFLS_SHIFT = 10, + NVME_CTRL_OACS_HMLMS_SHIFT = 11, + NVME_CTRL_OACS_SSRS_MASK = 1, + NVME_CTRL_OACS_FNVMS_MASK = 1, + NVME_CTRL_OACS_FWDS_MASK = 1, + NVME_CTRL_OACS_NMS_MASK = 1, + NVME_CTRL_OACS_DSTS_MASK = 1, + NVME_CTRL_OACS_DIRS_MASK = 1, + NVME_CTRL_OACS_NSRS_MASK = 1, + NVME_CTRL_OACS_VMS_MASK = 1, + NVME_CTRL_OACS_DBCS_MASK = 1, + NVME_CTRL_OACS_GLSS_MASK = 1, + NVME_CTRL_OACS_CFLS_MASK = 1, + NVME_CTRL_OACS_HMLMS_MASK = 1, + NVME_CTRL_OACS_SECURITY = NVME_VAL(CTRL_OACS_SSRS), + NVME_CTRL_OACS_FORMAT = NVME_VAL(CTRL_OACS_FNVMS), + NVME_CTRL_OACS_FW = NVME_VAL(CTRL_OACS_FWDS), + NVME_CTRL_OACS_NS_MGMT = NVME_VAL(CTRL_OACS_NMS), + NVME_CTRL_OACS_SELF_TEST = NVME_VAL(CTRL_OACS_DSTS), + NVME_CTRL_OACS_DIRECTIVES = NVME_VAL(CTRL_OACS_DIRS), + NVME_CTRL_OACS_NVME_MI = NVME_VAL(CTRL_OACS_NSRS), + NVME_CTRL_OACS_VIRT_MGMT = NVME_VAL(CTRL_OACS_VMS), + NVME_CTRL_OACS_DBBUF_CFG = NVME_VAL(CTRL_OACS_DBCS), + NVME_CTRL_OACS_LBA_STATUS = NVME_VAL(CTRL_OACS_GLSS), + NVME_CTRL_OACS_CMD_FEAT_LD = NVME_VAL(CTRL_OACS_CFLS), + NVME_CTRL_OACS_HMLM = NVME_VAL(CTRL_OACS_HMLMS), }; +#define NVME_CTRL_OACS_SSRS(oacs) NVME_GET(CTRL_OACS_SSRS) +#define NVME_CTRL_OACS_FNVMS(oacs) NVME_GET(CTRL_OACS_FNVMS) +#define NVME_CTRL_OACS_FWDS(oacs) NVME_GET(CTRL_OACS_FWDS) +#define NVME_CTRL_OACS_NMS_M(oacs) NVME_GET(CTRL_OACS_NMS) +#define NVME_CTRL_OACS_DSTS(oacs) NVME_GET(CTRL_OACS_DSTS) +#define NVME_CTRL_OACS_DIRS(oacs) NVME_GET(CTRL_OACS_DIRS) +#define NVME_CTRL_OACS_NSRS(oacs) NVME_GET(CTRL_OACS_NSRS) +#define NVME_CTRL_OACS_VMS_M(oacs) NVME_GET(CTRL_OACS_VMS) +#define NVME_CTRL_OACS_DBCS(oacs) NVME_GET(CTRL_OACS_DBCS) +#define NVME_CTRL_OACS_GLSS(oacs) NVME_GET(CTRL_OACS_GLSS) +#define NVME_CTRL_OACS_CFLS(oacs) NVME_GET(CTRL_OACS_CFLS) +#define NVME_CTRL_OACS_HMLMS(oacs) NVME_GET(CTRL_OACS_HMLMS) + /** * enum nvme_id_ctrl_frmw - Flags and values indicates capabilities regarding * firmware updates from &struct nvme_id_ctrl.frmw. @@ -1952,11 +2139,26 @@ enum nvme_id_ctrl_rpmbs { * enum nvme_id_ctrl_dsto - Flags indicating the optional Device Self-test * command or operation behaviors supported by the * controller or NVM subsystem. - * @NVME_CTRL_DSTO_ONE_DST: If set, then the NVM subsystem supports only one - * device self-test operation in progress at a time. + * @NVME_CTRL_DSTO_SDSO_SHIFT: Shift amount to get the value of Single Device Self-test + * Operation from Device Self-test Options field. + * @NVME_CTRL_DSTO_HIRS_SHIFT: Shift amount to get the value of Host-Initiated Refresh + * Support from Device Self-test Options field. + * @NVME_CTRL_DSTO_SDSO_MASK: Mask to get the value of Single Device Self-test Operation + * @NVME_CTRL_DSTO_HIRS_MASK: Mask to get the value of Host-Initiated Refresh Support + * @NVME_CTRL_DSTO_ONE_DST: If set, then the NVM subsystem supports only one device + * self-test operation in progress at a time. If cleared, + * then the NVM subsystem supports one device self-test + * operation per controller at a time. + * @NVME_CTRL_DSTO_HIRS: If set, then the controller supports the Host-Initiated + * Refresh capability. */ enum nvme_id_ctrl_dsto { - NVME_CTRL_DSTO_ONE_DST = 1 << 0, + NVME_CTRL_DSTO_SDSO_SHIFT = 0, + NVME_CTRL_DSTO_HIRS_SHIFT = 1, + NVME_CTRL_DSTO_SDSO_MASK = 0x1, + NVME_CTRL_DSTO_HIRS_MASK = 0x1, + NVME_CTRL_DSTO_ONE_DST = NVME_VAL(CTRL_DSTO_SDSO), + NVME_CTRL_DSTO_HIRS = NVME_VAL(CTRL_DSTO_HIRS), }; /** @@ -2027,6 +2229,25 @@ enum nvme_id_ctrl_anacap { NVME_CTRL_ANACAP_GRPID_MGMT = 1 << 7, }; + +/** + * enum nvme_id_ctrl_kpioc - Key Per I/O Capabilities + * @NVME_CTRL_KPIOC_KPIOS_SHIFT: Shift amount to get the Key Per I/O Supported from the + * &struct nvme_id_ctrl.kpioc field. + * @NVME_CTRL_KPIOC_KPIOSC_SHIFT: Shift amount to get the Key Per I/O Scope from the + * &struct nvme_id_ctrl.kpioc field. + * @NVME_CTRL_KPIOC_KPIOS_MASK: Mask to get the Key Per I/O Supported from the + * &struct nvme_id_ctrl.kpioc field. + * @NVME_CTRL_KPIOC_KPIOSC_MASK: Mask to get the Key Per I/O Scope from the + * &struct nvme_id_ctrl.kpioc field. + */ +enum nvme_id_ctrl_kpioc { + NVME_CTRL_KPIOC_KPIOS_SHIFT = 0, + NVME_CTRL_KPIOC_KPIOSC_SHIFT = 1, + NVME_CTRL_KPIOC_KPIOS_MASK = 0x1, + NVME_CTRL_KPIOC_KPIOSC_MASK = 0x1, +}; + /** * enum nvme_id_ctrl_sqes - Defines the required and maximum Submission Queue * entry size when using the NVM Command Set. @@ -2085,6 +2306,15 @@ enum nvme_id_ctrl_cqes { * @NVME_CTRL_ONCS_ALL_FAST_COPY: If set, then all copy operations for * the Copy command are fast copy * operations. + * @NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE: If MAXWZD bit set, then the maximum data + * size for Write Zeroes command depends on the + * value of the Deallocate bit in the Write Zeroes + * command and the value in the WZDSL field in the + * I/O Command Set specific Identify Controller + * data structure. + * @NVME_CTRL_ONCS_NAMESPACE_ZEROES: If NSZS bit set, then the controller supports + * the Namespace Zeroes (NSZ) bit in the NVM + * Command Set Write Zeroes command. */ enum nvme_id_ctrl_oncs { NVME_CTRL_ONCS_COMPARE = 1 << 0, @@ -2098,6 +2328,8 @@ enum nvme_id_ctrl_oncs { NVME_CTRL_ONCS_COPY = 1 << 8, NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITY = 1 << 9, NVME_CTRL_ONCS_ALL_FAST_COPY = 1 << 10, + NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE = 1 << 11, + NVME_CTRL_ONCS_NAMESPACE_ZEROES = 1 << 12, }; /** @@ -2236,6 +2468,30 @@ enum nvme_id_ctrl_sgls { NVME_CTRL_SGLS_TPORT = 1 << 21, }; +/** + * enum nvme_id_ctrl_trattr - Tracking Attributes + * @NVME_CTRL_TRATTR_THMCS_SHIFT: Shift amount to get the Track Host Memory Changes Support + * from the &struct nvme_id_ctrl.trattr field. + * @NVME_CTRL_TRATTR_TUDCS_SHIFT: Shift amount to get the Track User Data Changes Support + * from the &struct nvme_id_ctrl.trattr field. + * @NVME_CTRL_TRATTR_MRTLL_SHIFT: Shift amount to get the Memory Range Tracking Length Limit + * from the &struct nvme_id_ctrl.trattr field. + * @NVME_CTRL_TRATTR_THMCS_MASK: Mask to get the Track Host Memory Changes Support + * from the &struct nvme_id_ctrl.trattr field. + * @NVME_CTRL_TRATTR_TUDCS_MASK: Mask to get the Track User Data Changes Support + * from the &struct nvme_id_ctrl.trattr field. + * @NVME_CTRL_TRATTR_MRTLL_MASK: Mask to get the Memory Range Tracking Length Limit + * from the &struct nvme_id_ctrl.trattr field. + */ +enum nvme_id_ctrl_trattr { + NVME_CTRL_TRATTR_THMCS_SHIFT = 0, + NVME_CTRL_TRATTR_TUDCS_SHIFT = 1, + NVME_CTRL_TRATTR_MRTLL_SHIFT = 2, + NVME_CTRL_TRATTR_THMCS_MASK = 0x1, + NVME_CTRL_TRATTR_TUDCS_MASK = 0x1, + NVME_CTRL_TRATTR_MRTLL_MASK = 0x1, +}; + /** * enum nvme_id_ctrl_fcatt - This field indicates attributes of the controller * that are specific to NVMe over Fabrics. @@ -2366,12 +2622,16 @@ enum nvme_lbaf_rp { * @msrc: Maximum Source Range Count indicates the maximum number of Source * Range entries that may be used to specify source data in a Copy * command. This is a 0’s based value. - * @rsvd81: Reserved + * @kpios: Key Per I/O Status indicates namespace Key Per I/O capability status. * @nulbaf: Number of Unique Capability LBA Formats defines the number of * supported user data size and metadata size combinations supported * by the namespace that may not share the same capabilities. LBA * formats shall be allocated in order and packed sequentially. * @rsvd83: Reserved + * @kpiodaag: Key Per I/O Data Access Alignment and Granularity indicates the + * alignment and granularity in logical blocks that is required + * for commands that support a KPIOTAG value in the CETYPE field. + * @rsvd88: Reserved * @anagrpid: ANA Group Identifier indicates the ANA Group Identifier of the * ANA group of which the namespace is a member. * @rsvd96: Reserved @@ -2423,9 +2683,11 @@ struct nvme_id_ns { __le16 mssrl; __le32 mcl; __u8 msrc; - __u8 rsvd81; + __u8 kpios; __u8 nulbaf; - __u8 rsvd83[9]; + __u8 rsvd83; + __le32 kpiodaag; + __u8 rsvd88[4]; __le32 anagrpid; __u8 rsvd96[3]; __u8 nsattr; @@ -2862,6 +3124,18 @@ struct nvme_ns_list { __le32 ns[NVME_ID_NS_LIST_MAX]; }; +/** + * enum nvme_id_ctrl_nvm_lbamqf - LBA Migration Queue Format + * @NVME_ID_CTRL_NVM_LBAMQF_TYPE_0: + * @NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MIN: + * @NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MAX: + */ +enum nvme_id_ctrl_nvm_lbamqf { + NVME_ID_CTRL_NVM_LBAMQF_TYPE_0 = 0x0, + NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MIN = 0xc0, + NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MAX = 0xff, +}; + /** * struct nvme_id_ctrl_nvm - I/O Command Set Specific Identify Controller data structure * @vsl: Verify Size Limit @@ -2870,7 +3144,8 @@ struct nvme_ns_list { * @dmrl: Dataset Management Ranges Limit * @dmrsl: Dataset Management Range Size Limit * @dmsl: Dataset Management Size Limit - * @rsvd16: Reserved + * @kpiocap: Key Per I/O Capabilities + * @wzdsl: Write Zeroes With Deallocate Size Limit * @aocs: Admin Optional Command Support * @ver: Version * @lbamqf: LBA Migration Queue Format @@ -2883,7 +3158,8 @@ struct nvme_id_ctrl_nvm { __u8 dmrl; __le32 dmrsl; __le64 dmsl; - __u8 rsvd16[2]; + __u8 kpiocap; + __u8 wzdsl; __le16 aocs; __le32 ver; __u8 lbamqf; @@ -3072,6 +3348,36 @@ struct nvme_id_iocs { __le64 iocsc[512]; }; +/** + * enum nvme_id_iocs_iocsc - This field indicates the Identify I/O Command Set Data Structure + * @NVME_IOCS_IOCSC_NVMCS_SHIFT: Shift amount to get the value of NVM Command Set + * @NVME_IOCS_IOCSC_NVMCS_MASK: Mask to get the value of NVM Command Set + * @NVME_IOCS_IOCSC_KVCS_SHIFT: Shift amount to get the value of Key Value Command Set + * @NVME_IOCS_IOCSC_KVCS_MASK: Mask to get the value of Key Value Command Set + * @NVME_IOCS_IOCSC_ZNSCS_SHIFT: Shift amount to get the value of Zoned Namespace Command + * Set + * @NVME_IOCS_IOCSC_ZNSCS_MASK: Mask to get the value of Zoned Namespace Command Set + * @NVME_IOCS_IOCSC_SLMCS_SHIFT: Shift amount to get the value of Subsystem Local Memory + * Command Set + * @NVME_IOCS_IOCSC_SLMCS_MASK: Mask to get the value of Subsystem Local Memory Command Set + * @NVME_IOCS_IOCSC_CPNCS_SHIFT: Shift amount to get the value of Computational Programs + * Namespace Command Set + * @NVME_IOCS_IOCSC_CPNCS_MASK: Mask to get the value of Computational Programs Namespace + * Command Set + */ +enum nvme_id_iocs_iocsc { + NVME_IOCS_IOCSC_NVMCS_SHIFT = 0, + NVME_IOCS_IOCSC_NVMCS_MASK = 0x1, + NVME_IOCS_IOCSC_KVCS_SHIFT = 1, + NVME_IOCS_IOCSC_KVCS_MASK = 0x1, + NVME_IOCS_IOCSC_ZNSCS_SHIFT = 2, + NVME_IOCS_IOCSC_ZNSCS_MASK = 0x1, + NVME_IOCS_IOCSC_SLMCS_SHIFT = 3, + NVME_IOCS_IOCSC_SLMCS_MASK = 0x1, + NVME_IOCS_IOCSC_CPNCS_SHIFT = 4, + NVME_IOCS_IOCSC_CPNCS_MASK = 0x1, +}; + /** * struct nvme_id_domain_attr - Domain Attributes Entry * @dom_id: Domain Identifier @@ -3213,6 +3519,23 @@ enum nvme_err_pel { NVME_ERR_PEL_BIT_MASK = 0x70, }; +/** + * enum nvme_err_status_field - This field indicates the error information log entry status field + * @NVME_ERR_SF_PHASE_TAG_SHIFT: Shift amount to get the phase tag + * @NVME_ERR_SF_STATUS_FIELD_SHIFT: Shift amount to get the status field + * @NVME_ERR_SF_PHASE_TAG_MASK: Mask to get the phase tag + * @NVME_ERR_SF_STATUS_FIELD_MASK: Mask to get the status field + */ +enum nvme_err_status_field { + NVME_ERR_SF_PHASE_TAG_SHIFT = 0, + NVME_ERR_SF_STATUS_FIELD_SHIFT = 1, + NVME_ERR_SF_PHASE_TAG_MASK = 1, + NVME_ERR_SF_STATUS_FIELD_MASK = 0x7fff, +}; + +#define NVME_ERR_SF_PHASE_TAG(status_field) NVME_GET(status_field, ERR_SF_PHASE_TAG) +#define NVME_ERR_SF_STATUS_FIELD(status_field) NVME_GET(status_field, ERR_SF_STATUS_FIELD) + /** * struct nvme_smart_log - SMART / Health Information Log (Log Identifier 02h) * @critical_warning: This field indicates critical warnings for the state @@ -3586,6 +3909,7 @@ enum nvme_status_result { * @NVME_ST_CODE_RESERVED: Reserved. * @NVME_ST_CODE_SHORT: Short device self-test operation. * @NVME_ST_CODE_EXTENDED: Extended device self-test operation. + * @NVME_ST_CODE_HOST_INIT:Host-Initiated Refresh operation. * @NVME_ST_CODE_VS: Vendor specific. * @NVME_ST_CODE_ABORT: Abort device self-test operation. * @NVME_ST_CODE_SHIFT: Shift amount to get the code value from the @@ -3595,6 +3919,7 @@ enum nvme_st_code { NVME_ST_CODE_RESERVED = 0x0, NVME_ST_CODE_SHORT = 0x1, NVME_ST_CODE_EXTENDED = 0x2, + NVME_ST_CODE_HOST_INIT = 0x3, NVME_ST_CODE_VS = 0xe, NVME_ST_CODE_ABORT = 0xf, NVME_ST_CODE_SHIFT = 4, @@ -3680,6 +4005,22 @@ enum nvme_cmd_get_log_telemetry_host_lsp { NVME_LOG_TELEM_HOST_LSP_CREATE = 1, }; +/** + * enum nvme_telemetry_da - Telemetry Log Data Area + * @NVME_TELEMETRY_DA_CTRL_DETERMINE: The controller determines the data areas to be created + * @NVME_TELEMETRY_DA_1: Data Area 1 + * @NVME_TELEMETRY_DA_2: Data Area 2 + * @NVME_TELEMETRY_DA_3: Data Area 3 + * @NVME_TELEMETRY_DA_4: Data Area 4 + */ +enum nvme_telemetry_da { + NVME_TELEMETRY_DA_CTRL_DETERMINE = 0, + NVME_TELEMETRY_DA_1 = 1, + NVME_TELEMETRY_DA_2 = 2, + NVME_TELEMETRY_DA_3 = 3, + NVME_TELEMETRY_DA_4 = 4, +}; + /** * struct nvme_telemetry_log - Retrieve internal data specific to the * manufacturer. @@ -3688,19 +4029,21 @@ enum nvme_cmd_get_log_telemetry_host_lsp { * @rsvd1: Reserved * @ieee: IEEE OUI Identifier is the Organization Unique Identifier (OUI) * for the controller vendor that is able to interpret the data. - * @dalb1: Telemetry Controller-Initiated Data Area 1 Last Block is + * @dalb1: Telemetry Host/Controller Initiated Data Area 1 Last Block is * the value of the last block in this area. - * @dalb2: Telemetry Controller-Initiated Data Area 1 Last Block is + * @dalb2: Telemetry Host/Controller Initiated Data Area 1 Last Block is * the value of the last block in this area. - * @dalb3: Telemetry Controller-Initiated Data Area 1 Last Block is + * @dalb3: Telemetry Host/ControllerInitiated Data Area 1 Last Block is * the value of the last block in this area. * @rsvd14: Reserved - * @dalb4: Telemetry Controller-Initiated Data Area 4 Last Block is + * @dalb4: Telemetry Host/Controller Initiated Data Area 4 Last Block is * the value of the last block in this area. * @rsvd20: Reserved + * @ths: Telemetry Host-Initiated Scope * @hostdgn: Telemetry Host-Initiated Data Generation Number is a * value that is incremented each time the host initiates a - * capture of its internal controller state in the controller . + * capture of its internal controller state in the controller. + * @tcs: Telemetry Controller-Initiated Scope * @ctrlavail: Telemetry Controller-Initiated Data Available, if cleared, * then the controller telemetry log does not contain saved * internal controller state. If this field is set to 1h, the @@ -3728,8 +4071,12 @@ struct nvme_telemetry_log { __le16 dalb3; __u8 rsvd14[2]; __le32 dalb4; - __u8 rsvd20[361]; - __u8 hostdgn; + __u8 rsvd20[360]; + __u8 ths; + union { // [381] + __u8 hostdgn; + __u8 tcs; + }; __u8 ctrlavail; __u8 ctrldgn; __u8 rsnident[128]; @@ -4415,6 +4762,7 @@ struct nvme_eg_event_aggregate_log { * @NVME_FID_SUPPORTED_EFFECTS_SCOPE_ENDGRP: Endurance Group Scope * @NVME_FID_SUPPORTED_EFFECTS_SCOPE_DOMAIN: Domain Scope * @NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS: NVM Subsystem Scope + * @NVME_FID_SUPPORTED_EFFECTS_CDQSCP: Controller Data Queue */ enum nvme_fid_supported_effects { NVME_FID_SUPPORTED_EFFECTS_FSUPP = 1 << 0, @@ -4431,6 +4779,7 @@ enum nvme_fid_supported_effects { NVME_FID_SUPPORTED_EFFECTS_SCOPE_ENDGRP = 1 << 3, NVME_FID_SUPPORTED_EFFECTS_SCOPE_DOMAIN = 1 << 4, NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS = 1 << 5, + NVME_FID_SUPPORTED_EFFECTS_CDQSCP = 1 << 6, }; /** @@ -4522,6 +4871,65 @@ enum nvme_boot_partition_info { #define NVME_BOOT_PARTITION_INFO_BPSZ(bpinfo) NVME_GET(bpinfo, BOOT_PARTITION_INFO_BPSZ) #define NVME_BOOT_PARTITION_INFO_ABPID(bpinfo) NVME_GET(bpinfo, BOOT_PARTITION_INFO_ABPID) +/** + * struct nvme_rotational_media_info_log - Rotational Media Information Log + * @endgid: Endurance Group Identifier + * @numa: Number of Actuators + * @nrs: Nominal Rotational Speed + * @rsvd6: Reserved + * @spinc: Spinup Count + * @fspinc: Failed Spinup Count + * @ldc: Load Count + * @fldc: Failed Load Count + * @rsvd24: Reserved + */ +struct nvme_rotational_media_info_log { + __le16 endgid; + __le16 numa; + __le16 nrs; + __u8 rsvd6[2]; + __le32 spinc; + __le32 fspinc; + __le32 ldc; + __le32 fldc; + __u8 rsvd24[488]; +}; + +/** + * struct nvme_dispersed_ns_participating_nss_log - Dispersed Namespace Participating NVM Subsystems + * Log + * @genctr: Generation Counter + * @numpsub: Number of Participating NVM Subsystems + * @rsvd16: Reserved + * @participating_nss: Participating NVM Subsystem Entry + */ +struct nvme_dispersed_ns_participating_nss_log { + __le64 genctr; + __le64 numpsub; + __u8 rsvd16[240]; + __u8 participating_nss[]; +}; + +/** + * struct nvme_mgmt_addr_desc - Management Address Descriptor + * @mat: Management Address Type + * @rsvd1: Reserved + * @madrs: Management Address + */ +struct nvme_mgmt_addr_desc { + __u8 mat; + __u8 rsvd1[3]; + __u8 madrs[508]; +}; + +/** + * struct nvme_mgmt_addr_list_log - Management Address List Log + * @mad: Management Address Descriptor + */ +struct nvme_mgmt_addr_list_log { + struct nvme_mgmt_addr_desc mad[8]; +}; + /** * struct nvme_eom_lane_desc - EOM Lane Descriptor * @rsvd0: Reserved @@ -4654,6 +5062,68 @@ enum nvme_phy_rx_eom_progress { NVME_PHY_RX_EOM_COMPLETED = 2, }; +/** + * struct nvme_reachability_group_desc - Reachability Group Descriptor + * @rgid: Reachability Group ID + * @nnid: Number of NSID Values + * @chngc: Change Count + * @rsvd16: Reserved + * @nsid: Namespace Identifier List + */ +struct nvme_reachability_group_desc { + __le32 rgid; + __le32 nnid; + __le64 chngc; + __u8 rsvd16[16]; + __le32 nsid[]; +}; + +/** + * struct nvme_reachability_groups_log - Reachability Groups Log + * @chngc: Change Count + * @nrgd: Number of Reachability Group Descriptors + * @rsvd10: Reserved + * @rgd: Reachability Group Descriptor List + */ +struct nvme_reachability_groups_log { + __le64 chngc; + __le16 nrgd; + __u8 rsvd10[6]; + struct nvme_reachability_group_desc rgd[]; +}; + +/** + * struct nvme_reachability_association_desc - Reachability Association Descriptor + * @rasid: Reachability Association ID + * @nrid: Number of RGID Values + * @chngc: Change Count + * @rac: Reachability Association Characteristics + * @rsvd17: Reserved + * @rgid: Reachability Group Identifier List + */ +struct nvme_reachability_association_desc { + __le32 rasid; + __le32 nrid; + __le64 chngc; + __u8 rac; + __u8 rsvd17[15]; + __le32 rgid[]; +}; + +/** + * struct nvme_reachability_associations_log - Reachability Associations Log + * @chngc: Change Count + * @nrad: Number of Reachability Association Descriptors + * @rsvd10: Reserved + * @rad: Reachability Association Descriptor List + */ +struct nvme_reachability_associations_log { + __le64 chngc; + __le16 nrad; + __u8 rsvd10[6]; + struct nvme_reachability_association_desc rad[]; +}; + /** * struct nvme_media_unit_stat_desc - Media Unit Status Descriptor * @muid: Media Unit Identifier @@ -5399,6 +5869,8 @@ struct nvme_fdp_events_log { /** * struct nvme_feat_fdp_events_cdw11 - FDP Events Feature Command Dword 11 + * Deprecated: doesn't support this struct. + * Use NVME_FEAT_FDPE_*** definitions instead. * @phndl: Placement Handle * @noet: Number of FDP Event Types * @rsvd24: Reserved @@ -5407,7 +5879,7 @@ struct nvme_feat_fdp_events_cdw11 { __le16 phndl; __u8 noet; __u8 rsvd24; -}; +} __attribute__((deprecated)); /** * enum nvme_fdp_supported_event_attributes - Supported FDP Event Attributes @@ -5688,16 +6160,16 @@ struct nvme_plm_config { * @acre: Advanced Command Retry Enable * @etdas: Extended Telemetry Data Area 4 Supported * @lbafee: LBA Format Extension Enable - * @rsvd3: Reserved - * @cdfe: Copy Descriptor Formats Enable + * @hdisns: Host Dispersed Namespace Support + * @cdfe: Copy Descriptor Formats Enable * @rsvd6: Reserved */ struct nvme_feat_host_behavior { __u8 acre; __u8 etdas; __u8 lbafee; - __u8 rsvd3; - __u16 cdfe; + __u8 hdisns; + __le16 cdfe; __u8 rsvd6[506]; }; @@ -5967,6 +6439,8 @@ struct nvme_host_mem_buf_attrs { * @NVME_AER_ERROR: Error event * @NVME_AER_SMART: SMART / Health Status event * @NVME_AER_NOTICE: Notice event + * @NVME_AER_IMMEDIATE: Immediate + * @NVME_AER_ONESHOT: One-Shot * @NVME_AER_CSS: NVM Command Set Specific events * @NVME_AER_VS: Vendor Specific event */ @@ -5974,6 +6448,8 @@ enum nvme_ae_type { NVME_AER_ERROR = 0, NVME_AER_SMART = 1, NVME_AER_NOTICE = 2, + NVME_AER_IMMEDIATE = 3, + NVME_AER_ONESHOT = 4, NVME_AER_CSS = 6, NVME_AER_VS = 7, }; @@ -6537,6 +7013,122 @@ struct nvmf_connect_data { char rsvd5[256]; }; +/** + * struct nvme_host_ext_discover_log - Host Extended Discovery Log + * @trtype: Transport Type + * @adrfam: Address Family + * @rsvd2: Reserved + * @eflags: Entry Flags + * @rsvd12: Reserved + * @hostnqn: Host NVMe Qualified Name + * @traddr: Transport Address + * @tsas: Transport Specific Address Subtype + * @tel: Total Entry Length + * @numexat: Number of Extended Attributes + * @rsvd1030: Reserved + * @exat: Extended Attributes List + */ +struct nvme_host_ext_discover_log { + __u8 trtype; + __u8 adrfam; + __u8 rsvd2[8]; + __le16 eflags; + __u8 rsvd12[244]; + char hostnqn[NVME_NQN_LENGTH]; + char traddr[NVMF_TRADDR_SIZE]; + union nvmf_tsas tsas; + __le32 tel; + __le16 numexat; + __u8 rsvd1030[2]; + struct nvmf_ext_attr exat[]; +}; + +/** + * struct nvme_host_discover_log - Host Discovery Log + * @genctr: Generation Counter + * @numrec: Number of Records + * @recfmt: Record Format + * @hdlpf: Host Discovery Log Page Flags + * @rsvd19: Reserved + * @thdlpl: Total Host Discovery Log Page Length + * @rsvd24: Reserved + * @hedlpe: Host Extended Discovery Log Page Entry List + */ +struct nvme_host_discover_log { + __le64 genctr; + __le64 numrec; + __le16 recfmt; + __u8 hdlpf; + __u8 rsvd19; + __le32 thdlpl; + __u8 rsvd24[1000]; + struct nvme_host_ext_discover_log hedlpe[]; +}; + +/** + * struct nvme_ave_tr_record - AVE Transport Record + * @aveadrfam: AVE Address Family + * @rsvd1: Reserved + * @avetrsvcid: AVE Transport Service Identifier + * @avetraddr: AVE Transport Address + */ +struct nvme_ave_tr_record { + __u8 aveadrfam; + __u8 rsvd1; + __le16 avetrsvcid; + __u8 avetraddr[16]; +}; + +/** + * struct nvme_ave_discover_log_entry - AVE Discovery Log Entry + * @tel: Total Entry Length + * @avenqn: AVE NQN + * @numatr: Number of AVE Transport Records + * @rsvd229: Reserved + * @atr: AVE Transport Record List + */ +struct nvme_ave_discover_log_entry { + __le32 tel; + char avenqn[224]; + __u8 numatr; + __u8 rsvd229[3]; + struct nvme_ave_tr_record atr[]; +}; + +/** + * struct nvme_ave_discover_log - AVE Discovery Log + * @genctr: Generation Counter + * @numrec: Number of Records + * @recfmt: Record Format + * @rsvd18: Reserved + * @tadlpl: Total AVE Discovery Log Page Length + * @rsvd24: Reserved + * @adlpe: AVE Discovery Log Page Entry List + */ +struct nvme_ave_discover_log { + __le64 genctr; + __le64 numrec; + __le16 recfmt; + __u8 rsvd18[2]; + __le32 tadlpl; + __u8 rsvd24[1000]; + struct nvme_ave_discover_log_entry adlpe[]; +}; + +/** + * struct nvme_pull_model_ddc_req_log - Pull Model DDC Request Log + * @ori: Operation Request Identifier + * @rsvd1: Reserved + * @tpdrpl: Total Pull Model DDC Request Log Page Length + * @osp: Operation Specific Parameters + */ +struct nvme_pull_model_ddc_req_log { + __u8 ori; + __u8 rsvd1[3]; + __le32 tpdrpl; + __u8 osp[]; +}; + /** * struct nvme_mi_read_nvm_ss_info - NVM Subsystem Information Data Structure * @nump: Number of Ports @@ -7091,6 +7683,14 @@ struct nvme_mi_vpd_hdr { * @NVME_SC_ADMIN_CMD_MEDIA_NOT_READY: Admin Command Media Not Ready: The Admin * command requires access to media and * the media is not ready. + * @NVME_SC_INVALID_KEY_TAG: The command was aborted due to an invalid KEYTAG + * field value. + * @NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED: The command is prohibited while the + * Host Disperesed Namespace Support (HDISNS) field is not + * set to 1h in the Host Behavior Support feature. + * @NVME_SC_HOST_ID_NOT_INITIALIZED: Host Identifier Not Initialized. + * @NVME_SC_INCORRECT_KEY: The command was aborted due to the key associated + * with the KEYTAG field being incorrect. * @NVME_SC_FDP_DISABLED: Command is not allowed when * Flexible Data Placement is disabled. * @NVME_SC_INVALID_PLACEMENT_HANDLE_LIST: The Placement Handle List is invalid @@ -7114,6 +7714,15 @@ struct nvme_mi_vpd_hdr { * namespace. * @NVME_SC_FORMAT_IN_PROGRESS: Format In Progress: A Format NVM command * is in progress on the namespace. + * @NVME_SC_INVALID_VALUE_SIZE: The value size is not valid. + * @NVME_SC_INVALID_KEY_SIZE: The KV key size is not valid. + * @NVME_SC_KV_KEY_NOT_EXISTS: The Store If Key Exists (SIKE) bit is set to + * '1' in the Store Option field and the KV key does not + * exists. + * @NVME_SC_UNRECOVERED_ERROR: There was an unrecovered error when reading + * from the meidum. + * @NVME_SC_KEY_EXISTS: The Store If No Key Exists (SINKE) bit is set to '1' + * in the Store Option field and the KV key exists. * @NVME_SC_CQ_INVALID: Completion Queue Invalid: The Completion * Queue identifier specified in the command * does not exist. @@ -7471,6 +8080,10 @@ enum nvme_status_field { NVME_SC_TRAN_TPORT_ERROR = 0x22, NVME_SC_PROHIBITED_BY_CMD_AND_FEAT = 0x23, NVME_SC_ADMIN_CMD_MEDIA_NOT_READY = 0x24, + NVME_SC_INVALID_KEY_TAG = 0x25, + NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED = 0x26, + NVME_SC_HOST_ID_NOT_INITIALIZED = 0x27, + NVME_SC_INCORRECT_KEY = 0x28, NVME_SC_FDP_DISABLED = 0x29, NVME_SC_INVALID_PLACEMENT_HANDLE_LIST = 0x2A, NVME_SC_LBA_RANGE = 0x80, @@ -7478,6 +8091,11 @@ enum nvme_status_field { NVME_SC_NS_NOT_READY = 0x82, NVME_SC_RESERVATION_CONFLICT = 0x83, NVME_SC_FORMAT_IN_PROGRESS = 0x84, + NVME_SC_INVALID_VALUE_SIZE = 0x85, + NVME_SC_INVALID_KEY_SIZE = 0x86, + NVME_SC_KV_KEY_NOT_EXISTS = 0x87, + NVME_SC_UNRECOVERED_ERROR = 0x88, + NVME_SC_KEY_EXISTS = 0x89, /* * Command Specific Status Codes: @@ -7743,14 +8361,28 @@ static inline __u32 nvme_status_equals(int status, enum nvme_status_type type, * @nvme_admin_fabric_zoning_recv: Fabric Zoning Receive * @nvme_admin_lockdown: Lockdown * @nvme_admin_fabric_zoning_lookup: Fabric Zoning Lookup + * @nvme_admin_clear_export_nvm_res: Clear Exported NVM Resource Configuration * @nvme_admin_fabric_zoning_send: Fabric Zoning Send + * @nvme_admin_create_export_nvms: Create Exported NVM Subsystem + * @nvme_admin_manage_export_nvms: Manage Exported NVM Subsystem + * @nvme_admin_manage_export_ns: Manage Exported Namespace + * @nvme_admin_manage_export_port: Manage Exported Port + * @nvme_admin_send_disc_log_page: Send Discovery Log Page + * @nvme_admin_track_send: Track Send + * @nvme_admin_track_receive: Track Receive + * @nvme_admin_migration_send: Migration Send + * @nvme_admin_migration_receive: Migration Receive + * @nvme_admin_ctrl_data_queue: Controller Data Queue * @nvme_admin_dbbuf: Doorbell Buffer Config * @nvme_admin_fabrics: Fabrics Commands * @nvme_admin_format_nvm: Format NVM * @nvme_admin_security_send: Security Send * @nvme_admin_security_recv: Security Receive * @nvme_admin_sanitize_nvm: Sanitize + * @nvme_admin_load_program: Load Program * @nvme_admin_get_lba_status: Get LBA Status + * @nvme_admin_program_act_mgmt: Program Activation Management + * @nvme_admin_mem_range_set_mgmt: Memory Range Set Management */ enum nvme_admin_opcode { nvme_admin_delete_sq = 0x00, @@ -7780,14 +8412,28 @@ enum nvme_admin_opcode { nvme_admin_fabric_zoning_recv = 0x22, nvme_admin_lockdown = 0x24, nvme_admin_fabric_zoning_lookup = 0x25, + nvme_admin_clear_export_nvm_res = 0x28, nvme_admin_fabric_zoning_send = 0x29, + nvme_admin_create_export_nvms = 0x2a, + nvme_admin_manage_export_nvms = 0x2d, + nvme_admin_manage_export_ns = 0x31, + nvme_admin_manage_export_port = 0x35, + nvme_admin_send_disc_log_page = 0x39, + nvme_admin_track_send = 0x3d, + nvme_admin_track_receive = 0x3e, + nvme_admin_migration_send = 0x41, + nvme_admin_migration_receive = 0x42, + nvme_admin_ctrl_data_queue = 0x45, nvme_admin_dbbuf = 0x7c, nvme_admin_fabrics = 0x7f, nvme_admin_format_nvm = 0x80, nvme_admin_security_send = 0x81, nvme_admin_security_recv = 0x82, nvme_admin_sanitize_nvm = 0x84, + nvme_admin_load_program = 0x85, nvme_admin_get_lba_status = 0x86, + nvme_admin_program_act_mgmt = 0x88, + nvme_admin_mem_range_set_mgmt = 0x89, }; /** @@ -7828,7 +8474,11 @@ enum nvme_admin_opcode { * ID list * @NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE: I/O Command Set specific ID Namespace * Data Structure for Allocated Namespace ID - * @NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE: Base Specification 2.0a section 5.17.2.21 + * @NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE: I/O Command Set data structure + * @NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST: Get Underlying Namespace List + * @NVME_IDENTIFY_CNS_PORTS_LIST: Get Ports List + * @NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS: I/O Command Set Independent Identify Namespace data + * structure for the specified allocated NSID * @NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS: Supported Controller State Formats * identifying the supported NVMe Controller * State data structures @@ -7858,6 +8508,9 @@ enum nvme_identify_cns { NVME_IDENTIFY_CNS_CSI_ALLOCATED_NS_LIST = 0x1A, NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE = 0x1B, NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE = 0x1C, + NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST = 0x1D, + NVME_IDENTIFY_CNS_PORTS_LIST = 0x1E, + NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS = 0x1F, NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS = 0x20, }; @@ -7971,12 +8624,19 @@ enum nvme_cmd_get_log_lid { * @NVME_FEAT_FID_PLM_WINDOW: Predictable Latency Mode Window * @NVME_FEAT_FID_LBA_STS_INTERVAL: LBA Status Information Report Interval * @NVME_FEAT_FID_HOST_BEHAVIOR: Host Behavior Support - * @NVME_FEAT_FID_SANITIZE: Endurance Group Event Configuration + * @NVME_FEAT_FID_SANITIZE: Sanitize Config * @NVME_FEAT_FID_ENDURANCE_EVT_CFG: Endurance Group Event Configuration * @NVME_FEAT_FID_IOCS_PROFILE: I/O Command Set Profile * @NVME_FEAT_FID_SPINUP_CONTROL: Spinup Control + * @NVME_FEAT_FID_POWER_LOSS_SIGNAL: Power Loss Signaling Config + * @NVME_FEAT_FID_PERF_CHARACTERISTICS: Performance Characteristics * @NVME_FEAT_FID_FDP: Flexible Data Placement * @NVME_FEAT_FID_FDP_EVENTS: FDP Events + * @NVME_FEAT_FID_NS_ADMIN_LABEL: Namespace Admin Label + * @NVME_FEAT_FID_KEY_VALUE: Key Value Configuration + * @NVME_FEAT_FID_CTRL_DATA_QUEUE: Controller Data Queue + * @NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR: Embedded Management Controller Address + * @NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR: Host Management Agent Address * @NVME_FEAT_FID_ENH_CTRL_METADATA: Enhanced Controller Metadata * @NVME_FEAT_FID_CTRL_METADATA: Controller Metadata * @NVME_FEAT_FID_NS_METADATA: Namespace Metadata @@ -7985,6 +8645,7 @@ enum nvme_cmd_get_log_lid { * @NVME_FEAT_FID_RESV_MASK: Reservation Notification Mask * @NVME_FEAT_FID_RESV_PERSIST: Reservation Persistence * @NVME_FEAT_FID_WRITE_PROTECT: Namespace Write Protection Config + * @NVME_FEAT_FID_BP_WRITE_PROTECT: Boot Partition Write Protection Config */ enum nvme_features_id { NVME_FEAT_FID_ARBITRATION = 0x01, @@ -8011,10 +8672,17 @@ enum nvme_features_id { NVME_FEAT_FID_HOST_BEHAVIOR = 0x16, NVME_FEAT_FID_SANITIZE = 0x17, NVME_FEAT_FID_ENDURANCE_EVT_CFG = 0x18, - NVME_FEAT_FID_IOCS_PROFILE = 0x19, /* XXX: Placeholder until assigned */ + NVME_FEAT_FID_IOCS_PROFILE = 0x19, NVME_FEAT_FID_SPINUP_CONTROL = 0x1a, + NVME_FEAT_FID_POWER_LOSS_SIGNAL = 0x1b, + NVME_FEAT_FID_PERF_CHARACTERISTICS = 0x1c, NVME_FEAT_FID_FDP = 0x1d, NVME_FEAT_FID_FDP_EVENTS = 0x1e, + NVME_FEAT_FID_NS_ADMIN_LABEL = 0x1f, + NVME_FEAT_FID_KEY_VALUE = 0x20, + NVME_FEAT_FID_CTRL_DATA_QUEUE = 0x21, + NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR = 0x78, + NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR = 0x79, NVME_FEAT_FID_ENH_CTRL_METADATA = 0x7d, NVME_FEAT_FID_CTRL_METADATA = 0x7e, NVME_FEAT_FID_NS_METADATA = 0x7f, @@ -8023,6 +8691,7 @@ enum nvme_features_id { NVME_FEAT_FID_RESV_MASK = 0x82, NVME_FEAT_FID_RESV_PERSIST = 0x83, NVME_FEAT_FID_WRITE_PROTECT = 0x84, + NVME_FEAT_FID_BP_WRITE_PROTECT = 0x85, }; /** @@ -8083,6 +8752,26 @@ enum nvme_features_id { * @NVME_FEAT_AE_LBAS_MASK: * @NVME_FEAT_AE_EGA_SHIFT: * @NVME_FEAT_AE_EGA_MASK: + * @NVME_FEAT_AE_NNSSHDN_SHIFT: + * @NVME_FEAT_AE_NNSSHDN_MASK: + * @NVME_FEAT_AE_TTHRY_SHIFT: + * @NVME_FEAT_AE_TTHRY_MASK: + * @NVME_FEAT_AE_RASSN_SHIFT: + * @NVME_FEAT_AE_RASSN_MASK: + * @NVME_FEAT_AE_RGRP0_SHIFT: + * @NVME_FEAT_AE_RGRP0_MASK: + * @NVME_FEAT_AE_ANSAN_SHIFT: + * @NVME_FEAT_AE_ANSAN_MASK: + * @NVME_FEAT_AE_ZDCN_SHIFT: + * @NVME_FEAT_AE_ZDCN_MASK: + * @NVME_FEAT_AE_PMDRLPCN_SHIFT: + * @NVME_FEAT_AE_PMDRLPCN_MASK: + * @NVME_FEAT_AE_ADLPCN_SHIFT: + * @NVME_FEAT_AE_ADLPCN_MASK: + * @NVME_FEAT_AE_HDLPCN_SHIFT: + * @NVME_FEAT_AE_HDLPCN_MASK: + * @NVME_FEAT_AE_DLPCN_SHIFT: + * @NVME_FEAT_AE_DLPCN_MASK: * @NVME_FEAT_APST_APSTE_SHIFT: * @NVME_FEAT_APST_APSTE_MASK: * @NVME_FEAT_HMEM_EHM_SHIFT: @@ -8109,6 +8798,10 @@ enum nvme_features_id { * @NVME_FEAT_EG_ENDGID_MASK: * @NVME_FEAT_EG_EGCW_SHIFT: * @NVME_FEAT_EG_EGCW_MASK: + * @NVME_FEAT_FDPE_PHNDL_SHIFT: + * @NVME_FEAT_FDPE_PHNDL_MASK: + * @NVME_FEAT_FDPE_NOET_SHIFT: + * @NVME_FEAT_FDPE_NOET_MASK: * @NVME_FEAT_SPM_PBSLC_SHIFT: * @NVME_FEAT_SPM_PBSLC_MASK: * @NVME_FEAT_HOSTID_EXHID_SHIFT: @@ -8125,6 +8818,10 @@ enum nvme_features_id { * @NVME_FEAT_WP_WPS_MASK: * @NVME_FEAT_IOCSP_IOCSCI_SHIFT: * @NVME_FEAT_IOCSP_IOCSCI_MASK: + * @NVME_FEAT_SPINUP_CONTROL_SHIFT: + * @NVME_FEAT_SPINUP_CONTROL_MASK: + * @NVME_FEAT_PLS_MODE_SHIFT: + * @NVME_FEAT_PLS_MODE_MASK: * @NVME_FEAT_FDP_ENABLED_SHIFT: * @NVME_FEAT_FDP_ENABLED_MASK: * @NVME_FEAT_FDP_INDEX_SHIFT: @@ -8189,6 +8886,26 @@ enum nvme_feat { NVME_FEAT_AE_LBAS_MASK = 0x1, NVME_FEAT_AE_EGA_SHIFT = 14, NVME_FEAT_AE_EGA_MASK = 0x1, + NVME_FEAT_AE_NNSSHDN_SHIFT = 15, + NVME_FEAT_AE_NNSSHDN_MASK = 0x1, + NVME_FEAT_AE_TTHRY_SHIFT = 16, + NVME_FEAT_AE_TTHRY_MASK = 0x1, + NVME_FEAT_AE_RASSN_SHIFT = 17, + NVME_FEAT_AE_RASSN_MASK = 0x1, + NVME_FEAT_AE_RGRP0_SHIFT = 18, + NVME_FEAT_AE_RGRP0_MASK = 0x1, + NVME_FEAT_AE_ANSAN_SHIFT = 19, + NVME_FEAT_AE_ANSAN_MASK = 0x1, + NVME_FEAT_AE_ZDCN_SHIFT = 27, + NVME_FEAT_AE_ZDCN_MASK = 0x1, + NVME_FEAT_AE_PMDRLPCN_SHIFT = 28, + NVME_FEAT_AE_PMDRLPCN_MASK = 0x1, + NVME_FEAT_AE_ADLPCN_SHIFT = 29, + NVME_FEAT_AE_ADLPCN_MASK = 0x1, + NVME_FEAT_AE_HDLPCN_SHIFT = 30, + NVME_FEAT_AE_HDLPCN_MASK = 0x1, + NVME_FEAT_AE_DLPCN_SHIFT = 31, + NVME_FEAT_AE_DLPCN_MASK = 0x1, NVME_FEAT_APST_APSTE_SHIFT = 0, NVME_FEAT_APST_APSTE_MASK = 0x1, NVME_FEAT_HMEM_EHM_SHIFT = 0, @@ -8215,6 +8932,10 @@ enum nvme_feat { NVME_FEAT_EG_ENDGID_MASK = 0xffff, NVME_FEAT_EG_EGCW_SHIFT = 16, NVME_FEAT_EG_EGCW_MASK = 0xff, + NVME_FEAT_FDPE_PHNDL_SHIFT = 0, + NVME_FEAT_FDPE_PHNDL_MASK = 0xffff, + NVME_FEAT_FDPE_NOET_SHIFT = 16, + NVME_FEAT_FDPE_NOET_MASK = 0xff, NVME_FEAT_SPM_PBSLC_SHIFT = 0, NVME_FEAT_SPM_PBSLC_MASK = 0xff, NVME_FEAT_HOSTID_EXHID_SHIFT = 0, @@ -8231,6 +8952,10 @@ enum nvme_feat { NVME_FEAT_WP_WPS_MASK = 0x7, NVME_FEAT_IOCSP_IOCSCI_SHIFT = 0, NVME_FEAT_IOCSP_IOCSCI_MASK = 0x1ff, + NVME_FEAT_SPINUP_CONTROL_SHIFT = 0, + NVME_FEAT_SPINUP_CONTROL_MASK = 0x1, + NVME_FEAT_PLS_MODE_SHIFT = 0, + NVME_FEAT_PLS_MODE_MASK = 0x3, NVME_FEAT_FDP_ENABLED_SHIFT = 0, NVME_FEAT_FDP_ENABLED_MASK = 0x1, NVME_FEAT_FDP_INDEX_SHIFT = 8, @@ -8433,12 +9158,14 @@ enum nvme_sanitize_sanact { * enum nvme_dst_stc - Action taken by the Device Self-test command * @NVME_DST_STC_SHORT: Start a short device self-test operation * @NVME_DST_STC_LONG: Start an extended device self-test operation + * @NVME_DST_STC_HOST_INIT:Start a Host-Initiated Refresh operation * @NVME_DST_STC_VS: Start a vendor specific device self-test operation * @NVME_DST_STC_ABORT: Abort device self-test operation */ enum nvme_dst_stc { NVME_DST_STC_SHORT = 0x1, NVME_DST_STC_LONG = 0x2, + NVME_DST_STC_HOST_INIT = 0x3, NVME_DST_STC_VS = 0xe, NVME_DST_STC_ABORT = 0xf, }; @@ -8661,6 +9388,7 @@ enum nvme_data_tfr { * @nvme_zns_cmd_mgmt_send: Zone Management Send * @nvme_zns_cmd_mgmt_recv: Zone Management Receive * @nvme_zns_cmd_append: Zone Append + * @nvme_cmd_fabric: Fabric Commands */ enum nvme_io_opcode { nvme_cmd_flush = 0x00, @@ -8682,6 +9410,7 @@ enum nvme_io_opcode { nvme_zns_cmd_mgmt_send = 0x79, nvme_zns_cmd_mgmt_recv = 0x7a, nvme_zns_cmd_append = 0x7d, + nvme_cmd_fabric = 0x7f, }; /** @@ -8713,6 +9442,7 @@ enum nvme_kv_opcode { /** * enum nvme_io_control_flags - I/O control flags * @NVME_IO_DTYPE_STREAMS: Directive Type Streams + * @NVME_IO_NSZ: Namespace Zeroes * @NVME_IO_STC: Storage Tag Check * @NVME_IO_DEAC: Deallocate * @NVME_IO_ZNS_APPEND_PIREMAP: Protection Information Remap @@ -8725,6 +9455,7 @@ enum nvme_kv_opcode { */ enum nvme_io_control_flags { NVME_IO_DTYPE_STREAMS = 1 << 4, + NVME_IO_NSZ = 1 << 7, NVME_IO_STC = 1 << 8, NVME_IO_DEAC = 1 << 9, NVME_IO_ZNS_APPEND_PIREMAP = 1 << 9, @@ -9009,4 +9740,390 @@ struct nvme_ns_mgmt_host_sw_specified { }; #endif /* SWIG */ +/** + * enum nvme_lm_cdq_fields - Controller Data Queue command fields + * + * @NVME_LM_CDQ_MOS_SHIFT: Shift to set Management Operation Specific (MOS) field + * @NVME_LM_CDQ_MOS_MASK: Mask to set MOS field + * @NVME_LM_CDQ_SEL_SHIFT: Shift to set Select (SEL) field + * @NVME_LM_CDQ_SEL_MASK: Mask to set SEL field + * @NVME_LM_SEL_CREATE_CDQ: Create CDQ select option + * @NVME_LM_SEL_DELETE_CDQ: Delete CDQ select option + * @NVME_LM_QT_SHIFT: Shift amount to set Queue Type (QT) field relative to MOS + * @NVME_LM_QT_MASK: Mask to set QT field relative to MOS + * @NVME_LM_QT_USER_DATA_MIGRATION_QUEUE: User Data Migration Queue type + * @NVME_LM_CREATE_CDQ_PC: Physically Contiguous (PC) + * @NVME_LM_CREATE_CDQ_CNTLID_SHIFT: Shift amount to set CNTLID field relative to MOS + * @NVME_LM_CREATE_CDQ_CNTLID_MASK: Mask to set CNTLID field relative to MOS + * @NVME_LM_DELETE_CDQ_CDQID_SHIFT: Shift amount to set CDQID field for deletion + * @NVME_LM_DELETE_CDQ_CDQID_MASK: Mask to set CDQID field for deletion + * @NVME_LM_CREATE_CDQ_CDQID_SHIFT: Shift amount to get CDQID field from Create response in + * completion dword0 + * @NVME_LM_CREATE_CDQ_CDQID_MASK: Mask to get CNTLID field from Create response in + * completion dword0 + */ +enum nvme_lm_cdq_fields { + NVME_LM_CDQ_MOS_SHIFT = 16, + NVME_LM_CDQ_MOS_MASK = 0xffff, + NVME_LM_CDQ_SEL_SHIFT = 0, + NVME_LM_CDQ_SEL_MASK = 0xff, + NVME_LM_SEL_CREATE_CDQ = 0, + NVME_LM_SEL_DELETE_CDQ = 1, + + /* Controller Data Queue - Create CDQ */ + NVME_LM_QT_SHIFT = 0, + NVME_LM_QT_MASK = 0xff, + NVME_LM_QT_USER_DATA_MIGRATION_QUEUE = 0, + NVME_LM_CREATE_CDQ_PC = 1, + NVME_LM_CREATE_CDQ_CNTLID_SHIFT = 0, + NVME_LM_CREATE_CDQ_CNTLID_MASK = 0xffff, + + /* Controller Data Queue - Delete CDQ */ + NVME_LM_DELETE_CDQ_CDQID_SHIFT = 0, + NVME_LM_DELETE_CDQ_CDQID_MASK = 0xffff, + + /* Controller Data Queue - Create CDQ - Completion Queue Entry Dword 0 */ + NVME_LM_CREATE_CDQ_CDQID_SHIFT = 0, + NVME_LM_CREATE_CDQ_CDQID_MASK = 0xffff, +}; + +/** + * enum nvme_lm_track_send_fields - Track Send command fields + * + * @NVME_LM_TRACK_SEND_MOS_SHIFT: Shift to set Management Operation Specific (MOS) field + * @NVME_LM_TRACK_SEND_MOS_MASK: Mask to set MOS field + * @NVME_LM_TRACK_SEND_SEL_SHIFT: Shift to set Select (SEL) field + * @NVME_LM_TRACK_SEND_SEL_MASK: Mask to set SEL field + * @NVME_LM_SEL_LOG_USER_DATA_CHANGES: Log User Data Changes select option + * @NVME_LM_SEL_TRACK_MEMORY_CHANGES: Track Memory Changes select option + * @NVME_LM_LACT_SHIFT: Shift to set Logging Action (LACT) relative to MOS + * @NVME_LM_LACT_MASK: Mask to set LACT relative to MOS + * @NVME_LM_LACT_STOP_LOGGING: The controller shall stop logging user data changes to + * namespaces attached to the controller associated with the + * User Data Migration Queue specified in the CDQ ID. + * @NVME_LM_LACT_START_LOGGING: The controller shall start logging user data changes to + * namespaces attached to the controller associated with the + * User Data Migration Queue into that User Data Migration + * Queue where those user data changes are caused by the + * controller associated with that User Data Migration Queue + * processing commands. + */ +enum nvme_lm_track_send_fields { + NVME_LM_TRACK_SEND_MOS_SHIFT = 16, + NVME_LM_TRACK_SEND_MOS_MASK = 0xffff, + NVME_LM_TRACK_SEND_SEL_SHIFT = 0, + NVME_LM_TRACK_SEND_SEL_MASK = 0xff, + NVME_LM_SEL_LOG_USER_DATA_CHANGES = 0, + NVME_LM_SEL_TRACK_MEMORY_CHANGES = 1, + + /* Track Send - Log User Data Changes */ + NVME_LM_LACT_SHIFT = 0, + NVME_LM_LACT_MASK = 0xf, + NVME_LM_LACT_STOP_LOGGING = 0, + NVME_LM_LACT_START_LOGGING = 1, +}; + +/** + * enum nvme_lm_migration_send_fields - Migration Send command fields + * + * @NVME_LM_MIGRATION_SEND_MOS_SHIFT: Shift to set Management Operation Specific (MOS) + * field + * @NVME_LM_MIGRATION_SEND_MOS_MASK: Mask to set MOS field + * @NVME_LM_MIGRATION_SEND_SEL_SHIFT: Shift amount to set Select (SEL) field + * @NVME_LM_MIGRATION_SEND_SEL_MASK: Mask to set SEL field + * @NVME_LM_SEL_SUSPEND: Migration Send - Suspend + * @NVME_LM_SEL_RESUME: Migration Send - Resume + * @NVME_LM_SEL_SET_CONTROLLER_STATE: Migration Send - Set Controller State + * @NVME_LM_MIGRATION_SEND_UIDX_SHIFT: Shift to set UUID Index (UIDX) + * @NVME_LM_MIGRATION_SEND_UIDX_MASK: Mask to set UIDX + * @NVME_LM_DUDMQ: Delete User Data Migration Queue + * @NVME_LM_STYPE_SHIFT: Shift amount to set Suspend Type (STYPE) + * @NVME_LM_STYPE_MASK: Mask to set STYPE + * @NVME_LM_STYPE_SUSPEND_NOTIFICATION: Suspend Notification - The specified controller is + * going to be suspended in the future with a + * subsequent Migration Send command + * @NVME_LM_STYPE_SUSPEND: Suspend - Suspend the controller + * @NVME_LM_SUSPEND_CNTLID_SHIFT: Shift amount to set Controller ID (CNTLID) when SEL + * is Suspend + * @NVME_LM_SUSPEND_CNTLID_MASK: Mask to set CNTLID with SEL Suspend + * @NVME_LM_RESUME_CNTLID_SHIFT: Shift amount to set Controller ID (CNTLID) when SEL + * is Resume + * @NVME_LM_RESUME_CNTLID_MASK: Mask to set CNTLID when SEL is Resume + * @NVME_LM_SEQIND_SHIFT: Shift amount to set Sequence Indicator (SEQIND) + * field relative to MOS + * @NVME_LM_SEQIND_MASK: Mask to set SEQIND field relative to MOS + * @NVME_LM_SEQIND_NOT_FIRST_NOT_LAST: This command is not the first or last of a sequence + * of two or more Migration Send commands with this + * management operation used to transfer the controller + * state from host to controller + * @NVME_LM_SEQIND_FIRST: This command is the first of a sequence of two or + * more Migration Send commands + * @NVME_LM_SEQIND_LAST: This command is the last command of a sequence of + * two or more Migration Send commands + * @NVME_LM_SEQIND_ENTIRE: This Migration Send command is the only command and + * contains the entire controller state for this + * management operation + * @NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT: Shift amount to set Controller State UUID Index + * (CSUUIDI) + * @NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK: Mask to set CSUUIDI + * @NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT: Shift amount to set Controller State Version Index + * (CSVI) + * @NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK: Mask to set CSVI + * @NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT: Shift amount to set Controller ID (CNTLID) when SEL + * is Set Controller State + * @NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK: Mask to set CNTLID when SEL is Set Controller State + */ +enum nvme_lm_migration_send_fields { + NVME_LM_MIGRATION_SEND_MOS_SHIFT = 16, + NVME_LM_MIGRATION_SEND_MOS_MASK = 0xffff, + NVME_LM_MIGRATION_SEND_SEL_SHIFT = 0, + NVME_LM_MIGRATION_SEND_SEL_MASK = 0xff, + NVME_LM_SEL_SUSPEND = 0, + NVME_LM_SEL_RESUME = 1, + NVME_LM_SEL_SET_CONTROLLER_STATE = 2, + NVME_LM_MIGRATION_SEND_UIDX_SHIFT = 0, + NVME_LM_MIGRATION_SEND_UIDX_MASK = 0x7f, + + /* Migration Send - Suspend */ + NVME_LM_DUDMQ = 1 << 31, + NVME_LM_STYPE_SHIFT = 16, + NVME_LM_STYPE_MASK = 0xff, + NVME_LM_STYPE_SUSPEND_NOTIFICATION = 0, + NVME_LM_STYPE_SUSPEND = 1, + NVME_LM_SUSPEND_CNTLID_SHIFT = 0, + NVME_LM_SUSPEND_CNTLID_MASK = 0Xffff, + + /* Migration Send - Resume */ + NVME_LM_RESUME_CNTLID_SHIFT = 0, + NVME_LM_RESUME_CNTLID_MASK = 0xffff, + + /* Migration Send - Set Controller State */ + NVME_LM_SEQIND_SHIFT = 16, + NVME_LM_SEQIND_MASK = 0xf, + NVME_LM_SEQIND_NOT_FIRST_NOT_LAST = 0, + NVME_LM_SEQIND_FIRST = 1, + NVME_LM_SEQIND_LAST = 2, + NVME_LM_SEQIND_ENTIRE = 3, + NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT = 24, + NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK = 0xff, + NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT = 16, + NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK = 0xff, + NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT = 0, + NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK = 0xffff, +}; + +/** + * enum nvme_lm_migration_recv_fields - Migration Receive command fields + * + * @NVME_LM_MIGRATION_RECV_MOS_SHIFT: Shift amount to set Management Specific Operation + * (MOS) field + * @NVME_LM_MIGRATION_RECV_MOS_MASK: Mask to set MOS field + * @NVME_LM_MIGRATION_RECV_SEL_SHIFT: Shift amount to set Select (SEL) field + * @NVME_LM_MIGRATION_RECV_SEL_MASK: Mask to set SEL field + * @NVME_LM_SEL_GET_CONTROLLER_STATE: Get Controller State select option + * @NVME_LM_MIGRATION_RECV_UIDX_SHIFT: Shift to set UUID Index (UIDX) + * @NVME_LM_MIGRATION_RECV_UIDX_MASK: Mask to set UIDX + * @NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT: Shift amount to set Controller State Version Index + * (CSVI) relative to MOS + * @NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK: Mask to set CSVI relative to MOS + * @NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT: Shift amount to set Controller State UUID Index + * Parameter (CSUIDXP) + * @NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK: Mask to set CSUIDXP + * @NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT: Shift amount to set Controller State UUID Index + * (CSUUIDI) + * @NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK: Mask to set CSUUIDI + * @NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT: Shift amount to set Controller ID (CNTLID) + * @NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK: Mask to set CNTLID + * @NVME_LM_GET_CONTROLLER_STATE_CSUP: Controller Suspended + */ +enum nvme_lm_migration_recv_fields { + NVME_LM_MIGRATION_RECV_MOS_SHIFT = 16, + NVME_LM_MIGRATION_RECV_MOS_MASK = 0xffff, + NVME_LM_MIGRATION_RECV_SEL_SHIFT = 0, + NVME_LM_MIGRATION_RECV_SEL_MASK = 0xff, + NVME_LM_SEL_GET_CONTROLLER_STATE = 0, + NVME_LM_MIGRATION_RECV_UIDX_SHIFT = 0, + NVME_LM_MIGRATION_RECV_UIDX_MASK = 0x7f, + + /* Migration Receive - Get Controller State */ + NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT = 0, + NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK = 0xff, + NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT = 24, + NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK = 0xff, + NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT = 16, + NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK = 0xff, + NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT = 0, + NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK = 0xffff, + + /* Migration Receive - Get Controller State - Completion Queue Entry Dword 0 */ + NVME_LM_GET_CONTROLLER_STATE_CSUP = 1 << 0, +}; + +/** + * struct nvme_lm_io_submission_queue_data - I/O Submission Queue data structure. Fields related to + * the contents of Create I/O Submission Queue command that created an I/O Submission Queue. + * + * @iosqprp1: I/O Submission PRP Entry 1 (IOSQPRP1) + * @iosqqsize: I/O Submission Queue Size (IOSQQSIZE) + * @iosqqid: I/O Submission Queue Identifier (IOSQQID) + * @iosqcqid: I/O Completion Queue Identifier (IOSQCQID) + * @iosqa: I/O Submission Queue Attributes (IOSQA) + * @iosqhp: I/O Submission Queue Head Pointer (IOSQHP) + * @iosqtp: I/O Submission Queue Tail Pointer (IOSQTP) + * @rsvd20: Reserved + */ +struct nvme_lm_io_submission_queue_data { + __le64 iosqprp1; + __le16 iosqqsize; + __le16 iosqqid; + __le16 iosqcqid; + __le16 iosqa; + __le16 iosqhp; + __le16 iosqtp; + __u8 rsvd20[4]; +}; + +/** + * struct nvme_lm_io_completion_queue_data - I/O Completion Queue data structure. Fields related to + * the contents of Create I/O Completion Queue command that created an I/O Completion Queue. + * + * @iocqprp1: I/O Completion Queue PRP Entry 1 (IOCQPRP1) + * @iocqqsize: I/O Completion Queue Size (IOCQQSIZE) + * @iocqqid: I/O Completion Queue Identifier (IOCQQID) + * @iocqhp: I/O Completion Queue Head Pointer (IOCQHP) + * @iocqtp: I/O Completion Queue Tail Pointer (IOCQTP) + * @iocqa: I/O Completion Queue Attributes (IOCQA) + * @rsvd20: Reserved + */ +struct nvme_lm_io_completion_queue_data { + __le64 iocqprp1; + __le16 iocqqsize; + __le16 iocqqid; + __le16 iocqhp; + __le16 iocqtp; + __le32 iocqa; + __u8 rsvd20[4]; +}; + +/** + * struct nvme_lm_nvme_controller_state_data_header - Controller State data structure header + * + * @ver: The version of this data structure. + * @niosq: The number of I/O Submission Queues contained in this data structure. + * @niocq: The number of I/O Completion Queues contained in this data structure. + * @rsvd6: Reserved + */ +struct nvme_lm_nvme_controller_state_data_header { + __le16 ver; + __le16 niosq; + __le16 niocq; + __le16 rsvd6; +}; + +/** + * struct nvme_lm_nvme_controller_state_data - NVMe Controller State data structure describes the + * state of a NVMe Controller's I/O Submission and I/O Completion queues + * + * @hdr: Header + * @sqs: I/O Submission Queue list + * @cqs: I/O Completion Queue list + */ +struct nvme_lm_nvme_controller_state_data { + struct nvme_lm_nvme_controller_state_data_header hdr; + union { + struct nvme_lm_io_submission_queue_data sqs[0]; + struct nvme_lm_io_completion_queue_data cqs[0]; + }; +}; + +/** + * struct nvme_lm_controller_state_data_header - Controller State data header structure describes + * the contents of the Controller State data + * + * @ver: Version of this data structure + * @csattr: Controller state attributes + * @rsvd3: Reserved + * @nvmecss: NVMe Controller state size in dwords + * @vss: Vendor specific size in dowrds + */ +struct nvme_lm_controller_state_data_header { + __le16 ver; + __u8 csattr; + __u8 rsvd3[13]; + __u8 nvmecss[16]; + __u8 vss[16]; +}; + +/** + * struct nvme_lm_controller_state_data - Controller State data structure contains data on the + * controller's state. + * + * @hdr: Header + * @data: Data + */ +struct nvme_lm_controller_state_data { + struct nvme_lm_controller_state_data_header hdr; + struct nvme_lm_nvme_controller_state_data data; +}; + +/** + * enum nvme_lm_queue_attributes - I/O Submission and I/O Completion Queue Attributes + * + * @NVME_LM_IOSQPC_MASK: Mask to get the Physically Contiguous (PC) bit for this I/O + * submission queue. + * @NVME_LM_IOSQPC_SHIFT: Shift to get the PC bit for this I/O submission queue + * @NVME_LM_IOSQPRIO_MASK: Mask to get the Priority for this I/O submission queue. + * @NVME_LM_IOSQPRIO_SHIFT: Shift to get the Priority for this I/O submission queue. + * @NVME_LM_IOCQPC_MASK: Mask to get the Physicaly Contiguous (PC) bit for this I/O + * completion queue. + * @NVME_LM_IOCQPC_SHIFT: Shift to get the PC bit for this I/O completion queue. + * @NVME_LM_IOCQIEN_MASK: Mask to get the Interrupts Enabled bit for this I/O completion + * queue + * @NVME_LM_IOCQIEN_SHIFT: Shift to get the Interrupts Enabled bit for this I/O completion + * @NVME_LM_S0PT_MASK: Mask to get the value of the Phase Tag bit for Slot 0 of this I/O + * completion queue. + * @NVME_LM_S0PT_SHIFT: Shift to get the value of the Phase Tag bit for Slot 0 of this I/O + * completion queue. + * @NVME_LM_IOCQIV_MASK: Mask to get the Interrupt Vector (IV) for this I/O completion + * queue. + * @NVME_LM_IOCQIV_SHIFT: Shift to get the IV for this I/O completion queue. + */ +enum nvme_lm_queue_attributes { + /* I/O Submission Queue */ + NVME_LM_IOSQPC_MASK = 0x1, + NVME_LM_IOSQPC_SHIFT = 0, + NVME_LM_IOSQPRIO_MASK = 0x3, + NVME_LM_IOSQPRIO_SHIFT = 1, + /* I/O Completion Queue */ + NVME_LM_IOCQPC_MASK = 0x1, + NVME_LM_IOCQPC_SHIFT = 0, + NVME_LM_IOCQIEN_MASK = 0x1, + NVME_LM_IOCQIEN_SHIFT = 1, + NVME_LM_S0PT_MASK = 0x1, + NVME_LM_S0PT_SHIFT = 2, + NVME_LM_IOCQIV_MASK = 0xffff, + NVME_LM_IOCQIV_SHIFT = 16, +}; + +/** + * enum nvme_lm_ctrl_data_queue_fid - Controller Data Queue - Set Feature + * + * @NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK: Mask to set Enable Tail Pointer Trigger (ETPT) + * @NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT: Shift to set ETPT + */ +enum nvme_lm_ctrl_data_queue_fid { + NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK = 0x1, + NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT = 31, +}; + +/** + * struct nvme_lm_ctrl_data_queue_fid_data - Get Controller Data Queue feature data + * + * @hp: Head Pointer + * @tpt: Tail Pointer Trigger + */ +struct nvme_lm_ctrl_data_queue_fid_data { + __le32 hp; + __le32 tpt; +}; #endif /* _LIBNVME_TYPES_H */ diff --git a/src/nvme/util.c b/src/nvme/util.c index 1af358a..de80d7b 100644 --- a/src/nvme/util.c +++ b/src/nvme/util.c @@ -22,6 +22,7 @@ #include #include +#include #include #include "cleanup.h" @@ -52,6 +53,10 @@ static inline __u8 nvme_generic_status_to_errno(__u16 status) case NVME_SC_PRP_INVALID_OFFSET: case NVME_SC_CMB_INVALID_USE: case NVME_SC_KAT_INVALID: + case NVME_SC_INVALID_KEY_TAG: + case NVME_SC_INCORRECT_KEY: + case NVME_SC_INVALID_VALUE_SIZE: + case NVME_SC_INVALID_KEY_SIZE: return EINVAL; case NVME_SC_CMDID_CONFLICT: return EADDRINUSE; @@ -227,11 +232,20 @@ static const char * const generic_status[] = { [NVME_SC_TRAN_TPORT_ERROR] = "Transient Transport Error: A transient transport error was detected", [NVME_SC_PROHIBITED_BY_CMD_AND_FEAT] = "Command Prohibited by Command and Feature Lockdown: The command was aborted due to command execution being prohibited by the Command and Feature Lockdown", [NVME_SC_ADMIN_CMD_MEDIA_NOT_READY] = "Admin Command Media Not Ready: The Admin command requires access to media and the media is not ready", + [NVME_SC_INVALID_KEY_TAG] = "The command was aborted due to an invalid KEYTAG field value", + [NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED] = "The command is prohibited while the Host Disperesed Namespace Support (HDISNS) field is not set to 1h in the Host Behavior Support feature", + [NVME_SC_HOST_ID_NOT_INITIALIZED] = "Host Identifier Not Initialized", + [NVME_SC_INCORRECT_KEY] = "The command was aborted due to the key associated with the KEYTAG field being incorrect", [NVME_SC_LBA_RANGE] = "LBA Out of Range: The command references an LBA that exceeds the size of the namespace", [NVME_SC_CAP_EXCEEDED] = "Capacity Exceeded: Execution of the command has caused the capacity of the namespace to be exceeded", [NVME_SC_NS_NOT_READY] = "Namespace Not Ready: The namespace is not ready to be accessed", [NVME_SC_RESERVATION_CONFLICT] = "Reservation Conflict: The command was aborted due to a conflict with a reservation held on the accessed namespace", [NVME_SC_FORMAT_IN_PROGRESS] = "Format In Progress: A Format NVM command is in progress on the namespace", + [NVME_SC_INVALID_VALUE_SIZE] = "The value size is not valid", + [NVME_SC_INVALID_KEY_SIZE] = "The KV key size is not valid", + [NVME_SC_KV_KEY_NOT_EXISTS] = "The Store If Key Exists (SIKE) bit is set to '1' in the Store Option field and the KV key does not exists", + [NVME_SC_UNRECOVERED_ERROR] = "There was an unrecovered error when reading from the medium", + [NVME_SC_KEY_EXISTS] = "The Store If No Key Exists (SINKE) bit is set to '1' in the Store Option field and the KV key exists", }; static const char * const cmd_spec_status[] = { diff --git a/src/nvme/util.h b/src/nvme/util.h index 364ca0f..409dd3f 100644 --- a/src/nvme/util.h +++ b/src/nvme/util.h @@ -337,6 +337,16 @@ static inline void nvme_feature_decode_write_atomicity(__u32 value, bool *dn) #define NVME_FEAT_AE_PLA(v) NVME_GET(v, FEAT_AE_PLA) #define NVME_FEAT_AE_LBAS(v) NVME_GET(v, FEAT_AE_LBAS) #define NVME_FEAT_AE_EGA(v) NVME_GET(v, FEAT_AE_EGA) +#define NVME_FEAT_AE_NNSSHDN(v) NVME_GET(v, FEAT_AE_NNSSHDN) +#define NVME_FEAT_AE_TTHRY(v) NVME_GET(v, FEAT_AE_TTHRY) +#define NVME_FEAT_AE_RASSN(v) NVME_GET(v, FEAT_AE_RASSN) +#define NVME_FEAT_AE_RGRP0(v) NVME_GET(v, FEAT_AE_RGRP0) +#define NVME_FEAT_AE_ANSAN(v) NVME_GET(v, FEAT_AE_ANSAN) +#define NVME_FEAT_AE_ZDCN(v) NVME_GET(v, FEAT_AE_ZDCN) +#define NVME_FEAT_AE_PMDRLPCN(v) NVME_GET(v, FEAT_AE_PMDRLPCN) +#define NVME_FEAT_AE_ADLPCN(v) NVME_GET(v, FEAT_AE_ADLPCN) +#define NVME_FEAT_AE_HDLPCN(v) NVME_GET(v, FEAT_AE_HDLPCN) +#define NVME_FEAT_AE_DLPCN(v) NVME_GET(v, FEAT_AE_DLPCN) static inline void nvme_feature_decode_async_event_config(__u32 value, __u8 *smart, bool *nan, bool *fw, bool *telem, @@ -560,8 +570,6 @@ char *kv_keymatch(const char *kv, const char *key); */ char *startswith(const char *s, const char *prefix); -#define min(x, y) ((x) > (y) ? (y) : (x)) - #define __round_mask(val, mult) ((__typeof__(val))((mult)-1)) /** diff --git a/subprojects/json-c.wrap b/subprojects/json-c.wrap index 569f78e..076739d 100644 --- a/subprojects/json-c.wrap +++ b/subprojects/json-c.wrap @@ -1,13 +1,13 @@ [wrap-file] -directory = json-c-0.17 -source_url = https://s3.amazonaws.com/json-c_releases/releases/json-c-0.17.tar.gz -source_filename = json-c-0.17.tar.gz -source_hash = 7550914d58fb63b2c3546f3ccfbe11f1c094147bd31a69dcd23714d7956159e6 -patch_filename = json-c_0.17-2_patch.zip -patch_url = https://wrapdb.mesonbuild.com/v2/json-c_0.17-2/get_patch -patch_hash = c1a9a7e2ea6bed89a59e13a5684be25899a5a510963154c4450c5a492b8f3984 -source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/json-c_0.17-2/json-c-0.17.tar.gz -wrapdb_version = 0.17-2 +directory = json-c-0.18 +source_url = https://s3.amazonaws.com/json-c_releases/releases/json-c-0.18.tar.gz +source_filename = json-c-0.18.tar.gz +source_hash = 876ab046479166b869afc6896d288183bbc0e5843f141200c677b3e8dfb11724 +patch_filename = json-c_0.18-1_patch.zip +patch_url = https://wrapdb.mesonbuild.com/v2/json-c_0.18-1/get_patch +patch_hash = c9d2c0449a9686755445cd18d7cff597f21e418e11a786441de7b8947ff43798 +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/json-c_0.18-1/json-c-0.18.tar.gz +wrapdb_version = 0.18-1 [provide] json-c = json_c_dep diff --git a/subprojects/openssl.wrap b/subprojects/openssl.wrap index b69462f..873d551 100644 --- a/subprojects/openssl.wrap +++ b/subprojects/openssl.wrap @@ -3,11 +3,11 @@ directory = openssl-3.0.8 source_url = https://www.openssl.org/source/openssl-3.0.8.tar.gz source_filename = openssl-3.0.8.tar.gz source_hash = 6c13d2bf38fdf31eac3ce2a347073673f5d63263398f1f69d0df4a41253e4b3e -patch_filename = openssl_3.0.8-2_patch.zip -patch_url = https://wrapdb.mesonbuild.com/v2/openssl_3.0.8-2/get_patch -patch_hash = e84b5fe469e681e3318184157a0c7c43d4cbacd078bb88f506e31569f8f75072 -source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/openssl_3.0.8-2/openssl-3.0.8.tar.gz -wrapdb_version = 3.0.8-2 +patch_filename = openssl_3.0.8-3_patch.zip +patch_url = https://wrapdb.mesonbuild.com/v2/openssl_3.0.8-3/get_patch +patch_hash = 300da189e106942347d61a4a4295aa2edbcf06184f8d13b4cee0bed9fb936963 +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/openssl_3.0.8-3/openssl-3.0.8.tar.gz +wrapdb_version = 3.0.8-3 [provide] libcrypto = libcrypto_dep diff --git a/test/ioctl/meson.build b/test/ioctl/meson.build index bbee047..e70f0dc 100644 --- a/test/ioctl/meson.build +++ b/test/ioctl/meson.build @@ -1,7 +1,21 @@ +mock_conf = configuration_data() + +mock_conf.set( + 'HAVE_GLIBC_IOCTL', + cc.compiles( + '''#include + int ioctl(int fd, unsigned long request, ...); + ''', + name: 'ioctl has glibc-style prototype' + ), + description: 'Is ioctl the glibc interface (rather than POSIX)' +) + mock_ioctl = library( 'mock-ioctl', ['mock.c', 'util.c'], -) + dependencies: [dl_dep], + c_args: ['-DHAVE_GLIBC_IOCTL=' + (mock_conf.get('HAVE_GLIBC_IOCTL') ? '1' : '0')]) # Add mock-ioctl to the LD_PRELOAD path so it overrides libc. # Append to LD_PRELOAD so existing libraries, e.g. libasan, are kept. diff --git a/test/ioctl/mock.c b/test/ioctl/mock.c index 1fb3ec1..90a244d 100644 --- a/test/ioctl/mock.c +++ b/test/ioctl/mock.c @@ -7,6 +7,7 @@ #include #include #include +#include #include "../../src/nvme/ioctl.h" #include "util.h" @@ -118,18 +119,20 @@ void end_mock_cmds(void) }) #ifdef HAVE_GLIBC_IOCTL +typedef int (*ioctl_func_t)(int, unsigned long, void *); int ioctl(int fd, unsigned long request, ...) #else +typedef int (*ioctl_func_t)(int, int, void *); int ioctl(int fd, int request, ...) #endif { + ioctl_func_t real_ioctl = NULL; struct mock_cmds *mock_cmds; bool result64; const struct mock_cmd *mock_cmd; va_list args; void *cmd; - check(fd == mock_fd, "got fd %d, expected %d", fd, mock_fd); switch (request) { case NVME_IOCTL_ADMIN_CMD: mock_cmds = &mock_admin_cmds; @@ -148,16 +151,28 @@ int ioctl(int fd, int request, ...) result64 = true; break; default: - fail("unexpected %s %lu", __func__, (unsigned long) request); +#if HAVE_LIBC_LDSYM + real_ioctl = dlsym(RTLD_NEXT, "ioctl"); + if (!real_ioctl) + fail("Error: dlsym failed to find original ioctl\n"); +#else + fail("Error: unhandled ioctl\n"); +#endif } + + va_start(args, request); + cmd = va_arg(args, void *); + va_end(args); + + if (real_ioctl) + return real_ioctl(fd, request, cmd); + + check(fd == mock_fd, "got fd %d, expected %d", fd, mock_fd); check(mock_cmds->remaining_cmds, "unexpected %s command", mock_cmds->name); mock_cmd = mock_cmds->cmds++; mock_cmds->remaining_cmds--; - va_start(args, request); - cmd = va_arg(args, void *); - va_end(args); if (result64) { execute_ioctl((struct nvme_passthru_cmd64 *)cmd, mock_cmd); } else { @@ -173,3 +188,9 @@ int ioctl(int fd, int request, ...) return mock_cmd->err; } + +/* mock io_uring_get_probe, just fail */ +struct io_uring_probe *io_uring_get_probe(void) +{ + return 0; +} diff --git a/test/meson.build b/test/meson.build index 2ab7e31..d3d6456 100644 --- a/test/meson.build +++ b/test/meson.build @@ -23,6 +23,17 @@ if cxx_available dependencies: libnvme_dep, include_directories: [incdir, internal_incdir] ) + + test('cpp-dump', cpp) + + misc = executable( + 'test-misc', + ['misc.cc'], + dependencies: libnvme_dep, + include_directories: [incdir, internal_incdir] + ) + test('cpp-misc', misc) + endif register = executable( diff --git a/test/mi.c b/test/mi.c index 05eee97..6126d87 100644 --- a/test/mi.c +++ b/test/mi.c @@ -566,8 +566,8 @@ static void test_admin_err_nvme_resp(nvme_mi_ep_t ep) | NVME_SC_DNR)); } -/* invalid Admin command transfers */ -static int test_admin_invalid_formats_cb(struct nvme_mi_ep *ep, +/* invalid command transfers */ +static int test_rejected_command_cb(struct nvme_mi_ep *ep, struct nvme_mi_req *req, struct nvme_mi_resp *resp, void *data) @@ -588,7 +588,7 @@ static void test_admin_invalid_formats(nvme_mi_ep_t ep) size_t len; int rc; - test_set_transport_callback(ep, test_admin_invalid_formats_cb, NULL); + test_set_transport_callback(ep, test_rejected_command_cb, NULL); ctrl = nvme_mi_init_ctrl(ep, 1); assert(ctrl); @@ -629,6 +629,44 @@ static void test_admin_invalid_formats(nvme_mi_ep_t ep) assert(rc != 0); } +static void test_mi_invalid_formats(nvme_mi_ep_t ep) +{ + struct { + struct nvme_mi_mi_req_hdr hdr; + uint8_t data[4]; + } req = { 0 }; + struct nvme_mi_mi_resp_hdr resp = { 0 }; + nvme_mi_ctrl_t ctrl; + size_t len; + int rc; + + test_set_transport_callback(ep, test_rejected_command_cb, NULL); + + ctrl = nvme_mi_init_ctrl(ep, 1); + assert(ctrl); + + /* unaligned req size */ + len = 0; + + rc = nvme_mi_mi_xfer(ep, &req.hdr, 1, &resp, &len); + assert(rc != 0); + + /* unaligned resp size */ + len = 1; + rc = nvme_mi_mi_xfer(ep, &req.hdr, 0, &resp, &len); + assert(rc != 0); + + /* resp too large */ + len = 4096 + 4; + rc = nvme_mi_mi_xfer(ep, &req.hdr, 0, &resp, &len); + assert(rc != 0); + + /* req and resp payloads */ + len = 4; + rc = nvme_mi_mi_xfer(ep, &req.hdr, 4, &resp, &len); + assert(rc != 0); +} + /* test: header length too small */ static int test_resp_hdr_small_cb(struct nvme_mi_ep *ep, struct nvme_mi_req *req, @@ -2049,6 +2087,7 @@ struct test { DEFINE_TEST(endpoint_quirk_probe), DEFINE_TEST(admin_dlen_doff_req), DEFINE_TEST(admin_dlen_doff_resp), + DEFINE_TEST(mi_invalid_formats), }; static void run_test(struct test *test, FILE *logfd, nvme_mi_ep_t ep) diff --git a/test/misc.cc b/test/misc.cc new file mode 100644 index 0000000..3613beb --- /dev/null +++ b/test/misc.cc @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: LGPL-2.1-or-later +/** + * This file is part of libnvme. + * Copyright (c) 2025 Daniel Wagner, SUSE LLC + */ + +#include +#include + +static int minmax_test() +{ + /* + * Ensure libnvme doesn't spoil the namespace, e.g. by exposing a + * min/max macro. + */ + return !(std::min(1, 2) == 1 && std::max(1, 2) == 2); +} + +int main(int argc, char *argv[]) +{ + return minmax_test(); +}