diff options
803 files changed, 4578 insertions, 1309 deletions
diff --git a/.github/cross/ubuntu-armhf.txt b/.github/cross/ubuntu-armhf.txt index 2eee70b..41c8328 100644 --- a/.github/cross/ubuntu-armhf.txt +++ b/.github/cross/ubuntu-armhf.txt @@ -4,6 +4,7 @@ ar = '/usr/arm-linux-gnueabihf/bin/ar' strip = '/usr/arm-linux-gnueabihf/bin/strip' pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config' ld = '/usr/bin/arm-linux/gnueabihf-ld' +exe_wrapper = '/usr/bin/qemu-arm-static' [properties] root = '/usr/arm-linux-gnueabihf' diff --git a/.github/cross/ubuntu-ppc64le.txt b/.github/cross/ubuntu-ppc64le.txt index 4cf6a92..6baaefb 100644 --- a/.github/cross/ubuntu-ppc64le.txt +++ b/.github/cross/ubuntu-ppc64le.txt @@ -4,6 +4,7 @@ ar = '/usr/powerpc64le-linux-gnu/bin/ar' strip = '/usr/powerpc64le-linux-gnu/bin/strip' pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config' ld = '/usr/bin/powerpc64le-linux-gnu-ld' +exe_wrapper = '/usr/bin/qemu-ppc64le-static' [properties] root = '/usr/powerpc64le-linux-gnu' diff --git a/.github/cross/ubuntu-s390x.txt b/.github/cross/ubuntu-s390x.txt new file mode 100644 index 0000000..51a3511 --- /dev/null +++ b/.github/cross/ubuntu-s390x.txt @@ -0,0 +1,18 @@ +[binaries] +c = '/usr/bin/s390x-linux-gnu-gcc' +ar = '/usr/s390x-linux-gnu/bin/ar' +strip = '/usr/s390x-linux-gnu/bin/strip' +pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config' +ld = '/usr/bin/s390x-linux-gnu-ld' +exe_wrapper = '/usr/bin/qemu-s390x-static' + +[properties] +root = '/usr/s390x-linux-gnu' +has_function_printf = true +skip_sanity_check = true + +[host_machine] +system = 'linux' +cpu_family = 's390x' +cpu = '' +endian = 'big' diff --git a/.github/cross/ubuntu-static.txt b/.github/cross/ubuntu-static.txt new file mode 100644 index 0000000..d4d6c9a --- /dev/null +++ b/.github/cross/ubuntu-static.txt @@ -0,0 +1,6 @@ +[properties] +c_args = '-static' +cpp_args = c_args + +[binaries] +c = '/usr/bin/gcc' diff --git a/.github/workflows/meson.yml b/.github/workflows/meson.yml index 52b2b6a..340cff3 100644 --- a/.github/workflows/meson.yml +++ b/.github/workflows/meson.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: install libraries - run: sudo apt-get install libjson-c-dev + run: sudo apt-get install libjson-c-dev libdbus-1-dev - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: @@ -44,16 +44,16 @@ jobs: EOF sudo apt update - name: install armhf compiler - run: sudo apt install gcc-arm-linux-gnueabihf pkg-config + run: sudo apt install gcc-arm-linux-gnueabihf pkg-config qemu-user-static - name: install libraries - run: sudo apt install uuid-dev:armhf libjson-c-dev:armhf + run: sudo apt install libjson-c-dev:armhf - uses: actions/checkout@v3 - uses: BSFishy/meson-build@v1.0.3 with: # suppress python for now; the python headers currently assume native setup-options: --werror --cross-file=.github/cross/ubuntu-armhf.txt --wrap-mode=nofallback -Dpython=false options: --verbose - action: build + action: test - uses: actions/upload-artifact@v3 if: failure() with: @@ -74,16 +74,46 @@ jobs: EOF sudo apt update - name: install powerpc64le compiler - run: sudo apt install gcc-powerpc64le-linux-gnu pkg-config + run: sudo apt install gcc-powerpc64le-linux-gnu pkg-config qemu-user-static - name: install libraries - run: sudo apt install uuid-dev:ppc64el libjson-c-dev:ppc64el + run: sudo apt install libjson-c-dev:ppc64el - uses: actions/checkout@v3 - uses: BSFishy/meson-build@v1.0.3 with: # suppress python for now; the python headers currently assume native setup-options: --werror --cross-file=.github/cross/ubuntu-ppc64le.txt --wrap-mode=nofallback -Dpython=false options: --verbose - action: build + action: test + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: Linux_Meson_Testlog + path: build/meson-logs/testlog.txt + + build-cross-s390x: + runs-on: ubuntu-latest + steps: + - name: set up s390x architecture + run: | + export release=$(lsb_release -c -s) + sudo dpkg --add-architecture s390x + sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list + sudo dd of=/etc/apt/sources.list.d/s390x.list <<EOF + deb [arch=s390x] http://ports.ubuntu.com/ $release main universe restricted" + deb [arch=s390x] http://ports.ubuntu.com/ $release-updates main universe restricted" + EOF + sudo apt update + - name: install s390x compiler + run: sudo apt install gcc-s390x-linux-gnu pkg-config qemu-user-static + - name: install libraries + run: sudo apt install libjson-c-dev:s390x + - uses: actions/checkout@v3 + - uses: BSFishy/meson-build@v1.0.3 + with: + # suppress python for now; the python headers currently assume native + setup-options: --werror --cross-file=.github/cross/ubuntu-s390x.txt --wrap-mode=nofallback -Dpython=false + options: --verbose + action: test - uses: actions/upload-artifact@v3 if: failure() with: @@ -101,7 +131,29 @@ jobs: python-version: '3.x' - uses: BSFishy/meson-build@v1.0.3 with: - setup-options: --werror --wrap-mode=forcefallback + setup-options: --wrap-mode=forcefallback + options: --verbose + action: test + meson-version: 0.61.2 + # Preserve meson's log file on failure + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: Linux_Meson_log + path: build/meson-logs/meson-log.txt + + build-with-libray-static: + runs-on: ubuntu-latest + steps: + - name: install libraries + run: sudo apt-get install -y libpam-dev libcap-ng-dev + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.x' + - uses: BSFishy/meson-build@v1.0.3 + with: + setup-options: --wrap-mode=forcefallback --default-library=static options: --verbose action: test meson-version: 0.61.2 @@ -123,7 +175,7 @@ jobs: python-version: '3.x' - uses: BSFishy/meson-build@v1.0.3 with: - setup-options: --werror --wrap-mode=forcefallback --default-library=static + setup-options: --wrap-mode=forcefallback --cross-file=.github/cross/ubuntu-static.txt --default-library=static options: --verbose action: test meson-version: 0.61.2 @@ -138,7 +190,7 @@ jobs: runs-on: ubuntu-latest steps: - name: install libraries - run: sudo apt-get install libjson-c-dev lcov + run: sudo apt-get install libjson-c-dev libdbus-1-dev lcov - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: @@ -8,8 +8,10 @@ a.out *.so.* *.tar.gz cscope.* +compile_commands.json .build +.cache subprojects/* !subprojects/*.wrap diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..283a2dc --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: Apache-2.0 + +version: 2 + +python: + system_packages: true + +build: + os: ubuntu-22.04 + tools: + python: "3" + apt_packages: + - meson + - python3-lxml + - docbook-xsl + - xsltproc + - pandoc + jobs: + post_install: + - pip3 install lxml + pre_build: + - meson .build -Ddocs=rst -Ddocs-build=true || cat .build/meson-logs/meson-log.txt + - ninja -C .build + +sphinx: + configuration: .build/doc/conf.py diff --git a/doc/api.rst b/doc/api.rst deleted file mode 100644 index 3478766..0000000 --- a/doc/api.rst +++ /dev/null @@ -1,18 +0,0 @@ -=== -API -=== - -.. module:: libnvme - -This part of the documentation lists the full API reference of all public classes and -functions. - -.. include:: rst/types.rst -.. include:: rst/ioctl.rst -.. include:: rst/fabrics.rst -.. include:: rst/linux.rst -.. include:: rst/mi.rst -.. include:: rst/tree.rst -.. include:: rst/filters.rst -.. include:: rst/util.rst -.. include:: rst/log.rst diff --git a/doc/conf.py b/doc/conf.py index abfa57c..d641bee 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -12,7 +12,7 @@ copyright = '2020, Keith Busch' author = 'Keith Busch <kbusch@kernel.org>' master_doc = 'index' -release = '1.2' +release = '1.3' # -- General configuration --------------------------------------------------- diff --git a/doc/config-schema.json b/doc/config-schema.json index 69fb606..bde3d91 100644 --- a/doc/config-schema.json +++ b/doc/config-schema.json @@ -33,6 +33,10 @@ "description": "NVMe host symbolic name", "type": "string" }, + "persistent_discovery_ctrl": { + "description": "Enable/disable Persistent Discovery Controller", + "type": "boolean" + }, "required": [ "hostnqn" ], "subsystems": { "description": "Array of NVMe subsystem properties", diff --git a/doc/config-schema.json.in b/doc/config-schema.json.in index 69fb606..bde3d91 100644 --- a/doc/config-schema.json.in +++ b/doc/config-schema.json.in @@ -33,6 +33,10 @@ "description": "NVMe host symbolic name", "type": "string" }, + "persistent_discovery_ctrl": { + "description": "Enable/disable Persistent Discovery Controller", + "type": "boolean" + }, "required": [ "hostnqn" ], "subsystems": { "description": "Array of NVMe subsystem properties", diff --git a/doc/installation.rst b/doc/installation.rst deleted file mode 100644 index 0bc8f99..0000000 --- a/doc/installation.rst +++ /dev/null @@ -1,52 +0,0 @@ -Installation -============ - -Debian / Ubuntu: --------------- - -.. code-block:: sh - - $ apt-get install libnvme - -Fedora / Red Hat: --------------- - -.. code-block:: sh - - $ dnf install libnvme - -Python Version --------------- - -The latest Python 3 version is always recommended, since it has all the latest bells and -whistles. libnvme supports Python 3.6 and above. - -Dependencies ------------- - -libnvme only uses packages from the standard library, -so no additional dependencies will be installed when installing libnvme. - -Install libnvme python -------------- - -Debian / Ubuntu: - -.. code-block:: sh - - $ apt-get install python3-libnvme - -Fedora / Red Hat: - -.. code-block:: sh - - $ dnf install python3-libnvme - -libnvme is available on `PyPI`_, and can be installed using pip. The version on PyPI is -always the latest stable release. - -.. _PyPi: https://pypi.org/project/libnvme/ - -.. code-block:: sh - - $ pip install libnvme diff --git a/doc/man/nvme_admin_opcode.2 b/doc/man/nvme_admin_opcode.2 index be7d1c3..26dfe5f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_admin_opcode" "January 2023" "API Manual" LINUX .SH NAME enum nvme_admin_opcode \- Known NVMe admin opcodes .SH SYNOPSIS diff --git a/doc/man/nvme_admin_passthru.2 b/doc/man/nvme_admin_passthru.2 index acf2a63..eebc5f1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_admin_passthru" 9 "nvme_admin_passthru" "January 2023" "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 806251e..50a2091 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_admin_passthru64" 9 "nvme_admin_passthru64" "January 2023" "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 4090339..08db970 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_css_nvm" "January 2023" "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 4b8deeb..dc7e35a 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_error" "January 2023" "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 5ccb5ed..ed4b176 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_notice" "January 2023" "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 964a7bb..edbab31 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_smart" "January 2023" "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 478522e..e0e99a2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_type" "January 2023" "API Manual" LINUX .SH NAME enum nvme_ae_type \- Asynchronous Event Type .SH SYNOPSIS diff --git a/doc/man/nvme_aggregate_endurance_group_event.2 b/doc/man/nvme_aggregate_endurance_group_event.2 index 8e104f4..d52d339 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "January 2023" "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 871cf1c..a673c7c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "January 2023" "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 02056c5..67e025f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ana_group_desc" "January 2023" "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 1a09d31..3bb09e1 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ana_log" "January 2023" "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 a177ade..a1a6e2c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ana_state" "January 2023" "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 13b2077..6df81f5 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_apst_entry" "January 2023" "API Manual" LINUX .SH NAME enum nvme_apst_entry \- Autonomous Power State Transition .SH SYNOPSIS diff --git a/doc/man/nvme_boot_partition.2 b/doc/man/nvme_boot_partition.2 index 0005b99..20539dd 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_boot_partition" "January 2023" "API Manual" LINUX .SH NAME struct nvme_boot_partition \- Boot Partition Log .SH SYNOPSIS diff --git a/doc/man/nvme_capacity_config_desc.2 b/doc/man/nvme_capacity_config_desc.2 index f3bd068..911ae67 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_capacity_config_desc" "January 2023" "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 8dba4a1..6ab8d90 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_capacity_mgmt \- Capacity management command .SH SYNOPSIS diff --git a/doc/man/nvme_change_ns_event.2 b/doc/man/nvme_change_ns_event.2 index 7892083..5661822 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_change_ns_event" "January 2023" "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 3948070..59110f7 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_channel_config_desc" "January 2023" "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 2166cba..86e6417 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_cmb_size" 9 "nvme_cmb_size" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_cmb_size \- Calculate size of the controller memory buffer .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_effects.2 b/doc/man/nvme_cmd_effects.2 index 7600ea3..1e05986 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_effects" "January 2023" "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 83e0a85..453098c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_cmd_effects_log" "January 2023" "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 d1cb0eb..bd8f952 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_mset" "January 2023" "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 87ca2f4..d5fb1da 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_pi" "January 2023" "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 d21373f..17d3553 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_pil" "January 2023" "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 257c7a5..6374138 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_ses" "January 2023" "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 31ee57c..130d0ab 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_get_log_lid" "January 2023" "API Manual" LINUX .SH NAME enum nvme_cmd_get_log_lid \- Get Log Page -Log Page Identifiers .SH SYNOPSIS @@ -88,6 +88,22 @@ enum nvme_cmd_get_log_lid { , .br .br +.BI " NVME_LOG_LID_FDP_CONFIGS" +, +.br +.br +.BI " NVME_LOG_LID_FDP_RUH_USAGE" +, +.br +.br +.BI " NVME_LOG_LID_FDP_STATS" +, +.br +.br +.BI " NVME_LOG_LID_FDP_EVENTS" +, +.br +.br .BI " NVME_LOG_LID_DISCOVER" , .br @@ -146,6 +162,14 @@ Feature Identifiers Supported and Effects NVMe-MI Commands Supported and Effects .IP "NVME_LOG_LID_BOOT_PARTITION" 12 Boot Partition +.IP "NVME_LOG_LID_FDP_CONFIGS" 12 +FDP Configurations +.IP "NVME_LOG_LID_FDP_RUH_USAGE" 12 +Reclaim Unit Handle Usage +.IP "NVME_LOG_LID_FDP_STATS" 12 +FDP Statistics +.IP "NVME_LOG_LID_FDP_EVENTS" 12 +FDP Events .IP "NVME_LOG_LID_DISCOVER" 12 Discovery .IP "NVME_LOG_LID_RESERVATION" 12 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 7ba3d49..0031542 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "January 2023" "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_compare.2 b/doc/man/nvme_compare.2 index 961d584..9db7b98 100644 --- a/doc/man/nvme_compare.2 +++ b/doc/man/nvme_compare.2 @@ -1,4 +1,4 @@ -.TH "nvme_compare" 9 "nvme_compare" "October 2022" "libnvme API manual" LINUX +.TH "nvme_compare" 9 "nvme_compare" "January 2023" "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 0b5e4bc..071869c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_connect_err" "January 2023" "API Manual" LINUX .SH NAME enum nvme_connect_err \- nvme connect error codes .SH SYNOPSIS @@ -69,6 +69,10 @@ enum nvme_connect_err { .br .br .BI " ENVME_CONNECT_OPNOTSUPP" +, +.br +.br +.BI " ENVME_CONNECT_CONNREFUSED" }; .SH Constants @@ -106,3 +110,5 @@ hostnqn already in use invalid interface .IP "ENVME_CONNECT_OPNOTSUPP" 12 not supported +.IP "ENVME_CONNECT_CONNREFUSED" 12 +connection refused diff --git a/doc/man/nvme_constants.2 b/doc/man/nvme_constants.2 index a79031c..e16aec4 100644 --- a/doc/man/nvme_constants.2 +++ b/doc/man/nvme_constants.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_constants" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_constants" "January 2023" "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 71489d2..5c68de3 100644 --- a/doc/man/nvme_copy.2 +++ b/doc/man/nvme_copy.2 @@ -1,4 +1,4 @@ -.TH "nvme_copy" 9 "nvme_copy" "October 2022" "libnvme API manual" LINUX +.TH "nvme_copy" 9 "nvme_copy" "January 2023" "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 fb82d8d..473a8a8 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_copy_range" "January 2023" "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 f83ef09..8bd3430 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_copy_range_f1" "January 2023" "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_create_ctrl.2 b/doc/man/nvme_create_ctrl.2 index 325cb84..1f2d1c9 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_create_ctrl" 9 "nvme_create_ctrl" "January 2023" "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 924d7e2..82337ee 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_create_root" 9 "nvme_create_root" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_create_root \- Initialize root object .SH SYNOPSIS diff --git a/doc/man/nvme_csi.2 b/doc/man/nvme_csi.2 index c2496dc..f879e83 100644 --- a/doc/man/nvme_csi.2 +++ b/doc/man/nvme_csi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_csi" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_csi" "January 2023" "API Manual" LINUX .SH NAME enum nvme_csi \- Defined command set indicators .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_first_ns.2 b/doc/man/nvme_ctrl_first_ns.2 index 8e8e4df..6318f2e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "January 2023" "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 0247898..2c4fdf3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "January 2023" "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 d08adeb..7527215 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "January 2023" "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 87862b0..69ad287 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "January 2023" "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 6d6d33f..bbbfc99 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "January 2023" "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 b2f8be4..effebd0 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "January 2023" "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 f9686c1..e4341ea 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "January 2023" "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 47269e5..a9a9729 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "January 2023" "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 174aa97..bb0bee4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_dhchap_host_key" 9 "nvme_ctrl_get_dhchap_host_key" "January 2023" "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 a3efd36..f60f0a2 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "January 2023" "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 daf746b..abaf6ef 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_fd" 9 "nvme_ctrl_get_fd" "January 2023" "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 3e3766c..4818b25 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "January 2023" "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 2e98010..0c058ff 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "January 2023" "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 6102269..fabe75a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "January 2023" "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_model.2 b/doc/man/nvme_ctrl_get_model.2 index 3471eb9..0d780a2 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "January 2023" "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 0c9c5bd..29276c9 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "January 2023" "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 6be8e99..68365ca 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "January 2023" "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_queue_count.2 b/doc/man/nvme_ctrl_get_queue_count.2 index 8852d84..a996dd0 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "January 2023" "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 0af26f4..867d23c 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "January 2023" "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 2ff350d..0a56ac6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "January 2023" "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_state.2 b/doc/man/nvme_ctrl_get_state.2 index d787758..3ea67c4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_state" 9 "nvme_ctrl_get_state" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_state \- Running state of an controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_subsysnqn.2 b/doc/man/nvme_ctrl_get_subsysnqn.2 index 3b14394..f940c43 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_subsysnqn" 9 "nvme_ctrl_get_subsysnqn" "January 2023" "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 0c0f7ca..c514e54 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_subsystem" 9 "nvme_ctrl_get_subsystem" "January 2023" "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 247aada..3e87bf0 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_sysfs_dir" 9 "nvme_ctrl_get_sysfs_dir" "January 2023" "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_traddr.2 b/doc/man/nvme_ctrl_get_traddr.2 index ce9c961..e0a5bda 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_traddr" 9 "nvme_ctrl_get_traddr" "January 2023" "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 d0b2fb6..5404de8 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_transport" 9 "nvme_ctrl_get_transport" "January 2023" "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 b1e6b5a..f1ffc0f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_trsvcid" 9 "nvme_ctrl_get_trsvcid" "January 2023" "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 ce17f5c..d2e37eb 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_identify" 9 "nvme_ctrl_identify" "January 2023" "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 d6dd6d5..ba56977 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_discovered" 9 "nvme_ctrl_is_discovered" "January 2023" "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 6ad4d00..3681b6c 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_discovery_ctrl" 9 "nvme_ctrl_is_discovery_ctrl" "January 2023" "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 37ca92c..46f2bf2 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_persistent" 9 "nvme_ctrl_is_persistent" "January 2023" "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 new file mode 100644 index 0000000..a7ca604 --- /dev/null +++ b/doc/man/nvme_ctrl_is_unique_discovery_ctrl.2 @@ -0,0 +1,11 @@ +.TH "nvme_ctrl_is_unique_discovery_ctrl" 9 "nvme_ctrl_is_unique_discovery_ctrl" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_ctrl_is_unique_discovery_ctrl \- Check the 'unique_discovery_ctrl' flag +.SH SYNOPSIS +.B "bool" nvme_ctrl_is_unique_discovery_ctrl +.BI "(nvme_ctrl_t c " ");" +.SH ARGUMENTS +.IP "c" 12 +Controller to be checked +.SH "RETURN" +Value of the 'unique_discovery_ctrl' flag diff --git a/doc/man/nvme_ctrl_list.2 b/doc/man/nvme_ctrl_list.2 index dabdc0c..2469dad 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ctrl_list" "January 2023" "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 24caeee..8ae70d3 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ctrl_metadata_type" "January 2023" "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 7e98add..bb6163a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_next_ns" 9 "nvme_ctrl_next_ns" "January 2023" "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 2081965..b3e323e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_next_path" 9 "nvme_ctrl_next_path" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_ctrl_next_path \- Next path iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_reset.2 b/doc/man/nvme_ctrl_reset.2 index 55f084a..9d8e129 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_reset" 9 "nvme_ctrl_reset" "January 2023" "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 036c29e..d1c82b0 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_dhchap_host_key" 9 "nvme_ctrl_set_dhchap_host_key" "January 2023" "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 bcaaf86..23a61a8 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_dhchap_key" 9 "nvme_ctrl_set_dhchap_key" "January 2023" "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 0565135..77d98c5 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_discovered" 9 "nvme_ctrl_set_discovered" "January 2023" "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 a2c6200..304aa1d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_discovery_ctrl" 9 "nvme_ctrl_set_discovery_ctrl" "January 2023" "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_persistent.2 b/doc/man/nvme_ctrl_set_persistent.2 index d86e8d9..fe1d73e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_persistent" 9 "nvme_ctrl_set_persistent" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_persistent \- Set the 'persistent' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 b/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 new file mode 100644 index 0000000..4de9b06 --- /dev/null +++ b/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 @@ -0,0 +1,15 @@ +.TH "nvme_ctrl_set_unique_discovery_ctrl" 9 "nvme_ctrl_set_unique_discovery_ctrl" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_ctrl_set_unique_discovery_ctrl \- Set the 'unique_discovery_ctrl' flag +.SH SYNOPSIS +.B "void" nvme_ctrl_set_unique_discovery_ctrl +.BI "(nvme_ctrl_t c " "," +.BI "bool unique " ");" +.SH ARGUMENTS +.IP "c" 12 +Controller to be modified +.IP "unique" 12 +value of the unique_disc_ctrl flag +.SH "DESCRIPTION" +Sets the 'unique_discovery_ctrl' flag in \fIc\fP to specify wheter +\fIc\fP is a unique discovery controller diff --git a/doc/man/nvme_ctrls_filter.2 b/doc/man/nvme_ctrls_filter.2 index 498f724..bf31bc5 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ctrls_filter" 9 "nvme_ctrls_filter" "January 2023" "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 bf0e99a..c81767e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_data_tfr" "January 2023" "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 2ca5d98..690fb56 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_default_host" 9 "nvme_default_host" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_default_host \- Initializes the default host .SH SYNOPSIS diff --git a/doc/man/nvme_dev_self_test.2 b/doc/man/nvme_dev_self_test.2 index e366b9b..1458ded 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_dev_self_test" 9 "nvme_dev_self_test" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_dev_self_test \- Start or abort a self test .SH SYNOPSIS @@ -15,7 +15,7 @@ controller and may include testing of the media associated with namespaces. The controller may return a response to this command immediately while running the self-test in the background. -Set the 'nsid' field to 0 to not include namepsaces in the test. Set to +Set the 'nsid' field to 0 to not include namespaces in the test. Set to 0xffffffff to test all namespaces. All other values tests a specific namespace, if present. .SH "RETURN" diff --git a/doc/man/nvme_directive_dtype.2 b/doc/man/nvme_directive_dtype.2 index 8ee7b9c..bab28cc 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_dtype" "January 2023" "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 03c43ab..9d233ac 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_receive_doper" "January 2023" "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 1494ecd..6f657fe 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_directive_recv" 9 "nvme_directive_recv" "January 2023" "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 828c5b6..7e41fb1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_directive_recv_identify_parameters" 9 "nvme_directive_recv_identify_parameters" "January 2023" "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 1311585..657c699 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_directive_recv_stream_allocate" 9 "nvme_directive_recv_stream_allocate" "January 2023" "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 179c4a6..512ea23 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_directive_recv_stream_parameters" 9 "nvme_directive_recv_stream_parameters" "January 2023" "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 68101c9..6052e55 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_directive_recv_stream_status" 9 "nvme_directive_recv_stream_status" "January 2023" "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 74469e3..ae5e7c3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_directive_send" 9 "nvme_directive_send" "January 2023" "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 7e8bd7d..7ee960e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_send_doper" "January 2023" "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 9d47611..3361c43 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_directive_send_id_endir" 9 "nvme_directive_send_id_endir" "January 2023" "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 b4c3d08..75ae651 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_send_identify_endir" "January 2023" "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 baa509e..fccafe4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_directive_send_stream_release_identifier" 9 "nvme_directive_send_stream_release_identifier" "January 2023" "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 fbcb609..d74c93a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_directive_send_stream_release_resource" 9 "nvme_directive_send_stream_release_resource" "January 2023" "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 944dca7..5557800 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_types" "January 2023" "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 7e7db99..03adb3d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_disconnect_ctrl" 9 "nvme_disconnect_ctrl" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_disconnect_ctrl \- Disconnect a controller .SH SYNOPSIS diff --git a/doc/man/nvme_dsm.2 b/doc/man/nvme_dsm.2 index b567d21..52d1d78 100644 --- a/doc/man/nvme_dsm.2 +++ b/doc/man/nvme_dsm.2 @@ -1,4 +1,4 @@ -.TH "nvme_dsm" 9 "nvme_dsm" "October 2022" "libnvme API manual" LINUX +.TH "nvme_dsm" 9 "nvme_dsm" "January 2023" "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 1c42a94..d4d1195 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_dsm_attributes" "January 2023" "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 8ff7b3c..c8f1e66 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_dsm_range" "January 2023" "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 9654e64..4d6f7d7 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_dst_stc" "January 2023" "API Manual" LINUX .SH NAME enum nvme_dst_stc \- Action taken by the Device Self-test command .SH SYNOPSIS diff --git a/doc/man/nvme_dump_config.2 b/doc/man/nvme_dump_config.2 index 400da1d..3a6222c 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_dump_config" 9 "nvme_dump_config" "January 2023" "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 52b5392..71925ec 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_dump_tree" 9 "nvme_dump_tree" "January 2023" "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 e60d99b..08a5f7c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_eg_critical_warning_flags" "January 2023" "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 7ee2d83..aacfeba 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_eg_event_aggregate_log" "January 2023" "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 d016877..acc3f0b 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_end_grp_chan_desc" "January 2023" "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 947aada..05b3319 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_end_grp_config_desc" "January 2023" "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 57dd1d8..af07a02 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_endurance_group_log" "January 2023" "API Manual" LINUX .SH NAME struct nvme_endurance_group_log \- Endurance Group Information Log .SH SYNOPSIS diff --git a/doc/man/nvme_errno_to_string.2 b/doc/man/nvme_errno_to_string.2 index 71fb96a..f303d52 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_errno_to_string" 9 "nvme_errno_to_string" "January 2023" "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 80a1efa..7e727ef 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_error_log_page" "January 2023" "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_fabrics_config.2 b/doc/man/nvme_fabrics_config.2 index f0ff8f8..24c4f6e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fabrics_config" "January 2023" "API Manual" LINUX .SH NAME struct nvme_fabrics_config \- Defines all linux nvme fabrics initiator options .SH SYNOPSIS diff --git a/doc/man/nvme_fctype.2 b/doc/man/nvme_fctype.2 index 42b1c0c..8d186cc 100644 --- a/doc/man/nvme_fctype.2 +++ b/doc/man/nvme_fctype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fctype" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fctype" "January 2023" "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 new file mode 100644 index 0000000..3bbcbca --- /dev/null +++ b/doc/man/nvme_fdp_config_desc.2 @@ -0,0 +1,55 @@ +.TH "libnvme" 9 "struct nvme_fdp_config_desc" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_config_desc \- FDP Configuration Descriptor +.SH SYNOPSIS +struct nvme_fdp_config_desc { +.br +.BI " __u16 size;" +.br +.BI " __u8 fdpa;" +.br +.BI " __u8 vss;" +.br +.BI " __u32 nrg;" +.br +.BI " __u16 nruh;" +.br +.BI " __u16 maxpids;" +.br +.BI " __u32 nnss;" +.br +.BI " __u64 runs;" +.br +.BI " __u32 erutl;" +.br +.BI " __u8 rsvd28[36];" +.br +.BI " struct nvme_fdp_ruh_desc ruhs[];" +.br +.BI " +}; +.br + +.SH Members +.IP "size" 12 +Descriptor size +.IP "fdpa" 12 +FDP Attributes (\fIenum nvme_fdp_config_fdpa\fP) +.IP "vss" 12 +Vendor Specific Size +.IP "nrg" 12 +Number of Reclaim Groups +.IP "nruh" 12 +Number of Reclaim Unit Handles +.IP "maxpids" 12 +Max Placement Identifiers +.IP "nnss" 12 +Number of Namespaces Supported +.IP "runs" 12 +Reclaim Unit Nominal Size +.IP "erutl" 12 +Estimated Reclaim Unit Time Limit +.IP "rsvd28" 12 +Reserved +.IP "ruhs" 12 +Reclaim Unit Handle descriptors (\fIstruct nvme_fdp_ruh_desc\fP) diff --git a/doc/man/nvme_fdp_config_fdpa.2 b/doc/man/nvme_fdp_config_fdpa.2 new file mode 100644 index 0000000..2a92b4a --- /dev/null +++ b/doc/man/nvme_fdp_config_fdpa.2 @@ -0,0 +1,42 @@ +.TH "libnvme" 9 "enum nvme_fdp_config_fdpa" "January 2023" "API Manual" LINUX +.SH NAME +enum nvme_fdp_config_fdpa \- FDP Attributes +.SH SYNOPSIS +enum nvme_fdp_config_fdpa { +.br +.BI " NVME_FDP_CONFIG_FDPA_RGIF_SHIFT" +, +.br +.br +.BI " NVME_FDP_CONFIG_FDPA_RGIF_MASK" +, +.br +.br +.BI " NVME_FDP_CONFIG_FDPA_FDPVWC_SHIFT" +, +.br +.br +.BI " NVME_FDP_CONFIG_FDPA_FDPVWC_MASK" +, +.br +.br +.BI " NVME_FDP_CONFIG_FDPA_VALID_SHIFT" +, +.br +.br +.BI " NVME_FDP_CONFIG_FDPA_VALID_MASK" + +}; +.SH Constants +.IP "NVME_FDP_CONFIG_FDPA_RGIF_SHIFT" 12 +Reclaim Group Identifier Format Shift +.IP "NVME_FDP_CONFIG_FDPA_RGIF_MASK" 12 +Reclaim Group Identifier Format Mask +.IP "NVME_FDP_CONFIG_FDPA_FDPVWC_SHIFT" 12 +FDP Volatile Write Cache Shift +.IP "NVME_FDP_CONFIG_FDPA_FDPVWC_MASK" 12 +FDP Volatile Write Cache Mask +.IP "NVME_FDP_CONFIG_FDPA_VALID_SHIFT" 12 +FDP Configuration Valid Shift +.IP "NVME_FDP_CONFIG_FDPA_VALID_MASK" 12 +FDP Configuration Valid Mask diff --git a/doc/man/nvme_fdp_config_log.2 b/doc/man/nvme_fdp_config_log.2 new file mode 100644 index 0000000..5111b7a --- /dev/null +++ b/doc/man/nvme_fdp_config_log.2 @@ -0,0 +1,35 @@ +.TH "libnvme" 9 "struct nvme_fdp_config_log" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_config_log \- FDP Configurations Log Page +.SH SYNOPSIS +struct nvme_fdp_config_log { +.br +.BI " __u16 n;" +.br +.BI " __u8 version;" +.br +.BI " __u8 rsvd3;" +.br +.BI " __u32 size;" +.br +.BI " __u8 rsvd8[8];" +.br +.BI " struct nvme_fdp_config_desc configs[];" +.br +.BI " +}; +.br + +.SH Members +.IP "n" 12 +Number of FDP Configurations +.IP "version" 12 +Log page version +.IP "rsvd3" 12 +Reserved +.IP "size" 12 +Log page size in bytes +.IP "rsvd8" 12 +Reserved +.IP "configs" 12 +FDP Configuration descriptors (\fIstruct nvme_fdp_config_desc\fP) diff --git a/doc/man/nvme_fdp_event.2 b/doc/man/nvme_fdp_event.2 new file mode 100644 index 0000000..2178f44 --- /dev/null +++ b/doc/man/nvme_fdp_event.2 @@ -0,0 +1,51 @@ +.TH "libnvme" 9 "struct nvme_fdp_event" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_event \- FDP Event +.SH SYNOPSIS +struct nvme_fdp_event { +.br +.BI " __u8 type;" +.br +.BI " __u8 flags;" +.br +.BI " __u16 pid;" +.br +.BI " struct nvme_timestamp ts;" +.br +.BI " __u32 nsid;" +.br +.BI " __u8 type_specific[16];" +.br +.BI " __u16 rgid;" +.br +.BI " __u8 ruhid;" +.br +.BI " __u8 rsvd35[5];" +.br +.BI " __u8 vs[24];" +.br +.BI " +}; +.br + +.SH Members +.IP "type" 12 +Event Type (\fIenum nvme_fdp_event_type\fP) +.IP "flags" 12 +Event Flags (\fIenum nvme_fdp_event_flags\fP) +.IP "pid" 12 +Placement Identifier +.IP "ts" 12 +Timestamp +.IP "nsid" 12 +Namespace Identifier +.IP "type_specific" 12 +Event Type Specific Information +.IP "rgid" 12 +Reclaim Group Identifier +.IP "ruhid" 12 +Reclaim Unit Handle Identifier +.IP "rsvd35" 12 +Reserved +.IP "vs" 12 +Vendor Specific diff --git a/doc/man/nvme_fdp_event_flags.2 b/doc/man/nvme_fdp_event_flags.2 new file mode 100644 index 0000000..1bad4b6 --- /dev/null +++ b/doc/man/nvme_fdp_event_flags.2 @@ -0,0 +1,24 @@ +.TH "libnvme" 9 "enum nvme_fdp_event_flags" "January 2023" "API Manual" LINUX +.SH NAME +enum nvme_fdp_event_flags \- FDP Event Flags +.SH SYNOPSIS +enum nvme_fdp_event_flags { +.br +.BI " NVME_FDP_EVENT_F_PIV" +, +.br +.br +.BI " NVME_FDP_EVENT_F_NSIDV" +, +.br +.br +.BI " NVME_FDP_EVENT_F_LV" + +}; +.SH Constants +.IP "NVME_FDP_EVENT_F_PIV" 12 +Placement Identifier Valid +.IP "NVME_FDP_EVENT_F_NSIDV" 12 +Namespace Identifier Valid +.IP "NVME_FDP_EVENT_F_LV" 12 +Location Valid diff --git a/doc/man/nvme_fdp_event_realloc.2 b/doc/man/nvme_fdp_event_realloc.2 new file mode 100644 index 0000000..fbd1cfe --- /dev/null +++ b/doc/man/nvme_fdp_event_realloc.2 @@ -0,0 +1,31 @@ +.TH "libnvme" 9 "struct nvme_fdp_event_realloc" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_event_realloc \- Media Reallocated Event Type Specific Information +.SH SYNOPSIS +struct nvme_fdp_event_realloc { +.br +.BI " __u8 flags;" +.br +.BI " __u8 rsvd1;" +.br +.BI " __u16 nlbam;" +.br +.BI " __u64 lba;" +.br +.BI " __u8 rsvd12[4];" +.br +.BI " +}; +.br + +.SH Members +.IP "flags" 12 +Event Type Specific flags (\fIenum nvme_fdp_event_realloc_flags\fP) +.IP "rsvd1" 12 +Reserved +.IP "nlbam" 12 +Number of LBAs Moved +.IP "lba" 12 +Logical Block Address +.IP "rsvd12" 12 +Reserved diff --git a/doc/man/nvme_fdp_event_realloc_flags.2 b/doc/man/nvme_fdp_event_realloc_flags.2 new file mode 100644 index 0000000..8ecee78 --- /dev/null +++ b/doc/man/nvme_fdp_event_realloc_flags.2 @@ -0,0 +1,12 @@ +.TH "libnvme" 9 "enum nvme_fdp_event_realloc_flags" "January 2023" "API Manual" LINUX +.SH NAME +enum nvme_fdp_event_realloc_flags \- Media Reallocated Event Type Specific Flags +.SH SYNOPSIS +enum nvme_fdp_event_realloc_flags { +.br +.BI " NVME_FDP_EVENT_REALLOC_F_LBAV" + +}; +.SH Constants +.IP "NVME_FDP_EVENT_REALLOC_F_LBAV" 12 +LBA Valid diff --git a/doc/man/nvme_fdp_event_type.2 b/doc/man/nvme_fdp_event_type.2 new file mode 100644 index 0000000..1ef2849 --- /dev/null +++ b/doc/man/nvme_fdp_event_type.2 @@ -0,0 +1,42 @@ +.TH "libnvme" 9 "enum nvme_fdp_event_type" "January 2023" "API Manual" LINUX +.SH NAME +enum nvme_fdp_event_type \- FDP Event Types +.SH SYNOPSIS +enum nvme_fdp_event_type { +.br +.BI " NVME_FDP_EVENT_RUNFW" +, +.br +.br +.BI " NVME_FDP_EVENT_RUTLE" +, +.br +.br +.BI " NVME_FDP_EVENT_RESET" +, +.br +.br +.BI " NVME_FDP_EVENT_PID" +, +.br +.br +.BI " NVME_FDP_EVENT_REALLOC" +, +.br +.br +.BI " NVME_FDP_EVENT_MODIFY" + +}; +.SH Constants +.IP "NVME_FDP_EVENT_RUNFW" 12 +Reclaim Unit Not Fully Written +.IP "NVME_FDP_EVENT_RUTLE" 12 +Reclaim Unit Time Limit Exceeded +.IP "NVME_FDP_EVENT_RESET" 12 +Controller Level Reset Modified Reclaim Unit Handles +.IP "NVME_FDP_EVENT_PID" 12 +Invalid Placement Identifier +.IP "NVME_FDP_EVENT_REALLOC" 12 +Media Reallocated +.IP "NVME_FDP_EVENT_MODIFY" 12 +Implicitly Modified Reclaim Unit Handle diff --git a/doc/man/nvme_fdp_events_log.2 b/doc/man/nvme_fdp_events_log.2 new file mode 100644 index 0000000..c4cec83 --- /dev/null +++ b/doc/man/nvme_fdp_events_log.2 @@ -0,0 +1,23 @@ +.TH "libnvme" 9 "struct nvme_fdp_events_log" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_events_log \- FDP Events Log Page +.SH SYNOPSIS +struct nvme_fdp_events_log { +.br +.BI " __u32 n;" +.br +.BI " __u8 rsvd4[60];" +.br +.BI " struct nvme_fdp_event events[63];" +.br +.BI " +}; +.br + +.SH Members +.IP "n" 12 +Number of FDP Events +.IP "rsvd4" 12 +Reserved +.IP "events" 12 +FDP Events (\fIstruct nvme_fdp_event\fP) diff --git a/doc/man/nvme_fdp_reclaim_unit_handle_status.2 b/doc/man/nvme_fdp_reclaim_unit_handle_status.2 new file mode 100644 index 0000000..138405d --- /dev/null +++ b/doc/man/nvme_fdp_reclaim_unit_handle_status.2 @@ -0,0 +1,21 @@ +.TH "nvme_fdp_reclaim_unit_handle_status" 9 "nvme_fdp_reclaim_unit_handle_status" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_fdp_reclaim_unit_handle_status \- Get reclaim unit handle status +.SH SYNOPSIS +.B "int" nvme_fdp_reclaim_unit_handle_status +.BI "(int fd " "," +.BI "__u32 nsid " "," +.BI "__u32 data_len " "," +.BI "void *data " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "nsid" 12 +Namespace identifier +.IP "data_len" 12 +Length of response buffer +.IP "data" 12 +Response buffer +.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_fdp_reclaim_unit_handle_update.2 b/doc/man/nvme_fdp_reclaim_unit_handle_update.2 new file mode 100644 index 0000000..1869f67 --- /dev/null +++ b/doc/man/nvme_fdp_reclaim_unit_handle_update.2 @@ -0,0 +1,21 @@ +.TH "nvme_fdp_reclaim_unit_handle_update" 9 "nvme_fdp_reclaim_unit_handle_update" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_fdp_reclaim_unit_handle_update \- Update a list of reclaim unit handles +.SH SYNOPSIS +.B "int" nvme_fdp_reclaim_unit_handle_update +.BI "(int fd " "," +.BI "__u32 nsid " "," +.BI "unsigned int npids " "," +.BI "__u16 *pids " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "nsid" 12 +Namespace identifier +.IP "npids" 12 +Number of placement identifiers +.IP "pids" 12 +List of placement identifiers +.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_fdp_ruh_desc.2 b/doc/man/nvme_fdp_ruh_desc.2 new file mode 100644 index 0000000..77969b3 --- /dev/null +++ b/doc/man/nvme_fdp_ruh_desc.2 @@ -0,0 +1,19 @@ +.TH "libnvme" 9 "struct nvme_fdp_ruh_desc" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_ruh_desc \- Reclaim Unit Handle Descriptor +.SH SYNOPSIS +struct nvme_fdp_ruh_desc { +.br +.BI " __u8 ruht;" +.br +.BI " __u8 rsvd1[3];" +.br +.BI " +}; +.br + +.SH Members +.IP "ruht" 12 +Reclaim Unit Handle Type +.IP "rsvd1" 12 +Reserved diff --git a/doc/man/nvme_fdp_ruh_status.2 b/doc/man/nvme_fdp_ruh_status.2 new file mode 100644 index 0000000..2fc1389 --- /dev/null +++ b/doc/man/nvme_fdp_ruh_status.2 @@ -0,0 +1,23 @@ +.TH "libnvme" 9 "struct nvme_fdp_ruh_status" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_ruh_status \- Reclaim Unit Handle Status +.SH SYNOPSIS +struct nvme_fdp_ruh_status { +.br +.BI " __u8 rsvd0[14];" +.br +.BI " __u16 nruhsd;" +.br +.BI " struct nvme_fdp_ruh_status_desc ruhss[];" +.br +.BI " +}; +.br + +.SH Members +.IP "rsvd0" 12 +Reserved +.IP "nruhsd" 12 +Number of Reclaim Unit Handle Status Descriptors +.IP "ruhss" 12 +Reclaim Unit Handle Status descriptors diff --git a/doc/man/nvme_fdp_ruh_status_desc.2 b/doc/man/nvme_fdp_ruh_status_desc.2 new file mode 100644 index 0000000..7b1dfc7 --- /dev/null +++ b/doc/man/nvme_fdp_ruh_status_desc.2 @@ -0,0 +1,31 @@ +.TH "libnvme" 9 "struct nvme_fdp_ruh_status_desc" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_ruh_status_desc \- Reclaim Unit Handle Status Descriptor +.SH SYNOPSIS +struct nvme_fdp_ruh_status_desc { +.br +.BI " __u16 pid;" +.br +.BI " __u16 ruhid;" +.br +.BI " __u32 earutr;" +.br +.BI " __u64 ruamw;" +.br +.BI " __u8 rsvd16[16];" +.br +.BI " +}; +.br + +.SH Members +.IP "pid" 12 +Placement Identifier +.IP "ruhid" 12 +Reclaim Unit Handle Identifier +.IP "earutr" 12 +Estimated Active Reclaim Unit Time Remaining +.IP "ruamw" 12 +Reclaim Unit Available Media Writes +.IP "rsvd16" 12 +Reserved diff --git a/doc/man/nvme_fdp_ruh_type.2 b/doc/man/nvme_fdp_ruh_type.2 new file mode 100644 index 0000000..5407134 --- /dev/null +++ b/doc/man/nvme_fdp_ruh_type.2 @@ -0,0 +1,18 @@ +.TH "libnvme" 9 "enum nvme_fdp_ruh_type" "January 2023" "API Manual" LINUX +.SH NAME +enum nvme_fdp_ruh_type \- Reclaim Unit Handle Type +.SH SYNOPSIS +enum nvme_fdp_ruh_type { +.br +.BI " NVME_FDP_RUHT_INITIALLY_ISOLATED" +, +.br +.br +.BI " NVME_FDP_RUHT_PERSISTENTLY_ISOLATED" + +}; +.SH Constants +.IP "NVME_FDP_RUHT_INITIALLY_ISOLATED" 12 +Initially Isolated +.IP "NVME_FDP_RUHT_PERSISTENTLY_ISOLATED" 12 +Persistently Isolated diff --git a/doc/man/nvme_fdp_ruha.2 b/doc/man/nvme_fdp_ruha.2 new file mode 100644 index 0000000..99c73b3 --- /dev/null +++ b/doc/man/nvme_fdp_ruha.2 @@ -0,0 +1,30 @@ +.TH "libnvme" 9 "enum nvme_fdp_ruha" "January 2023" "API Manual" LINUX +.SH NAME +enum nvme_fdp_ruha \- Reclaim Unit Handle Attributes +.SH SYNOPSIS +enum nvme_fdp_ruha { +.br +.BI " NVME_FDP_RUHA_HOST_SHIFT" +, +.br +.br +.BI " NVME_FDP_RUHA_HOST_MASK" +, +.br +.br +.BI " NVME_FDP_RUHA_CTRL_SHIFT" +, +.br +.br +.BI " NVME_FDP_RUHA_CTRL_MASK" + +}; +.SH Constants +.IP "NVME_FDP_RUHA_HOST_SHIFT" 12 +Host Specified Reclaim Unit Handle Shift +.IP "NVME_FDP_RUHA_HOST_MASK" 12 +Host Specified Reclaim Unit Handle Mask +.IP "NVME_FDP_RUHA_CTRL_SHIFT" 12 +Controller Specified Reclaim Unit Handle Shift +.IP "NVME_FDP_RUHA_CTRL_MASK" 12 +Controller Specified Reclaim Unit Handle Mask diff --git a/doc/man/nvme_fdp_ruhu_desc.2 b/doc/man/nvme_fdp_ruhu_desc.2 new file mode 100644 index 0000000..e8a6d15 --- /dev/null +++ b/doc/man/nvme_fdp_ruhu_desc.2 @@ -0,0 +1,19 @@ +.TH "libnvme" 9 "struct nvme_fdp_ruhu_desc" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_ruhu_desc \- Reclaim Unit Handle Usage Descriptor +.SH SYNOPSIS +struct nvme_fdp_ruhu_desc { +.br +.BI " __u8 ruha;" +.br +.BI " __u8 rsvd1[7];" +.br +.BI " +}; +.br + +.SH Members +.IP "ruha" 12 +Reclaim Unit Handle Attributes (\fIenum nvme_fdp_ruha\fP) +.IP "rsvd1" 12 +Reserved diff --git a/doc/man/nvme_fdp_ruhu_log.2 b/doc/man/nvme_fdp_ruhu_log.2 new file mode 100644 index 0000000..794dc15 --- /dev/null +++ b/doc/man/nvme_fdp_ruhu_log.2 @@ -0,0 +1,23 @@ +.TH "libnvme" 9 "struct nvme_fdp_ruhu_log" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_ruhu_log \- Reclaim Unit Handle Usage Log Page +.SH SYNOPSIS +struct nvme_fdp_ruhu_log { +.br +.BI " __u16 nruh;" +.br +.BI " __u8 rsvd2[6];" +.br +.BI " struct nvme_fdp_ruhu_desc ruhus[];" +.br +.BI " +}; +.br + +.SH Members +.IP "nruh" 12 +Number of Reclaim Unit Handles +.IP "rsvd2" 12 +Reserved +.IP "ruhus" 12 +Reclaim Unit Handle Usage descriptors diff --git a/doc/man/nvme_fdp_stats_log.2 b/doc/man/nvme_fdp_stats_log.2 new file mode 100644 index 0000000..8ada127 --- /dev/null +++ b/doc/man/nvme_fdp_stats_log.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_fdp_stats_log" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_stats_log \- FDP Statistics Log Page +.SH SYNOPSIS +struct nvme_fdp_stats_log { +.br +.BI " __u8 hbmw[16];" +.br +.BI " __u8 mbmw[16];" +.br +.BI " __u8 mbe[16];" +.br +.BI " __u8 rsvd48[16];" +.br +.BI " +}; +.br + +.SH Members +.IP "hbmw" 12 +Host Bytes with Metadata Written +.IP "mbmw" 12 +Media Bytes with Metadata Written +.IP "mbe" 12 +Media Bytes Erased +.IP "rsvd48" 12 +Reserved diff --git a/doc/man/nvme_fdp_supported_event_attributes.2 b/doc/man/nvme_fdp_supported_event_attributes.2 new file mode 100644 index 0000000..2f6c55d --- /dev/null +++ b/doc/man/nvme_fdp_supported_event_attributes.2 @@ -0,0 +1,18 @@ +.TH "libnvme" 9 "enum nvme_fdp_supported_event_attributes" "January 2023" "API Manual" LINUX +.SH NAME +enum nvme_fdp_supported_event_attributes \- Supported FDP Event Attributes +.SH SYNOPSIS +enum nvme_fdp_supported_event_attributes { +.br +.BI " NVME_FDP_SUPP_EVENT_ENABLED_SHIFT" +, +.br +.br +.BI " NVME_FDP_SUPP_EVENT_ENABLED_MASK" + +}; +.SH Constants +.IP "NVME_FDP_SUPP_EVENT_ENABLED_SHIFT" 12 +FDP Event Enable Shift +.IP "NVME_FDP_SUPP_EVENT_ENABLED_MASK" 12 +FDP Event Enable Mask diff --git a/doc/man/nvme_fdp_supported_event_desc.2 b/doc/man/nvme_fdp_supported_event_desc.2 new file mode 100644 index 0000000..421be89 --- /dev/null +++ b/doc/man/nvme_fdp_supported_event_desc.2 @@ -0,0 +1,19 @@ +.TH "libnvme" 9 "struct nvme_fdp_supported_event_desc" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_fdp_supported_event_desc \- Supported FDP Event Descriptor +.SH SYNOPSIS +struct nvme_fdp_supported_event_desc { +.br +.BI " __u8 evt;" +.br +.BI " __u8 evta;" +.br +.BI " +}; +.br + +.SH Members +.IP "evt" 12 +FDP Event Type +.IP "evta" 12 +FDP Event Type Attributes (\fIenum nvme_fdp_supported_event_attributes\fP) diff --git a/doc/man/nvme_feat.2 b/doc/man/nvme_feat.2 index 6b2e8b3..8891682 100644 --- a/doc/man/nvme_feat.2 +++ b/doc/man/nvme_feat.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat" "January 2023" "API Manual" LINUX .SH NAME enum nvme_feat \- Features Access Shifts/Masks values .SH SYNOPSIS @@ -393,6 +393,30 @@ enum nvme_feat { .br .br .BI " NVME_FEAT_IOCSP_IOCSCI_MASK" +, +.br +.br +.BI " NVME_FEAT_FDP_ENABLED_SHIFT" +, +.br +.br +.BI " NVME_FEAT_FDP_ENABLED_MASK" +, +.br +.br +.BI " NVME_FEAT_FDP_INDEX_SHIFT" +, +.br +.br +.BI " NVME_FEAT_FDP_INDEX_MASK" +, +.br +.br +.BI " NVME_FEAT_FDP_EVENTS_ENABLE_SHIFT" +, +.br +.br +.BI " NVME_FEAT_FDP_EVENTS_ENABLE_MASK" }; .SH Constants @@ -494,3 +518,9 @@ 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_FDP_ENABLED_SHIFT" 12 +.IP "NVME_FEAT_FDP_ENABLED_MASK" 12 +.IP "NVME_FEAT_FDP_INDEX_SHIFT" 12 +.IP "NVME_FEAT_FDP_INDEX_MASK" 12 +.IP "NVME_FEAT_FDP_EVENTS_ENABLE_SHIFT" 12 +.IP "NVME_FEAT_FDP_EVENTS_ENABLE_MASK" 12 diff --git a/doc/man/nvme_feat_auto_pst.2 b/doc/man/nvme_feat_auto_pst.2 index 48ec4c0..3e7ebc9 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_feat_auto_pst" "January 2023" "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 new file mode 100644 index 0000000..5960a6c --- /dev/null +++ b/doc/man/nvme_feat_fdp_events_cdw11.2 @@ -0,0 +1,23 @@ +.TH "libnvme" 9 "struct nvme_feat_fdp_events_cdw11" "January 2023" "API Manual" LINUX +.SH NAME +struct nvme_feat_fdp_events_cdw11 \- FDP Events Feature Command Dword 11 +.SH SYNOPSIS +struct nvme_feat_fdp_events_cdw11 { +.br +.BI " __u16 phndl;" +.br +.BI " __u8 noet;" +.br +.BI " __u8 rsvd24;" +.br +.BI " +}; +.br + +.SH Members +.IP "phndl" 12 +Placement Handle +.IP "noet" 12 +Number of FDP Event Types +.IP "rsvd24" 12 +Reserved diff --git a/doc/man/nvme_feat_host_behavior.2 b/doc/man/nvme_feat_host_behavior.2 index c4357ca..8a53e2f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_feat_host_behavior" "January 2023" "API Manual" LINUX .SH NAME struct nvme_feat_host_behavior \- Host Behavior Support - Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_feat_nswpcfg_state.2 b/doc/man/nvme_feat_nswpcfg_state.2 index 408cd21..fe45d95 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_nswpcfg_state" "January 2023" "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 8b11e49..37f2cc3 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_plm_window_select" "January 2023" "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 26c7b4f..538f7c4 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_resv_notify_flags" "January 2023" "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 872658f..635b1c7 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_tmpthresh_thsel" "January 2023" "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 1651598..c7ec84d 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_features_async_event_config_flags" "January 2023" "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 c9c4981..995248c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_features_id" "January 2023" "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_FDP" +, +.br +.br +.BI " NVME_FEAT_FID_FDP_EVENTS" +, +.br +.br .BI " NVME_FEAT_FID_ENH_CTRL_METADATA" , .br @@ -192,6 +200,10 @@ Endurance Group Event Configuration I/O Command Set Profile .IP "NVME_FEAT_FID_SPINUP_CONTROL" 12 Spinup Control +.IP "NVME_FEAT_FID_FDP" 12 +Flexible Data Placement +.IP "NVME_FEAT_FID_FDP_EVENTS" 12 +FDP Events .IP "NVME_FEAT_FID_ENH_CTRL_METADATA" 12 Enhanced Controller Metadata .IP "NVME_FEAT_FID_CTRL_METADATA" 12 diff --git a/doc/man/nvme_fid_supported_effects.2 b/doc/man/nvme_fid_supported_effects.2 index 37e424b..55c37c8 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fid_supported_effects" "January 2023" "API Manual" LINUX .SH NAME enum nvme_fid_supported_effects \- FID Supported and Effects Data Structure definitions .SH SYNOPSIS diff --git a/doc/man/nvme_fid_supported_effects_log.2 b/doc/man/nvme_fid_supported_effects_log.2 index 992e47e..4cdff97 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fid_supported_effects_log" "January 2023" "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 6715665..17b4722 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_firmware_slot" "January 2023" "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 b813604..05d0fbc 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_first_host" 9 "nvme_first_host" "January 2023" "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 dc356e1..1b53909 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_first_subsystem" 9 "nvme_first_subsystem" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_first_subsystem \- Start subsystem iterator .SH SYNOPSIS diff --git a/doc/man/nvme_flush.2 b/doc/man/nvme_flush.2 index 125874f..7636bc9 100644 --- a/doc/man/nvme_flush.2 +++ b/doc/man/nvme_flush.2 @@ -1,4 +1,4 @@ -.TH "nvme_flush" 9 "nvme_flush" "October 2022" "libnvme API manual" LINUX +.TH "nvme_flush" 9 "nvme_flush" "January 2023" "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 c8db377..177bc15 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_for_each_host" 9 "nvme_for_each_host" "January 2023" "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 d95ce6f..fe5e999 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_for_each_host_safe" 9 "nvme_for_each_host_safe" "January 2023" "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 29e1a04..7647f7b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_for_each_subsystem" 9 "nvme_for_each_subsystem" "January 2023" "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 9ce4e92..1de668b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_for_each_subsystem_safe" 9 "nvme_for_each_subsystem_safe" "January 2023" "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 698fe37..e658244 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_format_nvm" 9 "nvme_format_nvm" "January 2023" "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 967826e..7819ab2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_format_nvm_compln_event" "January 2023" "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 681aa10..3916c1f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_format_nvm_start_event" "January 2023" "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 3d7af4a..e1eb037 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_free_ctrl" 9 "nvme_free_ctrl" "January 2023" "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 f61d3c5..b9e8f2f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_free_host" 9 "nvme_free_host" "January 2023" "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 dcf1325..4eda57f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_free_ns" 9 "nvme_free_ns" "January 2023" "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 dd2354a..2310b66 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_free_subsystem" 9 "nvme_free_subsystem" "January 2023" "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 c2a17dd..cb8f359 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_free_tree" 9 "nvme_free_tree" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_free_tree \- Free root object .SH SYNOPSIS diff --git a/doc/man/nvme_fw_commit.2 b/doc/man/nvme_fw_commit.2 index 6228653..26ffeaa 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_fw_commit" 9 "nvme_fw_commit" "January 2023" "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 5c02ae9..a93e72b 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fw_commit_ca" "January 2023" "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 6800b92..6790ddf 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fw_commit_event" "January 2023" "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 a665318..c021d31 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_fw_download" 9 "nvme_fw_download" "January 2023" "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 c790221..c9b95fa 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_fw_download_seq" 9 "nvme_fw_download_seq" "January 2023" "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 19531c9..7035019 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_gen_dhchap_key" 9 "nvme_gen_dhchap_key" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_gen_dhchap_key \- DH-HMAC-CHAP key generation .SH SYNOPSIS diff --git a/doc/man/nvme_get_ana_log_len.2 b/doc/man/nvme_get_ana_log_len.2 index 0f47d50..1e1b0da 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_ana_log_len" 9 "nvme_get_ana_log_len" "January 2023" "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_attr.2 b/doc/man/nvme_get_attr.2 index f5c273f..058e372 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_attr" 9 "nvme_get_attr" "January 2023" "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 9c28999..622fa5f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_ctrl_attr" 9 "nvme_get_ctrl_attr" "January 2023" "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 33d5c16..79d55d6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_ctrl_telemetry" 9 "nvme_get_ctrl_telemetry" "January 2023" "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 e38aca9..729b1de 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_directive_receive_length" 9 "nvme_get_directive_receive_length" "January 2023" "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 d80b614..6f83ded 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_get_discovery_args" "January 2023" "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 b176a02..50dd008 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_feature_length" 9 "nvme_get_feature_length" "January 2023" "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 9a3d5a9..41bd0f2 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_feature_length2" 9 "nvme_get_feature_length2" "January 2023" "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 98d10ce..33c0a8f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features" 9 "nvme_get_features" "January 2023" "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 d179153..4a51848 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_arbitration" 9 "nvme_get_features_arbitration" "January 2023" "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 dd32249..2fb73f4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_async_event" 9 "nvme_get_features_async_event" "January 2023" "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 3841101..fa3a947 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_auto_pst" 9 "nvme_get_features_auto_pst" "January 2023" "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 2091ad6..b1a8604 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_data" 9 "nvme_get_features_data" "January 2023" "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 9ccac84..2b4715e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_endurance_event_cfg" 9 "nvme_get_features_endurance_event_cfg" "January 2023" "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 a40fe1b..c8962ed 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_err_recovery" 9 "nvme_get_features_err_recovery" "January 2023" "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_hctm.2 b/doc/man/nvme_get_features_hctm.2 index ede7b19..c205318 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_hctm" 9 "nvme_get_features_hctm" "January 2023" "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 6086336..800211d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_host_behavior" 9 "nvme_get_features_host_behavior" "January 2023" "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 52a611a..4ee0ca8 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_host_id" 9 "nvme_get_features_host_id" "January 2023" "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 92eaf75..5c3766b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_host_mem_buf" 9 "nvme_get_features_host_mem_buf" "January 2023" "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_iocs_profile.2 b/doc/man/nvme_get_features_iocs_profile.2 index 6a961a4..2fcde5f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_iocs_profile" 9 "nvme_get_features_iocs_profile" "January 2023" "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 f09f537..c2b54dd 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_irq_coalesce" 9 "nvme_get_features_irq_coalesce" "January 2023" "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 f07d1b6..1467d67 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_irq_config" 9 "nvme_get_features_irq_config" "January 2023" "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 da3130c..464ea62 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_kato" 9 "nvme_get_features_kato" "January 2023" "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 88ac731..19af419 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_lba_range" 9 "nvme_get_features_lba_range" "January 2023" "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_sts_interval.2 b/doc/man/nvme_get_features_lba_sts_interval.2 index 2c77cfc..d06b19b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_lba_sts_interval" 9 "nvme_get_features_lba_sts_interval" "January 2023" "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 7710964..8c1e396 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_nopsc" 9 "nvme_get_features_nopsc" "January 2023" "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 4a577a9..bda5239 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_num_queues" 9 "nvme_get_features_num_queues" "January 2023" "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 ec2f5ce..d04f793 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_plm_config" 9 "nvme_get_features_plm_config" "January 2023" "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 1b653a9..454617c 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_plm_window" 9 "nvme_get_features_plm_window" "January 2023" "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 75f7a01..3155068 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_power_mgmt" 9 "nvme_get_features_power_mgmt" "January 2023" "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 059ae3b..e02f80a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_resv_mask" 9 "nvme_get_features_resv_mask" "January 2023" "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_persist.2 b/doc/man/nvme_get_features_resv_persist.2 index 5634e9e..4e83fa7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_resv_persist" 9 "nvme_get_features_resv_persist" "January 2023" "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_rrl.2 b/doc/man/nvme_get_features_rrl.2 index a20b8fc..069de9e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_rrl" 9 "nvme_get_features_rrl" "January 2023" "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 b5869ec..03a4a21 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_sanitize" 9 "nvme_get_features_sanitize" "January 2023" "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 7381831..1b40475 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_get_features_sel" "January 2023" "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 e528114..6347ea7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_simple" 9 "nvme_get_features_simple" "January 2023" "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 745221c..2f3aaef 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_sw_progress" 9 "nvme_get_features_sw_progress" "January 2023" "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 30d0e97..20da00f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_temp_thresh" 9 "nvme_get_features_temp_thresh" "January 2023" "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 d8c6503..f0e3ed9 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_timestamp" 9 "nvme_get_features_timestamp" "January 2023" "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 76db21e..6c366c9 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_volatile_wc" 9 "nvme_get_features_volatile_wc" "January 2023" "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 8d4d814..5a517da 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_write_atomic" 9 "nvme_get_features_write_atomic" "January 2023" "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 4ad6411..cd1da22 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_features_write_protect" 9 "nvme_get_features_write_protect" "January 2023" "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 c5df379..5355a3c 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_host_telemetry" 9 "nvme_get_host_telemetry" "January 2023" "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 cab0c57..02a9dd3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_lba_status" 9 "nvme_get_lba_status" "January 2023" "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 4490880..79fd0ee 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_lba_status_log" 9 "nvme_get_lba_status_log" "January 2023" "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 5c9f50c..6c33516 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log" 9 "nvme_get_log" "January 2023" "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 46d0931..6822ff3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_ana" 9 "nvme_get_log_ana" "January 2023" "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 6f4a07c..466d7e4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_ana_groups" 9 "nvme_get_log_ana_groups" "January 2023" "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_boot_partition.2 b/doc/man/nvme_get_log_boot_partition.2 index b8d65b0..a649316 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_boot_partition" 9 "nvme_get_log_boot_partition" "January 2023" "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_ns_list.2 b/doc/man/nvme_get_log_changed_ns_list.2 index 9ce502e..2f93f0d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_changed_ns_list" 9 "nvme_get_log_changed_ns_list" "January 2023" "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 a5a78b0..7045413 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_cmd_effects" 9 "nvme_get_log_cmd_effects" "January 2023" "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 feae35b..4eca320 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_create_telemetry_host" 9 "nvme_get_log_create_telemetry_host" "January 2023" "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_device_self_test.2 b/doc/man/nvme_get_log_device_self_test.2 index 710f0a0..9447e7e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_device_self_test" 9 "nvme_get_log_device_self_test" "January 2023" "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 3954a13..4fd1409 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_discovery" 9 "nvme_get_log_discovery" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_get_log_discovery \- Retrieve Discovery log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_endurance_group.2 b/doc/man/nvme_get_log_endurance_group.2 index 7690ec7..91b596e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_endurance_group" 9 "nvme_get_log_endurance_group" "January 2023" "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 2be5ff3..fbb4910 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_endurance_grp_evt" 9 "nvme_get_log_endurance_grp_evt" "January 2023" "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 09bdd32..48c1bc1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_error" 9 "nvme_get_log_error" "January 2023" "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 new file mode 100644 index 0000000..71c0b5f --- /dev/null +++ b/doc/man/nvme_get_log_fdp_configurations.2 @@ -0,0 +1,21 @@ +.TH "nvme_get_log_fdp_configurations" 9 "nvme_get_log_fdp_configurations" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_fdp_configurations \- Get list of Flexible Data Placement configurations +.SH SYNOPSIS +.B "int" nvme_get_log_fdp_configurations +.BI "(int fd " "," +.BI "__u16 egid " "," +.BI "__u32 offset " "," +.BI "__u32 len " "," +.BI "void *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "egid" 12 +Endurance group identifier +.IP "offset" 12 +Offset into log page +.IP "len" 12 +Length (in bytes) of provided user buffer to hold the log data +.IP "log" 12 +Log page data buffer diff --git a/doc/man/nvme_get_log_fdp_events.2 b/doc/man/nvme_get_log_fdp_events.2 new file mode 100644 index 0000000..a5613f4 --- /dev/null +++ b/doc/man/nvme_get_log_fdp_events.2 @@ -0,0 +1,24 @@ +.TH "nvme_get_log_fdp_events" 9 "nvme_get_log_fdp_events" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_fdp_events \- Get Flexible Data Placement events +.SH SYNOPSIS +.B "int" nvme_get_log_fdp_events +.BI "(int fd " "," +.BI "__u16 egid " "," +.BI "bool host_events " "," +.BI "__u32 offset " "," +.BI "__u32 len " "," +.BI "void *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "egid" 12 +Endurance group identifier +.IP "host_events" 12 +Whether to report host or controller events +.IP "offset" 12 +Offset into log page +.IP "len" 12 +Length (in bytes) of provided user buffer to hold the log data +.IP "log" 12 +Log page data buffer diff --git a/doc/man/nvme_get_log_fdp_stats.2 b/doc/man/nvme_get_log_fdp_stats.2 new file mode 100644 index 0000000..adcd781 --- /dev/null +++ b/doc/man/nvme_get_log_fdp_stats.2 @@ -0,0 +1,21 @@ +.TH "nvme_get_log_fdp_stats" 9 "nvme_get_log_fdp_stats" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_fdp_stats \- Get Flexible Data Placement statistics +.SH SYNOPSIS +.B "int" nvme_get_log_fdp_stats +.BI "(int fd " "," +.BI "__u16 egid " "," +.BI "__u32 offset " "," +.BI "__u32 len " "," +.BI "void *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "egid" 12 +Endurance group identifier +.IP "offset" 12 +Offset into log page +.IP "len" 12 +Length (in bytes) of provided user buffer to hold the log data +.IP "log" 12 +Log page data buffer diff --git a/doc/man/nvme_get_log_fid_supported_effects.2 b/doc/man/nvme_get_log_fid_supported_effects.2 index 7b4b8e5..0b7541c 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_fid_supported_effects" 9 "nvme_get_log_fid_supported_effects" "January 2023" "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 2792ba6..787f2d0 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_fw_slot" 9 "nvme_get_log_fw_slot" "January 2023" "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_lba_status.2 b/doc/man/nvme_get_log_lba_status.2 index 723e6b1..11ba889 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_get_log_lba_status \- Retrieve LBA Status .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 117034b..ce07cf9 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_media_unit_stat" 9 "nvme_get_log_media_unit_stat" "January 2023" "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_mi_cmd_supported_effects.2 b/doc/man/nvme_get_log_mi_cmd_supported_effects.2 index c153f1d..c2c973f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_mi_cmd_supported_effects" 9 "nvme_get_log_mi_cmd_supported_effects" "January 2023" "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 bff7063..9ff9c87 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_page" 9 "nvme_get_log_page" "January 2023" "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 168e4e9..d11de09 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_persistent_event" 9 "nvme_get_log_persistent_event" "January 2023" "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_predictable_lat_event.2 b/doc/man/nvme_get_log_predictable_lat_event.2 index ca8a071..6e33277 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_predictable_lat_event" 9 "nvme_get_log_predictable_lat_event" "January 2023" "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 653e807..bc5fde8 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_predictable_lat_nvmset" 9 "nvme_get_log_predictable_lat_nvmset" "January 2023" "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_reclaim_unit_handle_usage.2 b/doc/man/nvme_get_log_reclaim_unit_handle_usage.2 new file mode 100644 index 0000000..7e62cc6 --- /dev/null +++ b/doc/man/nvme_get_log_reclaim_unit_handle_usage.2 @@ -0,0 +1,21 @@ +.TH "nvme_get_log_reclaim_unit_handle_usage" 9 "nvme_get_log_reclaim_unit_handle_usage" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_reclaim_unit_handle_usage \- Get reclaim unit handle usage +.SH SYNOPSIS +.B "int" nvme_get_log_reclaim_unit_handle_usage +.BI "(int fd " "," +.BI "__u16 egid " "," +.BI "__u32 offset " "," +.BI "__u32 len " "," +.BI "void *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "egid" 12 +Endurance group identifier +.IP "offset" 12 +Offset into log page +.IP "len" 12 +Length (in bytes) of provided user buffer to hold the log data +.IP "log" 12 +Log page data buffer diff --git a/doc/man/nvme_get_log_reservation.2 b/doc/man/nvme_get_log_reservation.2 index ec14ee4..dd0a3cb 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_reservation" 9 "nvme_get_log_reservation" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_get_log_reservation \- Retrieve Reservation Notification .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_sanitize.2 b/doc/man/nvme_get_log_sanitize.2 index bc935bd..35c7e41 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_sanitize" 9 "nvme_get_log_sanitize" "January 2023" "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 3f232ad..48fcc57 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_smart" 9 "nvme_get_log_smart" "January 2023" "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 f0a94a3..2b8881d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_support_cap_config_list" 9 "nvme_get_log_support_cap_config_list" "January 2023" "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 832a566..335b35d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_supported_log_pages" 9 "nvme_get_log_supported_log_pages" "January 2023" "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 110dab0..2fa418f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_telemetry_ctrl" 9 "nvme_get_log_telemetry_ctrl" "January 2023" "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 56cabae..01bccc7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_telemetry_host" 9 "nvme_get_log_telemetry_host" "January 2023" "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 10906fa..908bf12 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_log_zns_changed_zones" 9 "nvme_get_log_zns_changed_zones" "January 2023" "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_logical_block_size.2 b/doc/man/nvme_get_logical_block_size.2 index 5a86abb..63419a7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_logical_block_size" 9 "nvme_get_logical_block_size" "January 2023" "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 90f3210..d6d101a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_new_host_telemetry" 9 "nvme_get_new_host_telemetry" "January 2023" "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 bf9977d..0aa77f7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_ns_attr" 9 "nvme_get_ns_attr" "January 2023" "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 ece18ec..8773686 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_nsid" 9 "nvme_get_nsid" "January 2023" "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 e7044a4..73b73a2 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_path_attr" 9 "nvme_get_path_attr" "January 2023" "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 bad5b54..b5d8582 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_property" 9 "nvme_get_property" "January 2023" "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 39d632d..645e947 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_get_subsys_attr" 9 "nvme_get_subsys_attr" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_get_subsys_attr \- Read subsystem sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_hmac_alg.2 b/doc/man/nvme_hmac_alg.2 index e2699d9..a243dee 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_hmac_alg" "January 2023" "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 dc6f2c9..d2d1b4d 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_host_behavior_support" "January 2023" "API Manual" LINUX .SH NAME enum nvme_host_behavior_support \- Enable Advanced Command .SH SYNOPSIS diff --git a/doc/man/nvme_host_get_dhchap_key.2 b/doc/man/nvme_host_get_dhchap_key.2 index 5eabfd3..d99e3cd 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_host_get_dhchap_key" 9 "nvme_host_get_dhchap_key" "January 2023" "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 afa6178..313c6aa 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_host_get_hostid" 9 "nvme_host_get_hostid" "January 2023" "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 0c897d6..91383a9 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_host_get_hostnqn" 9 "nvme_host_get_hostnqn" "January 2023" "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 c021b56..095d114 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_host_get_hostsymname" 9 "nvme_host_get_hostsymname" "January 2023" "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 29a74b0..df64a25 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_host_get_root" 9 "nvme_host_get_root" "January 2023" "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 new file mode 100644 index 0000000..ab175ee --- /dev/null +++ b/doc/man/nvme_host_is_pdc_enabled.2 @@ -0,0 +1,16 @@ +.TH "nvme_host_is_pdc_enabled" 9 "nvme_host_is_pdc_enabled" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_host_is_pdc_enabled \- Is Persistenct Discovery Controller enabled +.SH SYNOPSIS +.B "bool" nvme_host_is_pdc_enabled +.BI "(nvme_host_t h " "," +.BI "bool fallback " ");" +.SH ARGUMENTS +.IP "h" 12 +Host which to check if PDC is enabled +.IP "fallback" 12 +The fallback default value of the flag when +\fInvme_host_set_pdc_enabled\fP has not be used +to set the flag. +.SH "RETURN" +true if PDC is enabled for \fIh\fP, else false diff --git a/doc/man/nvme_host_mem_buf_attrs.2 b/doc/man/nvme_host_mem_buf_attrs.2 index 9d4da55..d37127b 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_host_mem_buf_attrs" "January 2023" "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 c329d95..0b1719b 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_host_metadata" "January 2023" "API Manual" LINUX .SH NAME struct nvme_host_metadata \- Host Metadata Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_host_set_dhchap_key.2 b/doc/man/nvme_host_set_dhchap_key.2 index 96704fa..424fca2 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_host_set_dhchap_key" 9 "nvme_host_set_dhchap_key" "January 2023" "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 f8b3725..644dbe7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_host_set_hostsymname" 9 "nvme_host_set_hostsymname" "January 2023" "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 new file mode 100644 index 0000000..cede6d6 --- /dev/null +++ b/doc/man/nvme_host_set_pdc_enabled.2 @@ -0,0 +1,16 @@ +.TH "nvme_host_set_pdc_enabled" 9 "nvme_host_set_pdc_enabled" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_host_set_pdc_enabled \- Set Persistent Discovery Controller flag +.SH SYNOPSIS +.B "void" nvme_host_set_pdc_enabled +.BI "(nvme_host_t h " "," +.BI "bool enabled " ");" +.SH ARGUMENTS +.IP "h" 12 +Host for which the falg should be set +.IP "enabled" 12 +The bool to set the enabled flag +.SH "DESCRIPTION" +When \fBnvme_host_set_pdc_enabled\fP is not used to set the PDC flag, +\fBnvme_host_is_pdc_enabled\fP will return the default value which was +passed into the function and not the undefined flag value. diff --git a/doc/man/nvme_id_ctrl.2 b/doc/man/nvme_id_ctrl.2 index 9d0661f..f3b3164 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ctrl" "January 2023" "API Manual" LINUX .SH NAME struct nvme_id_ctrl \- Identify Controller data structure .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_anacap.2 b/doc/man/nvme_id_ctrl_anacap.2 index 7046e5c..bb14914 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_anacap" "January 2023" "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 bf40d5d..661ba05 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_apsta" "January 2023" "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 138534e..b9a71e4 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_avscc" "January 2023" "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_cmic.2 b/doc/man/nvme_id_ctrl_cmic.2 index 4a9c640..e4dee6f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_cmic" "January 2023" "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 49af016..111367f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_cntrltype" "January 2023" "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 a5d39b3..88e1045 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_cqes" "January 2023" "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_ctratt.2 b/doc/man/nvme_id_ctrl_ctratt.2 index 3e98d88..fb5b19e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_ctratt" "January 2023" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_ctratt \- Controller attributes .SH SYNOPSIS @@ -65,6 +65,10 @@ enum nvme_id_ctrl_ctratt { .br .br .BI " NVME_CTRL_CTRATT_ELBAS" +, +.br +.br +.BI " NVME_CTRL_CTRATT_FDPS" }; .SH Constants @@ -102,3 +106,5 @@ Delete Endurance Groups supported Delete NVM Sets supported .IP "NVME_CTRL_CTRATT_ELBAS" 12 Extended LBA Formats supported +.IP "NVME_CTRL_CTRATT_FDPS" 12 +Flexible Data Placement supported diff --git a/doc/man/nvme_id_ctrl_dctype.2 b/doc/man/nvme_id_ctrl_dctype.2 index c7ac74b..84e8eac 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_dctype" "January 2023" "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 7d365bb..5cb40c6 100644 --- a/doc/man/nvme_id_ctrl_dsto.2 +++ b/doc/man/nvme_id_ctrl_dsto.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_dsto" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_dsto" "January 2023" "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 diff --git a/doc/man/nvme_id_ctrl_fcatt.2 b/doc/man/nvme_id_ctrl_fcatt.2 index 1642213..ed96f39 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_fcatt" "January 2023" "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 edbd3d6..4356601 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_fna" "January 2023" "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 533dbf8..064ee86 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_frmw" "January 2023" "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 272c604..7abf42e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_fuses" "January 2023" "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 9d1106c..ae1e293 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_hctm" "January 2023" "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_lpa.2 b/doc/man/nvme_id_ctrl_lpa.2 index fc29d73..24671ea 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_lpa" "January 2023" "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 f26c443..9c536ed 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_mec" "January 2023" "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 4639578..42cb097 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ctrl_nvm" "January 2023" "API Manual" LINUX .SH NAME struct nvme_id_ctrl_nvm \- I/O Command Set Specific Identify Controller data structure .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_nvmsr.2 b/doc/man/nvme_id_ctrl_nvmsr.2 index 52e2581..e0ced53 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_nvmsr" "January 2023" "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 diff --git a/doc/man/nvme_id_ctrl_nvscc.2 b/doc/man/nvme_id_ctrl_nvscc.2 index a04d003..670e9a2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_nvscc" "January 2023" "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 05d915c..f17eba6 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_nwpc" "January 2023" "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 b67818f..d1915fd 100644 --- a/doc/man/nvme_id_ctrl_oacs.2 +++ b/doc/man/nvme_id_ctrl_oacs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_oacs" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_oacs" "January 2023" "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 diff --git a/doc/man/nvme_id_ctrl_oaes.2 b/doc/man/nvme_id_ctrl_oaes.2 index 9b065b2..dc536d4 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_oaes" "January 2023" "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 e3c8a47..3528e37 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_ofcs" "January 2023" "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 011fc5c..f788b4d 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_oncs" "January 2023" "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 diff --git a/doc/man/nvme_id_ctrl_rpmbs.2 b/doc/man/nvme_id_ctrl_rpmbs.2 index 52ff266..501fccc 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_rpmbs" "January 2023" "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 1a6456f..9c53643 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_sanicap" "January 2023" "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 fdfba05..10809b8 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_sgls" "January 2023" "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 4135fe8..b50dd1b 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_sqes" "January 2023" "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_vwc.2 b/doc/man/nvme_id_ctrl_vwc.2 index 3a36864..bc65e6d 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_vwc" "January 2023" "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 53283c9..dd6d327 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_vwci" "January 2023" "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 63267f6..d4e4b8a 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_directives" "January 2023" "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 1998ba3..2820669 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_domain_attr" "January 2023" "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 95b0a99..64c0e3f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_domain_list" "January 2023" "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 94cd512..12128ef 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_endurance_group_list" "January 2023" "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 704ed39..06de59c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_independent_id_ns" "January 2023" "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 4145e17..6c31e0a 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_iocs" "January 2023" "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_ns.2 b/doc/man/nvme_id_ns.2 index ce284d8..8305252 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ns" "January 2023" "API Manual" LINUX .SH NAME struct nvme_id_ns \- Identify Namespace data structure .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_attr.2 b/doc/man/nvme_id_ns_attr.2 index 324faf0..010790e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_attr" "January 2023" "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 6d98a2a..382aff7 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_dlfeat" "January 2023" "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 57faa6f..cd8aebb 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_dpc" "January 2023" "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 ebd45d5..7f7097c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_dps" "January 2023" "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 4d55384..5794ceb 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_flbas" "January 2023" "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 1a3c8f3..75adb56 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ns_granularity_desc" "January 2023" "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 d4da19d..4638d0b 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ns_granularity_list" "January 2023" "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 129614a..346c684 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_mc" "January 2023" "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 b27318e..b0e0765 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_nmic" "January 2023" "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 ccdeecd..cc8901f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_rescap" "January 2023" "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 881ee8f..747a0bc 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_nsfeat" "January 2023" "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 6646458..a7247f9 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_nvmset_list" "January 2023" "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 3e4864d..7ccdee9 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_psd" "January 2023" "API Manual" LINUX .SH NAME struct nvme_id_psd \- Power Management data structure .SH SYNOPSIS diff --git a/doc/man/nvme_id_uuid.2 b/doc/man/nvme_id_uuid.2 index 41ca728..a6f1524 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_uuid" "January 2023" "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 2243279..68106c9 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_uuid_list" "January 2023" "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 c194b78..1525bad 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_uuid_list_entry" "January 2023" "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 b0cf067..fa0a0c6 100644 --- a/doc/man/nvme_identify.2 +++ b/doc/man/nvme_identify.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify" 9 "nvme_identify" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify" 9 "nvme_identify" "January 2023" "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 8f9b412..9f4d11b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_active_ns_list" 9 "nvme_identify_active_ns_list" "January 2023" "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 a87020c..5bbeda7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_active_ns_list_csi" 9 "nvme_identify_active_ns_list_csi" "January 2023" "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 b4766ff..89120e5 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_allocated_ns" 9 "nvme_identify_allocated_ns" "January 2023" "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 15d9129..39b7b52 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_allocated_ns_list" 9 "nvme_identify_allocated_ns_list" "January 2023" "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 a444b33..b71faa1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_allocated_ns_list_csi" 9 "nvme_identify_allocated_ns_list_csi" "January 2023" "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 1d11ffb..d641e33 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_identify_cns" "January 2023" "API Manual" LINUX .SH NAME enum nvme_identify_cns \- Identify - CNS Values .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ctrl.2 b/doc/man/nvme_identify_ctrl.2 index 606831b..2f2b488 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_ctrl" 9 "nvme_identify_ctrl" "January 2023" "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 9d8bd03..4a3cff7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_ctrl_csi" 9 "nvme_identify_ctrl_csi" "January 2023" "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 3019f20..7a787a9 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_ctrl_list" 9 "nvme_identify_ctrl_list" "January 2023" "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 18ec2e9..332198b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_domain_list" 9 "nvme_identify_domain_list" "January 2023" "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 188dde4..4420d85 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_endurance_group_list" 9 "nvme_identify_endurance_group_list" "January 2023" "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 e9d4070..b609829 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_independent_identify_ns" 9 "nvme_identify_independent_identify_ns" "January 2023" "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 fdbd644..852d7dc 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_iocs" 9 "nvme_identify_iocs" "January 2023" "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 6bddd4c..16cc8f2 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_iocs_ns_csi_user_data_format" 9 "nvme_identify_iocs_ns_csi_user_data_format" "January 2023" "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 fa03c1d..e132d82 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_ns" 9 "nvme_identify_ns" "January 2023" "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 0d6437e..3b826ef 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_ns_csi" 9 "nvme_identify_ns_csi" "January 2023" "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 f34c5f8..b9513ea 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_ns_csi_user_data_format" 9 "nvme_identify_ns_csi_user_data_format" "January 2023" "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 5f00ec1..b7a5f42 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_ns_descs" 9 "nvme_identify_ns_descs" "January 2023" "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 5361386..ca60403 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_ns_granularity" 9 "nvme_identify_ns_granularity" "January 2023" "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 7eb5d07..7caf127 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_nsid_ctrl_list" 9 "nvme_identify_nsid_ctrl_list" "January 2023" "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 139a20e..115b898 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_nvmset_list" 9 "nvme_identify_nvmset_list" "January 2023" "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 6b725cb..4f0f5e4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_primary_ctrl" 9 "nvme_identify_primary_ctrl" "January 2023" "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 354f1f0..1941b66 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_secondary_ctrl_list" 9 "nvme_identify_secondary_ctrl_list" "January 2023" "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 ff81c15..4e131c6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_identify_uuid" 9 "nvme_identify_uuid" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_identify_uuid \- Retrieves device's UUIDs .SH SYNOPSIS diff --git a/doc/man/nvme_init_copy_range.2 b/doc/man/nvme_init_copy_range.2 index 7a3e786..1900f20 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_init_copy_range" 9 "nvme_init_copy_range" "January 2023" "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 2f2f3ad..451522b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_init_copy_range_f1" 9 "nvme_init_copy_range_f1" "January 2023" "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_ctrl.2 b/doc/man/nvme_init_ctrl.2 index 941281c..1102cb0 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_init_ctrl" 9 "nvme_init_ctrl" "January 2023" "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 44cf66c..04b7edf 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_init_ctrl_list" 9 "nvme_init_ctrl_list" "January 2023" "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_dsm_range.2 b/doc/man/nvme_init_dsm_range.2 index b7d7b69..ff73816 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_init_dsm_range" 9 "nvme_init_dsm_range" "January 2023" "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 f33d25b..644cd8b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_init_logging" 9 "nvme_init_logging" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_init_logging \- Initialize logging .SH SYNOPSIS diff --git a/doc/man/nvme_io.2 b/doc/man/nvme_io.2 index bb357b2..b5be195 100644 --- a/doc/man/nvme_io.2 +++ b/doc/man/nvme_io.2 @@ -1,4 +1,4 @@ -.TH "nvme_io" 9 "nvme_io" "October 2022" "libnvme API manual" LINUX +.TH "nvme_io" 9 "nvme_io" "January 2023" "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 791f45b..d9f5437 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_control_flags" "January 2023" "API Manual" LINUX .SH NAME enum nvme_io_control_flags \- I/O control flags .SH SYNOPSIS diff --git a/doc/man/nvme_io_dsm_flags.2 b/doc/man/nvme_io_dsm_flags.2 index fdab16c..700a615 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_dsm_flags" "January 2023" "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 new file mode 100644 index 0000000..9624abe --- /dev/null +++ b/doc/man/nvme_io_mgmt_recv.2 @@ -0,0 +1,12 @@ +.TH "nvme_io_mgmt_recv" 9 "nvme_io_mgmt_recv" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_io_mgmt_recv \- I/O Management Receive command +.SH SYNOPSIS +.B "int" nvme_io_mgmt_recv +.BI "(struct nvme_io_mgmt_recv_args *args " ");" +.SH ARGUMENTS +.IP "args" 12 +\fIstruct nvme_io_mgmt_recv_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_io_mgmt_recv_mo.2 b/doc/man/nvme_io_mgmt_recv_mo.2 new file mode 100644 index 0000000..f9556d6 --- /dev/null +++ b/doc/man/nvme_io_mgmt_recv_mo.2 @@ -0,0 +1,12 @@ +.TH "libnvme" 9 "enum nvme_io_mgmt_recv_mo" "January 2023" "API Manual" LINUX +.SH NAME +enum nvme_io_mgmt_recv_mo \- I/O Management Receive - Management Operation +.SH SYNOPSIS +enum nvme_io_mgmt_recv_mo { +.br +.BI " NVME_IO_MGMT_RECV_RUH_STATUS" + +}; +.SH Constants +.IP "NVME_IO_MGMT_RECV_RUH_STATUS" 12 +Reclaim Unit Handle Status diff --git a/doc/man/nvme_io_mgmt_send.2 b/doc/man/nvme_io_mgmt_send.2 new file mode 100644 index 0000000..9b41e2c --- /dev/null +++ b/doc/man/nvme_io_mgmt_send.2 @@ -0,0 +1,12 @@ +.TH "nvme_io_mgmt_send" 9 "nvme_io_mgmt_send" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_io_mgmt_send \- I/O Management Send command +.SH SYNOPSIS +.B "int" nvme_io_mgmt_send +.BI "(struct nvme_io_mgmt_send_args *args " ");" +.SH ARGUMENTS +.IP "args" 12 +\fIstruct nvme_io_mgmt_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_io_mgmt_send_mo.2 b/doc/man/nvme_io_mgmt_send_mo.2 new file mode 100644 index 0000000..a2ae1ac --- /dev/null +++ b/doc/man/nvme_io_mgmt_send_mo.2 @@ -0,0 +1,12 @@ +.TH "libnvme" 9 "enum nvme_io_mgmt_send_mo" "January 2023" "API Manual" LINUX +.SH NAME +enum nvme_io_mgmt_send_mo \- I/O Management Send - Management Operation +.SH SYNOPSIS +enum nvme_io_mgmt_send_mo { +.br +.BI " NVME_IO_MGMT_SEND_RUH_UPDATE" + +}; +.SH Constants +.IP "NVME_IO_MGMT_SEND_RUH_UPDATE" 12 +Reclaim Unit Handle Update diff --git a/doc/man/nvme_io_opcode.2 b/doc/man/nvme_io_opcode.2 index 492161f..5421280 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_opcode" "January 2023" "API Manual" LINUX .SH NAME enum nvme_io_opcode \- Opcodes for I/O Commands .SH SYNOPSIS @@ -48,6 +48,10 @@ enum nvme_io_opcode { , .br .br +.BI " nvme_cmd_io_mgmt_recv" +, +.br +.br .BI " nvme_cmd_resv_release" , .br @@ -56,6 +60,10 @@ enum nvme_io_opcode { , .br .br +.BI " nvme_cmd_io_mgmt_send" +, +.br +.br .BI " nvme_zns_cmd_mgmt_send" , .br @@ -90,10 +98,14 @@ Reservation Register Reservation Report .IP "nvme_cmd_resv_acquire" 12 Reservation Acquire +.IP "nvme_cmd_io_mgmt_recv" 12 +I/O Management Receive .IP "nvme_cmd_resv_release" 12 Reservation Release .IP "nvme_cmd_copy" 12 Copy +.IP "nvme_cmd_io_mgmt_send" 12 +I/O Management Send .IP "nvme_zns_cmd_mgmt_send" 12 Zone Management Send .IP "nvme_zns_cmd_mgmt_recv" 12 diff --git a/doc/man/nvme_io_passthru.2 b/doc/man/nvme_io_passthru.2 index ffb19fc..2180ab3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_io_passthru" 9 "nvme_io_passthru" "January 2023" "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 30e0378..aff02e3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_io_passthru64" 9 "nvme_io_passthru64" "January 2023" "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 e23f562..39701b1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_is_64bit_reg" 9 "nvme_is_64bit_reg" "January 2023" "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_lba_range_type.2 b/doc/man/nvme_lba_range_type.2 index 6d935be..034191b 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_range_type" "January 2023" "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 f6bf43e..5740756 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_range_type_entry" "January 2023" "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 d6e02ed..b1e87d3 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_rd" "January 2023" "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 629460b..ba502c6 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_status" "January 2023" "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 1f42175..064bf4c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lba_status_atype" "January 2023" "API Manual" LINUX .SH NAME enum nvme_lba_status_atype \- Potentially Unrecoverable LBAs .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status_desc.2 b/doc/man/nvme_lba_status_desc.2 index 73aab2e..a7f1cec 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_status_desc" "January 2023" "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 c2d1e5d..eb61fdf 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_status_log" "January 2023" "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 cf946ab..9e4a98b 100644 --- a/doc/man/nvme_lbaf.2 +++ b/doc/man/nvme_lbaf.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lbaf" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lbaf" "January 2023" "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 3d13eea..5c66eac 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lbaf_rp" "January 2023" "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 32a6296..55b6aa9 100644 --- a/doc/man/nvme_lbart.2 +++ b/doc/man/nvme_lbart.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lbart" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lbart" "January 2023" "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 dc8043e..6b4a3bc 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lbas_ns_element" "January 2023" "API Manual" LINUX .SH NAME struct nvme_lbas_ns_element \- LBA Status Log Namespace Element .SH SYNOPSIS diff --git a/doc/man/nvme_lockdown.2 b/doc/man/nvme_lockdown.2 index 775bd6b..4b331ea 100644 --- a/doc/man/nvme_lockdown.2 +++ b/doc/man/nvme_lockdown.2 @@ -1,4 +1,4 @@ -.TH "nvme_lockdown" 9 "nvme_lockdown" "October 2022" "libnvme API manual" LINUX +.TH "nvme_lockdown" 9 "nvme_lockdown" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_lockdown \- Issue lockdown command .SH SYNOPSIS diff --git a/doc/man/nvme_log_ana_lsp.2 b/doc/man/nvme_log_ana_lsp.2 index 3e1df4a..a67274f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_log_ana_lsp" "January 2023" "API Manual" LINUX .SH NAME enum nvme_log_ana_lsp \- Asymmetric Namespace Access - Return Groups Only .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_ctrl.2 b/doc/man/nvme_lookup_ctrl.2 index 0d400ea..c9942b7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_lookup_ctrl" 9 "nvme_lookup_ctrl" "January 2023" "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 47b6239..74f9abe 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_lookup_host" 9 "nvme_lookup_host" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_lookup_host \- Lookup nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_subsystem.2 b/doc/man/nvme_lookup_subsystem.2 index 4adc5cb..0e780eb 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_lookup_subsystem" 9 "nvme_lookup_subsystem" "January 2023" "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 e39bb39..02c7725 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_media_unit_config_desc" "January 2023" "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 9f381b8..079dba6 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_media_unit_stat_desc" "January 2023" "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 f23ea35..4b0318e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_media_unit_stat_log" "January 2023" "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 62356e4..56e552f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_metadata_element_desc" "January 2023" "API Manual" LINUX .SH NAME struct nvme_metadata_element_desc \- Metadata Element Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_admin_passthru.2 b/doc/man/nvme_mi_admin_admin_passthru.2 new file mode 100644 index 0000000..9ba91d8 --- /dev/null +++ b/doc/man/nvme_mi_admin_admin_passthru.2 @@ -0,0 +1,74 @@ +.TH "nvme_mi_admin_admin_passthru" 9 "nvme_mi_admin_admin_passthru" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_admin_passthru \- Submit an nvme admin passthrough command +.SH SYNOPSIS +.B "int" nvme_mi_admin_admin_passthru +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "__u8 opcode " "," +.BI "__u8 flags " "," +.BI "__u16 rsvd " "," +.BI "__u32 nsid " "," +.BI "__u32 cdw2 " "," +.BI "__u32 cdw3 " "," +.BI "__u32 cdw10 " "," +.BI "__u32 cdw11 " "," +.BI "__u32 cdw12 " "," +.BI "__u32 cdw13 " "," +.BI "__u32 cdw14 " "," +.BI "__u32 cdw15 " "," +.BI "__u32 data_len " "," +.BI "void *data " "," +.BI "__u32 metadata_len " "," +.BI "void *metadata " "," +.BI "__u32 timeout_ms " "," +.BI "__u32 *result " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to send command to +.IP "opcode" 12 +The nvme admin command to send +.IP "flags" 12 +NVMe command flags (not used) +.IP "rsvd" 12 +Reserved for future use +.IP "nsid" 12 +Namespace identifier +.IP "cdw2" 12 +Command dword 2 +.IP "cdw3" 12 +Command dword 3 +.IP "cdw10" 12 +Command dword 10 +.IP "cdw11" 12 +Command dword 11 +.IP "cdw12" 12 +Command dword 12 +.IP "cdw13" 12 +Command dword 13 +.IP "cdw14" 12 +Command dword 14 +.IP "cdw15" 12 +Command dword 15 +.IP "data_len" 12 +Length of the data transferred in this command in bytes +.IP "data" 12 +Pointer to user address of the data buffer +.IP "metadata_len" 12 +Length of metadata transferred in this command(not used) +.IP "metadata" 12 +Pointer to user address of the metadata buffer(not used) +.IP "timeout_ms" 12 +How long to wait for the command to complete +.IP "result" 12 +Optional field to return the result from the CQE dword 0 +.SH "DESCRIPTION" +Send a customized NVMe Admin command request message and get the corresponding +response message. + +This interface supports no data, host to controller and controller to +host but it doesn't support bidirectional data transfer. +Also this interface only supports data transfer size range [0, 4096] (bytes) +so the & data_len parameter must be less than 4097. +.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_format_nvm.2 b/doc/man/nvme_mi_admin_format_nvm.2 index 95550ee..6340aec 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_format_nvm" 9 "nvme_mi_admin_format_nvm" "January 2023" "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 d7ac6ac..a8c69bd 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_fw_commit" 9 "nvme_mi_admin_fw_commit" "January 2023" "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 9faf329..c3fab1d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_fw_download" 9 "nvme_mi_admin_fw_download" "January 2023" "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_features_data.2 b/doc/man/nvme_mi_admin_get_features_data.2 index 4b57744..07ecbf4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_features_data" 9 "nvme_mi_admin_get_features_data" "January 2023" "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 f52c668..3d63864 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log" 9 "nvme_mi_admin_get_log" "January 2023" "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 b5bd512..e0e1eec 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_ana" 9 "nvme_mi_admin_get_log_ana" "January 2023" "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 2aae5b2..b9cf9ba 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_ana_groups" 9 "nvme_mi_admin_get_log_ana_groups" "January 2023" "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_boot_partition.2 b/doc/man/nvme_mi_admin_get_log_boot_partition.2 index 8c4238f..adf9d7a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_boot_partition" 9 "nvme_mi_admin_get_log_boot_partition" "January 2023" "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_ns_list.2 b/doc/man/nvme_mi_admin_get_log_changed_ns_list.2 index a95b090..22f8301 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_changed_ns_list" 9 "nvme_mi_admin_get_log_changed_ns_list" "January 2023" "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 1aa24f6..cb30a55 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_cmd_effects" 9 "nvme_mi_admin_get_log_cmd_effects" "January 2023" "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 47cfccc..cdf6cb6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_create_telemetry_host" 9 "nvme_mi_admin_get_log_create_telemetry_host" "January 2023" "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_device_self_test.2 b/doc/man/nvme_mi_admin_get_log_device_self_test.2 index d05eb67..76606fa 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_device_self_test" 9 "nvme_mi_admin_get_log_device_self_test" "January 2023" "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 056bb2b..c65ed47 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_discovery" 9 "nvme_mi_admin_get_log_discovery" "January 2023" "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_endurance_group.2 b/doc/man/nvme_mi_admin_get_log_endurance_group.2 index 4b3fe59..55917ac 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_endurance_group" 9 "nvme_mi_admin_get_log_endurance_group" "January 2023" "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 c0556a1..14aa007 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_endurance_grp_evt" 9 "nvme_mi_admin_get_log_endurance_grp_evt" "January 2023" "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 eac5d66..5bb2983 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_error" 9 "nvme_mi_admin_get_log_error" "January 2023" "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 999c1eb..d090aed 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_fid_supported_effects" 9 "nvme_mi_admin_get_log_fid_supported_effects" "January 2023" "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 d4e3952..098d7dc 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_fw_slot" 9 "nvme_mi_admin_get_log_fw_slot" "January 2023" "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_lba_status.2 b/doc/man/nvme_mi_admin_get_log_lba_status.2 index d2bd99e..a140e27 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_lba_status" 9 "nvme_mi_admin_get_log_lba_status" "January 2023" "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_media_unit_stat.2 b/doc/man/nvme_mi_admin_get_log_media_unit_stat.2 index 05706f7..a2516b8 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_media_unit_stat" 9 "nvme_mi_admin_get_log_media_unit_stat" "January 2023" "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_mi_cmd_supported_effects.2 b/doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.2 index 11df378..0412b25 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_mi_cmd_supported_effects" 9 "nvme_mi_admin_get_log_mi_cmd_supported_effects" "January 2023" "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_persistent_event.2 b/doc/man/nvme_mi_admin_get_log_persistent_event.2 index aa53c90..39a43a3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_persistent_event" 9 "nvme_mi_admin_get_log_persistent_event" "January 2023" "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_predictable_lat_event.2 b/doc/man/nvme_mi_admin_get_log_predictable_lat_event.2 index c2e9f56..e4272b1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_predictable_lat_event" 9 "nvme_mi_admin_get_log_predictable_lat_event" "January 2023" "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 5315b41..b827805 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_predictable_lat_nvmset" 9 "nvme_mi_admin_get_log_predictable_lat_nvmset" "January 2023" "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_reservation.2 b/doc/man/nvme_mi_admin_get_log_reservation.2 index 44c4ef2..7f27ac4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_reservation" 9 "nvme_mi_admin_get_log_reservation" "January 2023" "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_sanitize.2 b/doc/man/nvme_mi_admin_get_log_sanitize.2 index b457c53..2eb8ca1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_sanitize" 9 "nvme_mi_admin_get_log_sanitize" "January 2023" "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 1db47a6..1277095 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_simple" 9 "nvme_mi_admin_get_log_simple" "January 2023" "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 4110313..742bf24 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_smart" 9 "nvme_mi_admin_get_log_smart" "January 2023" "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 9effb5e..b4d1df5 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_support_cap_config_list" 9 "nvme_mi_admin_get_log_support_cap_config_list" "January 2023" "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 0912736..7958459 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_supported_log_pages" 9 "nvme_mi_admin_get_log_supported_log_pages" "January 2023" "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 7478fd3..623c5fb 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_telemetry_ctrl" 9 "nvme_mi_admin_get_log_telemetry_ctrl" "January 2023" "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 eb64be4..9a96a4b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_telemetry_host" 9 "nvme_mi_admin_get_log_telemetry_host" "January 2023" "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 9b2b78a..b2e3614 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_zns_changed_zones" 9 "nvme_mi_admin_get_log_zns_changed_zones" "January 2023" "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 6976fe4..8126e5f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_nsid_log" 9 "nvme_mi_admin_get_nsid_log" "January 2023" "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 2080bd7..c741daa 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify" 9 "nvme_mi_admin_identify" "January 2023" "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 bfd7a90..4a374ac 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_active_ns_list" 9 "nvme_mi_admin_identify_active_ns_list" "January 2023" "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 b588c34..4fd9023 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_allocated_ns" 9 "nvme_mi_admin_identify_allocated_ns" "January 2023" "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 d29553a..fd42cb2 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_allocated_ns_list" 9 "nvme_mi_admin_identify_allocated_ns_list" "January 2023" "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 314c047..49c9c2b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_cns_nsid" 9 "nvme_mi_admin_identify_cns_nsid" "January 2023" "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 f3ed411..a268d0b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ctrl" 9 "nvme_mi_admin_identify_ctrl" "January 2023" "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 d223cb0..c407f3b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ctrl_list" 9 "nvme_mi_admin_identify_ctrl_list" "January 2023" "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 233be5b..5333f89 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ns" 9 "nvme_mi_admin_identify_ns" "January 2023" "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 b937a84..919f008 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ns_descs" 9 "nvme_mi_admin_identify_ns_descs" "January 2023" "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 7077442..981f7a6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_nsid_ctrl_list" 9 "nvme_mi_admin_identify_nsid_ctrl_list" "January 2023" "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 c2d64ae..027c4f6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_partial" 9 "nvme_mi_admin_identify_partial" "January 2023" "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 4c89791..13eec74 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_primary_ctrl" 9 "nvme_mi_admin_identify_primary_ctrl" "January 2023" "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 9773676..2339d4d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_secondary_ctrl_list" 9 "nvme_mi_admin_identify_secondary_ctrl_list" "January 2023" "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 19fe15a..94d7c8e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_ns_attach" 9 "nvme_mi_admin_ns_attach" "January 2023" "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 96cd691..ebb64a6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_ns_attach_ctrls" 9 "nvme_mi_admin_ns_attach_ctrls" "January 2023" "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 a413f9b..799c39a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_ns_detach_ctrls" 9 "nvme_mi_admin_ns_detach_ctrls" "January 2023" "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 97d7927..33b22de 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_admin_req_hdr" "January 2023" "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 fb26a90..1818c60 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_admin_resp_hdr" "January 2023" "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 3f2ea2c..c27abd2 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_sanitize_nvm" 9 "nvme_mi_admin_sanitize_nvm" "January 2023" "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 ec3abcd..b101ab0 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_security_recv" 9 "nvme_mi_admin_security_recv" "January 2023" "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 7aad612..12c34b3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_security_send" 9 "nvme_mi_admin_security_send" "January 2023" "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 9cccd8b..9685540 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_admin_xfer" 9 "nvme_mi_admin_xfer" "January 2023" "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 d51b676..9f1d05c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_ccs" "January 2023" "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 99b372d..20fc032 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_close" 9 "nvme_mi_close" "January 2023" "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 0da3444..4423444 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_close_ctrl" 9 "nvme_mi_close_ctrl" "January 2023" "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 1c92f22..aa56713 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_cmd_supported_effects" "January 2023" "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 2c31034..802a223 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_cmd_supported_effects_log" "January 2023" "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 e1f9623..b479b9f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_config_id" "January 2023" "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 f32d02a..e377a8f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_config_smbus_freq" "January 2023" "API Manual" LINUX .SH NAME enum nvme_mi_config_smbus_freq \- SMBus/I2C frequency values .SH SYNOPSIS diff --git a/doc/man/nvme_mi_create_root.2 b/doc/man/nvme_mi_create_root.2 index 36af0a8..19de502 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_create_root" 9 "nvme_mi_create_root" "January 2023" "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 e60ee88..29307d8 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_csts" "January 2023" "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 3618dee..263dac2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_ctrl_health_status" "January 2023" "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_cwarn.2 b/doc/man/nvme_mi_cwarn.2 index cfc6e6f..db713cf 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_cwarn" "January 2023" "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 72433cd..55018c0 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_dtyp" "January 2023" "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 9b63108..0b29b0f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_elem" "January 2023" "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 f27be6c..cd7c38b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_free_root" 9 "nvme_mi_free_root" "January 2023" "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 cd555a8..be37340 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_init_ctrl" 9 "nvme_mi_init_ctrl" "January 2023" "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 0d0aa0a..c54e4bc 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_message_type" "January 2023" "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 85690b4..e5a8437 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_mi_opcode" "January 2023" "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 288b63a..5264357 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_ctrl" 9 "nvme_mi_mi_read_mi_data_ctrl" "January 2023" "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 5d88fa8..594d8f6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_ctrl_list" 9 "nvme_mi_mi_read_mi_data_ctrl_list" "January 2023" "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 4d56bf0..f3aeaf3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_port" 9 "nvme_mi_mi_read_mi_data_port" "January 2023" "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 685399e..a4a5191 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_subsys" 9 "nvme_mi_mi_read_mi_data_subsys" "January 2023" "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 29cd019..a7c0d49 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_mi_req_hdr" "January 2023" "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 c330b1b..37e78e5 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_mi_resp_hdr" "January 2023" "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 198744f..1b9b2c4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_mi_subsystem_health_status_poll" 9 "nvme_mi_mi_subsystem_health_status_poll" "January 2023" "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_msg_hdr.2 b/doc/man/nvme_mi_msg_hdr.2 index 19e863b..29e9bd6 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_msg_hdr" "January 2023" "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 d0fd332..64aad38 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_msg_resp" "January 2023" "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 4c3e829..1525edd 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_nvm_ss_health_status" "January 2023" "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 df239fb..11cf4ef 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_open_mctp" 9 "nvme_mi_open_mctp" "January 2023" "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 447786f..5841d25 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_osc" "January 2023" "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 09825fe..0eaa2f2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_port_pcie" "January 2023" "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 c11e3dd..efda36a 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_port_smb" "January 2023" "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 830e7f8..8b78aab 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_ctrl_info" "January 2023" "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 a761e7d..3fb30ad 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_nvm_ss_info" "January 2023" "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 831aff7..8931639 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_port_info" "January 2023" "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 c3fa251..2ff5a87 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_sc_list" "January 2023" "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 e0b79c9..aceae13 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_resp_status" "January 2023" "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 new file mode 100644 index 0000000..6b11db3 --- /dev/null +++ b/doc/man/nvme_mi_set_probe_enabled.2 @@ -0,0 +1,16 @@ +.TH "nvme_mi_set_probe_enabled" 9 "nvme_mi_set_probe_enabled" "January 2023" "libnvme API manual" LINUX +.SH NAME +nvme_mi_set_probe_enabled \- enable/disable the probe for new endpoints +.SH SYNOPSIS +.B "void" nvme_mi_set_probe_enabled +.BI "(nvme_root_t root " "," +.BI "bool enabled " ");" +.SH ARGUMENTS +.IP "root" 12 +\fInvme_root_t\fP object +.IP "enabled" 12 +whether to probe new endpoints +.SH "DESCRIPTION" +Controls whether newly-created endpoints are probed for quirks on creation. +Defaults to enabled, which results in some initial messaging with the +endpoint to determine model-specific details. diff --git a/doc/man/nvme_mi_status_to_string.2 b/doc/man/nvme_mi_status_to_string.2 index a65a85f..ba26ae5 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_mi_status_to_string" 9 "nvme_mi_status_to_string" "January 2023" "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 79188a8..63f0e1d 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_hdr" "January 2023" "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 95195c3..a0ca4a9 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_mr_common" "January 2023" "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 76c1dda..6d08710 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_mra" "January 2023" "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 7d2050e..9a2cb9a 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_ppmra" "January 2023" "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 22524e4..6e2c6f3 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_telem" "January 2023" "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 25aa2b6..eddac5e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_tra" "January 2023" "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 f03a0d3..83800d9 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_namespace_attach_ctrls" 9 "nvme_namespace_attach_ctrls" "January 2023" "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 a98170f..693dab8 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_namespace_detach_ctrls" 9 "nvme_namespace_detach_ctrls" "January 2023" "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 d74e862..d812134 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_namespace_filter" 9 "nvme_namespace_filter" "January 2023" "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 f3ea1dc..5cbc1a3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_namespace_first_path" 9 "nvme_namespace_first_path" "January 2023" "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 a8e104a..1631576 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_namespace_for_each_path" 9 "nvme_namespace_for_each_path" "January 2023" "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 a2e932c..5e580c1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_namespace_for_each_path_safe" 9 "nvme_namespace_for_each_path_safe" "January 2023" "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 6606597..1e6453f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_namespace_next_path" 9 "nvme_namespace_next_path" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_namespace_next_path \- Next path iterator .SH SYNOPSIS diff --git a/doc/man/nvme_nd_ns_fpi.2 b/doc/man/nvme_nd_ns_fpi.2 index 320b2c0..9f59b2f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nd_ns_fpi" "January 2023" "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 f084378..a6023c9 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_next_host" 9 "nvme_next_host" "January 2023" "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 55459ea..4e0ba64 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_next_subsystem" 9 "nvme_next_subsystem" "January 2023" "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 fc2d0f5..e506dad 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_attach" 9 "nvme_ns_attach" "January 2023" "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 621a497..99f02dc 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_attach_ctrls" 9 "nvme_ns_attach_ctrls" "January 2023" "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 ec2586b..3cad00e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_attach_sel" "January 2023" "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 e6858fb..b1ae3c3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_compare" 9 "nvme_ns_compare" "January 2023" "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 aa0da79..a0869ad 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_detach_ctrls" 9 "nvme_ns_detach_ctrls" "January 2023" "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 88ef5f1..04acee3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_flush" 9 "nvme_ns_flush" "January 2023" "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 1f48d89..a94fe51 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_csi" 9 "nvme_ns_get_csi" "January 2023" "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 04d7405..666e2f8 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_ctrl" 9 "nvme_ns_get_ctrl" "January 2023" "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 0e2d46a..6f53422 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_eui64" 9 "nvme_ns_get_eui64" "January 2023" "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 21f89c4..0ff82d5 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_fd" 9 "nvme_ns_get_fd" "January 2023" "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 c9a6a7e..d4a9c68 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_firmware" 9 "nvme_ns_get_firmware" "January 2023" "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 5c0fe36..8dcd9fb 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_generic_name" 9 "nvme_ns_get_generic_name" "January 2023" "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 1827dcd..f614362 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_lba_count" 9 "nvme_ns_get_lba_count" "January 2023" "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 ca1c6bc..bd57491 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_lba_size" 9 "nvme_ns_get_lba_size" "January 2023" "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 c35b360..fc82c51 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_lba_util" 9 "nvme_ns_get_lba_util" "January 2023" "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 4bd0940..75e1d1c 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_meta_size" 9 "nvme_ns_get_meta_size" "January 2023" "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 223ff01..dd4f3de 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_model" 9 "nvme_ns_get_model" "January 2023" "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 c25bd93..6fce252 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_name" 9 "nvme_ns_get_name" "January 2023" "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 cecd646..43c8cbd 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_nguid" 9 "nvme_ns_get_nguid" "January 2023" "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 0212042..4cd6c6a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_nsid" 9 "nvme_ns_get_nsid" "January 2023" "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 4ab27b3..2320ff6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_serial" 9 "nvme_ns_get_serial" "January 2023" "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 2d20ba9..eb847d0 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_subsystem" 9 "nvme_ns_get_subsystem" "January 2023" "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 51ff7de..55d0387 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_sysfs_dir" 9 "nvme_ns_get_sysfs_dir" "January 2023" "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 b471d55..f9ea1db 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_get_uuid" 9 "nvme_ns_get_uuid" "January 2023" "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 a8a7567..f3568fd 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ns_id_desc" "January 2023" "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 7177ccb..dfef8a2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_id_desc_nidt" "January 2023" "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 5e522a0..ec345b1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_identify" 9 "nvme_ns_identify" "January 2023" "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 a727935..cd266ed 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_identify_descs" 9 "nvme_ns_identify_descs" "January 2023" "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 8e3f787..ad01208 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ns_list" "January 2023" "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 8d874a8..b427ffb 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_metadata_type" "January 2023" "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 04d3e51..e835501 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt" 9 "nvme_ns_mgmt" "January 2023" "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 896332c..e1bb3df 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt_create" 9 "nvme_ns_mgmt_create" "January 2023" "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 b60654b..3d813e6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt_delete" 9 "nvme_ns_mgmt_delete" "January 2023" "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_sel.2 b/doc/man/nvme_ns_mgmt_sel.2 index 947ca7b..055dcb2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_mgmt_sel" "January 2023" "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 682ca14..af85e0a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_read" 9 "nvme_ns_read" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_ns_read \- Read from a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_rescan.2 b/doc/man/nvme_ns_rescan.2 index a483c0b..559de47 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_rescan" 9 "nvme_ns_rescan" "January 2023" "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 48ce2fc..3811496 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_verify" 9 "nvme_ns_verify" "January 2023" "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 b671d37..ddc21cd 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_write" 9 "nvme_ns_write" "January 2023" "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 0987434..eebca9c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_write_protect_cfg" "January 2023" "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 944b953..c3d3b80 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_write_uncorrectable" 9 "nvme_ns_write_uncorrectable" "January 2023" "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 132c83a..adecc20 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_ns_write_zeros" 9 "nvme_ns_write_zeros" "January 2023" "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 ad38206..1ea2151 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nss_hw_err_event" "January 2023" "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 8bfc16f..4f839de 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nvm_id_ns" "January 2023" "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 8e466dd..e34c953 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvm_id_ns_elbaf" "January 2023" "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_identify_ctrl.2 b/doc/man/nvme_nvm_identify_ctrl.2 index 541143f..48e433f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_nvm_identify_ctrl" 9 "nvme_nvm_identify_ctrl" "January 2023" "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 fbb2ea4..9ba17bf 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvmeset_pl_status" "January 2023" "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 92210da..8dae126 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nvmset_attr" "January 2023" "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 7f74421..9ebe442 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvmset_pl_events" "January 2023" "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 ec9994b..afe4302 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nvmset_predictable_lat_log" "January 2023" "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 370f86c..d9ae3e7 100644 --- a/doc/man/nvme_open.2 +++ b/doc/man/nvme_open.2 @@ -1,4 +1,4 @@ -.TH "nvme_open" 9 "nvme_open" "October 2022" "libnvme API manual" LINUX +.TH "nvme_open" 9 "nvme_open" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_open \- Open an nvme controller or namespace device .SH SYNOPSIS diff --git a/doc/man/nvme_passthru_cmd.2 b/doc/man/nvme_passthru_cmd.2 index 7528ccc..4c47164 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_passthru_cmd" "January 2023" "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 82de2f7..a4cc2f3 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_passthru_cmd64" "January 2023" "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 d99f00f..840d533 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_path_get_ana_state" 9 "nvme_path_get_ana_state" "January 2023" "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 d486718..759d8ba 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_path_get_ctrl" 9 "nvme_path_get_ctrl" "January 2023" "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 4c8f4b4..100556a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_path_get_name" 9 "nvme_path_get_name" "January 2023" "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 fbd9629..515c889 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_path_get_ns" 9 "nvme_path_get_ns" "January 2023" "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 4c7e01a..621d309 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_path_get_sysfs_dir" 9 "nvme_path_get_sysfs_dir" "January 2023" "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 1825634..29514c0 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_paths_filter" 9 "nvme_paths_filter" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_paths_filter \- Filter for paths .SH SYNOPSIS diff --git a/doc/man/nvme_persistent_event_entry.2 b/doc/man/nvme_persistent_event_entry.2 index 9a7e795..24a25fa 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_persistent_event_entry" "January 2023" "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 59d4866..f4dfa80 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_persistent_event_log" "January 2023" "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 2b96a9b..e7d8de7 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_persistent_event_types" "January 2023" "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 2373336..fd80ffd 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pevent_log_action" "January 2023" "API Manual" LINUX .SH NAME enum nvme_pevent_log_action \- Persistent Event Log - Action .SH SYNOPSIS diff --git a/doc/man/nvme_plm_config.2 b/doc/man/nvme_plm_config.2 index 7aad2e1..62893ed 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_plm_config" "January 2023" "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 6c35194..adf55bc 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_pmr_size" 9 "nvme_pmr_size" "January 2023" "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 807caac..364126a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_pmr_throughput" 9 "nvme_pmr_throughput" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_pmr_throughput \- Calculate throughput of persistent memory buffer .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 ff6d5eb..327cdb3 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_power_on_reset_info_list" "January 2023" "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 da6a296..8f9c593 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_primary_ctrl_cap" "January 2023" "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 aa92507..e02cde6 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_psd_flags" "January 2023" "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 2b95fc2..3e7c358 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_psd_power_scale" 9 "nvme_psd_power_scale" "January 2023" "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 4efe647..ed59fcd 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_psd_ps" "January 2023" "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 82f1566..bf6cead 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_psd_workload" "January 2023" "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_read.2 b/doc/man/nvme_read.2 index bfd8bd1..d7de4a9 100644 --- a/doc/man/nvme_read.2 +++ b/doc/man/nvme_read.2 @@ -1,4 +1,4 @@ -.TH "nvme_read" 9 "nvme_read" "October 2022" "libnvme API manual" LINUX +.TH "nvme_read" 9 "nvme_read" "January 2023" "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 a262cb3..363647f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_read_config" 9 "nvme_read_config" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_read_config \- Read NVMe JSON configuration file .SH SYNOPSIS diff --git a/doc/man/nvme_refresh_topology.2 b/doc/man/nvme_refresh_topology.2 index 6d71be0..dac1ee1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_refresh_topology" 9 "nvme_refresh_topology" "January 2023" "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 eb29c1b..17d03b7 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_register_offsets" "January 2023" "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 bb0054f..7d10215 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_registered_ctrl" "January 2023" "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 12825b4..370a57d 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_registered_ctrl_ext" "January 2023" "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 f4ab5ec..fd7c417 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_rescan_ctrl" 9 "nvme_rescan_ctrl" "January 2023" "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 4374637..25f9f86 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_resv_acquire" 9 "nvme_resv_acquire" "January 2023" "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 30ea56a..0b7d4f2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_cptpl" "January 2023" "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 de2b0c3..d650b77 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_resv_notification_log" "January 2023" "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 2f3d25b..a12923b 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_notify_rnlpt" "January 2023" "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 94351c0..ba115a2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_racqa" "January 2023" "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 1fdfc18..944c6a1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_resv_register" 9 "nvme_resv_register" "January 2023" "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 cb02096..0b38617 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_resv_release" 9 "nvme_resv_release" "January 2023" "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 2760676..30c8535 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_resv_report" 9 "nvme_resv_report" "January 2023" "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 08996f9..fe46dca 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_rrega" "January 2023" "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 7017723..e215461 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_rrela" "January 2023" "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 0e4d392..3468eae 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_rtype" "January 2023" "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 241452c..5a1beeb 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_resv_status" "January 2023" "API Manual" LINUX .SH NAME struct nvme_resv_status \- Reservation Status Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_compln_event.2 b/doc/man/nvme_sanitize_compln_event.2 index f3c4251..044d37e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_sanitize_compln_event" "January 2023" "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 c7fdbd7..2c14b07 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_sanitize_log_page" "January 2023" "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 823ee49..79ecb8b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_sanitize_nvm" 9 "nvme_sanitize_nvm" "January 2023" "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 668d08f..a571589 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_sanitize_sanact" "January 2023" "API Manual" LINUX .SH NAME enum nvme_sanitize_sanact \- Sanitize Action .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_sstat.2 b/doc/man/nvme_sanitize_sstat.2 index c2c0781..35fcbef 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_sanitize_sstat" "January 2023" "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 6813fee..213e0b4 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_sanitize_start_event" "January 2023" "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 e4bb31c..a3951d6 100644 --- a/doc/man/nvme_scan.2 +++ b/doc/man/nvme_scan.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan" 9 "nvme_scan" "October 2022" "libnvme API manual" LINUX +.TH "nvme_scan" 9 "nvme_scan" "January 2023" "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 4d324ed..07bef5d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_scan_ctrl" 9 "nvme_scan_ctrl" "January 2023" "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 81cd4c0..b473d72 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_scan_ctrl_namespace_paths" 9 "nvme_scan_ctrl_namespace_paths" "January 2023" "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 2426c05..fb4854d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_scan_ctrl_namespaces" 9 "nvme_scan_ctrl_namespaces" "January 2023" "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 25fd677..a306590 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_scan_ctrls" 9 "nvme_scan_ctrls" "January 2023" "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 2e2fb61..7fc7523 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_scan_namespace" 9 "nvme_scan_namespace" "January 2023" "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 8d7b208..1dc7ff7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_scan_subsystem_namespaces" 9 "nvme_scan_subsystem_namespaces" "January 2023" "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 00bc922..fe7d2cc 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_scan_subsystems" 9 "nvme_scan_subsystems" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_scan_subsystems \- Scan for subsystems .SH SYNOPSIS diff --git a/doc/man/nvme_scan_topology.2 b/doc/man/nvme_scan_topology.2 index c548138..7c6f4e1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_scan_topology" 9 "nvme_scan_topology" "January 2023" "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 40c1601..75616e5 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_secondary_ctrl" "January 2023" "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 42a0510..c2021f5 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_secondary_ctrl_list" "January 2023" "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 298238e..e2aac09 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_security_receive" 9 "nvme_security_receive" "January 2023" "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 fc2fe04..0ece82e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_security_send" 9 "nvme_security_send" "January 2023" "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 1fa2d79..72431c2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_self_test_log" "January 2023" "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_feature_event.2 b/doc/man/nvme_set_feature_event.2 index 54eb128..e29c550 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_set_feature_event" "January 2023" "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 818deaa..8e337e7 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features" 9 "nvme_set_features" "January 2023" "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 0f5179e..932b501 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_arbitration" 9 "nvme_set_features_arbitration" "January 2023" "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 6f3a899..fcf4d75 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_async_event" 9 "nvme_set_features_async_event" "January 2023" "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 8a8cc91..a88d7b8 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_auto_pst" 9 "nvme_set_features_auto_pst" "January 2023" "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 73c2e69..ec7e399 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_data" 9 "nvme_set_features_data" "January 2023" "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 5c4afcc..7047b7c 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_endurance_evt_cfg" 9 "nvme_set_features_endurance_evt_cfg" "January 2023" "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 3f1646d..c91df19 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_err_recovery" 9 "nvme_set_features_err_recovery" "January 2023" "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 422ba43..811da64 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_hctm" 9 "nvme_set_features_hctm" "January 2023" "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 af29adf..3869951 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_host_behavior" 9 "nvme_set_features_host_behavior" "January 2023" "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 1d269b3..971b72b 100644 --- a/doc/man/nvme_set_features_host_id.2 +++ b/doc/man/nvme_set_features_host_id.2 @@ -1,6 +1,6 @@ -.TH "nvme_set_features_host_id" 9 "nvme_set_features_host_id" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_host_id" 9 "nvme_set_features_host_id" "January 2023" "libnvme API manual" LINUX .SH NAME -nvme_set_features_host_id \- Set enable extended host identifers feature +nvme_set_features_host_id \- Set enable extended host identifiers feature .SH SYNOPSIS .B "int" nvme_set_features_host_id .BI "(int fd " "," diff --git a/doc/man/nvme_set_features_irq_coalesce.2 b/doc/man/nvme_set_features_irq_coalesce.2 index c55dbe6..3841853 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_irq_coalesce" 9 "nvme_set_features_irq_coalesce" "January 2023" "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 2116c43..a16f51c 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_irq_config" 9 "nvme_set_features_irq_config" "January 2023" "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 f366d15..ab637ca 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_lba_range" 9 "nvme_set_features_lba_range" "January 2023" "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 ca5238c..3391c6e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_lba_sts_interval" 9 "nvme_set_features_lba_sts_interval" "January 2023" "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 7837016..21eddf1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_nopsc" 9 "nvme_set_features_nopsc" "January 2023" "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 acc0062..dec33b5 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_plm_config" 9 "nvme_set_features_plm_config" "January 2023" "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 dc9e537..39a112e 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_plm_window" 9 "nvme_set_features_plm_window" "January 2023" "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 7a662b6..6a67b4b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_power_mgmt" 9 "nvme_set_features_power_mgmt" "January 2023" "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 b283bbd..0cb6559 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_resv_mask" 9 "nvme_set_features_resv_mask" "January 2023" "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_persist.2 b/doc/man/nvme_set_features_resv_persist.2 index 57e9a31..1561187 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_resv_persist" 9 "nvme_set_features_resv_persist" "January 2023" "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_rrl.2 b/doc/man/nvme_set_features_rrl.2 index 0b35db1..1b4f212 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_rrl" 9 "nvme_set_features_rrl" "January 2023" "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 5e874db..4b8c042 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_sanitize" 9 "nvme_set_features_sanitize" "January 2023" "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 1d82a39..b17c500 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_simple" 9 "nvme_set_features_simple" "January 2023" "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 0350bfd..642fb20 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_sw_progress" 9 "nvme_set_features_sw_progress" "January 2023" "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 b04ccbd..8df4638 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_temp_thresh" 9 "nvme_set_features_temp_thresh" "January 2023" "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 3c572cf..5ada471 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_timestamp" 9 "nvme_set_features_timestamp" "January 2023" "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 ca05ebc..88658cb 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_volatile_wc" 9 "nvme_set_features_volatile_wc" "January 2023" "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 bf7d80f..94a9208 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_write_atomic" 9 "nvme_set_features_write_atomic" "January 2023" "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 3106cd7..b8af3f8 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_features_write_protect" 9 "nvme_set_features_write_protect" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_set_features_write_protect \- Set write protect feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_property.2 b/doc/man/nvme_set_property.2 index e15b573..4ce4d1f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_set_property" 9 "nvme_set_property" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_set_property \- Set controller property .SH SYNOPSIS diff --git a/doc/man/nvme_smart_crit.2 b/doc/man/nvme_smart_crit.2 index 5dd636c..b9a1c55 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_smart_crit" "January 2023" "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 2f19104..83716ff 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_smart_egcw" "January 2023" "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 32acefd..fe4c65f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_smart_log" "January 2023" "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 0bff08d..625b0bf 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_st_code" "January 2023" "API Manual" LINUX .SH NAME enum nvme_st_code \- Self-test Code value .SH SYNOPSIS @@ -20,6 +20,10 @@ enum nvme_st_code { , .br .br +.BI " NVME_ST_CODE_ABORT" +, +.br +.br .BI " NVME_ST_CODE_SHIFT" }; @@ -32,6 +36,8 @@ Short device self-test operation. Extended device self-test operation. .IP "NVME_ST_CODE_VS" 12 Vendor specific. +.IP "NVME_ST_CODE_ABORT" 12 +Abort device self-test operation. .IP "NVME_ST_CODE_SHIFT" 12 Shift amount to get the code value from the \fIstruct nvme_st_result\fP.dsts field. diff --git a/doc/man/nvme_st_curr_op.2 b/doc/man/nvme_st_curr_op.2 index fc19830..11733ab 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_st_curr_op" "January 2023" "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 e4dca2b..bd52e2d 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_st_result" "January 2023" "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 8fc5b96..2267645 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_st_valid_diag_info" "January 2023" "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 84e6b7b..34a4406 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_status_code" 9 "nvme_status_code" "January 2023" "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 eacecb2..6ba2454 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_status_code_type" 9 "nvme_status_code_type" "January 2023" "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 55c3def..3203ee4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_status_equals" 9 "nvme_status_equals" "January 2023" "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 e3234fc..e5df43f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_status_field" "January 2023" "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 diff --git a/doc/man/nvme_status_get_type.2 b/doc/man/nvme_status_get_type.2 index addbea4..6e5bfaa 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_status_get_type" 9 "nvme_status_get_type" "January 2023" "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 fbef5fa..4037129 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_status_get_value" 9 "nvme_status_get_value" "January 2023" "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 df79a39..341cf43 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_status_result" "January 2023" "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 c047ed6..b244b98 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_status_to_errno" 9 "nvme_status_to_errno" "January 2023" "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 614224d..608f314 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_status_to_string" 9 "nvme_status_to_string" "January 2023" "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 60056ee..aa76128 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_status_type" "January 2023" "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 3313701..f0b44ef 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_streams_directive_params" "January 2023" "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 df9c96d..9eaa423 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_streams_directive_status" "January 2023" "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 f507a8c..ee20a75 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_submit_admin_passthru" 9 "nvme_submit_admin_passthru" "January 2023" "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 730eef3..48d6795 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_submit_admin_passthru64" 9 "nvme_submit_admin_passthru64" "January 2023" "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 bacbe3e..b8f70f1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_submit_io_passthru" 9 "nvme_submit_io_passthru" "January 2023" "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 3d77f57..00bfbe0 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_submit_io_passthru64" 9 "nvme_submit_io_passthru64" "January 2023" "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 7932258..d8bee40 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsys_filter" 9 "nvme_subsys_filter" "January 2023" "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 dcfe0c8..45e90ad 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_subsys_type" "January 2023" "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 d87bb62..84fbf6b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_first_ctrl" 9 "nvme_subsystem_first_ctrl" "January 2023" "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 ac30d57..b0a3193 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_first_ns" 9 "nvme_subsystem_first_ns" "January 2023" "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 7b695c9..2b28627 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ctrl" 9 "nvme_subsystem_for_each_ctrl" "January 2023" "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 4bfde84..33efe94 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ctrl_safe" 9 "nvme_subsystem_for_each_ctrl_safe" "January 2023" "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 f5d210f..111ad1f 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ns" 9 "nvme_subsystem_for_each_ns" "January 2023" "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 19e2480..8a82dd3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ns_safe" 9 "nvme_subsystem_for_each_ns_safe" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_subsystem_for_each_ns_safe \- Traverse namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_host.2 b/doc/man/nvme_subsystem_get_host.2 index 79e7e95..9cea0f2 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_host" 9 "nvme_subsystem_get_host" "January 2023" "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_name.2 b/doc/man/nvme_subsystem_get_name.2 index b0138e8..61a6e65 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_name" 9 "nvme_subsystem_get_name" "January 2023" "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 e3cd0ec..288f25d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_nqn" 9 "nvme_subsystem_get_nqn" "January 2023" "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 9e28b43..ee5e177 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_sysfs_dir" 9 "nvme_subsystem_get_sysfs_dir" "January 2023" "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 766819f..4ea6950 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_type" 9 "nvme_subsystem_get_type" "January 2023" "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 ad850ba..d7e23da 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_lookup_namespace" 9 "nvme_subsystem_lookup_namespace" "January 2023" "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 8a2d2dc..5d87496 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_next_ctrl" 9 "nvme_subsystem_next_ctrl" "January 2023" "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 9ac9d14..8c4c225 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_next_ns" 9 "nvme_subsystem_next_ns" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_subsystem_next_ns \- Next namespace iterator .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_reset.2 b/doc/man/nvme_subsystem_reset.2 index 5e5fb99..492289a 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_subsystem_reset" 9 "nvme_subsystem_reset" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_subsystem_reset \- Initiate a subsystem reset .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 2f904db..0d71f50 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_supported_cap_config_list_log" "January 2023" "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 1e083d5..541d1aa 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_supported_log_pages" "January 2023" "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 447f110..609723b 100644 --- a/doc/man/nvme_telemetry_da.2 +++ b/doc/man/nvme_telemetry_da.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_telemetry_da" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_telemetry_da" "January 2023" "API Manual" LINUX .SH NAME enum nvme_telemetry_da \- Telemetry Log Data Area .SH SYNOPSIS diff --git a/doc/man/nvme_telemetry_log.2 b/doc/man/nvme_telemetry_log.2 index 56e47ca..416b679 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_telemetry_log" "January 2023" "API Manual" LINUX .SH NAME struct nvme_telemetry_log \- Retrieve internal data specific to the manufacturer. .SH SYNOPSIS diff --git a/doc/man/nvme_thermal_exc_event.2 b/doc/man/nvme_thermal_exc_event.2 index 69b9b08..764d28a 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_thermal_exc_event" "January 2023" "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 648ab3c..f821366 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_time_stamp_change_event" "January 2023" "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 6811763..9a4d4e0 100644 --- a/doc/man/nvme_timestamp.2 +++ b/doc/man/nvme_timestamp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_timestamp" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_timestamp" "January 2023" "API Manual" LINUX .SH NAME struct nvme_timestamp \- Timestamp - Data Structure for Get Features .SH SYNOPSIS diff --git a/doc/man/nvme_unlink_ctrl.2 b/doc/man/nvme_unlink_ctrl.2 index 444fac2..452a49d 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_unlink_ctrl" 9 "nvme_unlink_ctrl" "January 2023" "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 fe7614a..26883c4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_update_config" 9 "nvme_update_config" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_update_config \- Update JSON configuration .SH SYNOPSIS diff --git a/doc/man/nvme_uring_cmd.2 b/doc/man/nvme_uring_cmd.2 index 76c70a2..90809f9 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_uring_cmd" "January 2023" "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 3bab758..8701338 100644 --- a/doc/man/nvme_verify.2 +++ b/doc/man/nvme_verify.2 @@ -1,4 +1,4 @@ -.TH "nvme_verify" 9 "nvme_verify" "October 2022" "libnvme API manual" LINUX +.TH "nvme_verify" 9 "nvme_verify" "January 2023" "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 dcf837f..02a88d5 100644 --- a/doc/man/nvme_version.2 +++ b/doc/man/nvme_version.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_version" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_version" "January 2023" "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 0fe6da0..c4000ae 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_virt_mgmt_act" "January 2023" "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 31c0996..f6c0f2c 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_virt_mgmt_rt" "January 2023" "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 ccce5d0..a30fce6 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_virtual_mgmt" 9 "nvme_virtual_mgmt" "January 2023" "libnvme API manual" LINUX .SH NAME nvme_virtual_mgmt \- Virtualization resource management .SH SYNOPSIS diff --git a/doc/man/nvme_write.2 b/doc/man/nvme_write.2 index 82b7f46..5f93252 100644 --- a/doc/man/nvme_write.2 +++ b/doc/man/nvme_write.2 @@ -1,4 +1,4 @@ -.TH "nvme_write" 9 "nvme_write" "October 2022" "libnvme API manual" LINUX +.TH "nvme_write" 9 "nvme_write" "January 2023" "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 2c4ff91..c421bd1 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_write_uncorrectable" 9 "nvme_write_uncorrectable" "January 2023" "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 0a8a31e..4bd47ca 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_write_zeros" 9 "nvme_write_zeros" "January 2023" "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 8c053aa..29d3cdd 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_zns_append" 9 "nvme_zns_append" "January 2023" "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 532d6c8..b334102 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_changed_zone_log" "January 2023" "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 61c6faf..5628f08 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_desc" "January 2023" "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 9435814..0291be2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_id_ctrl" "January 2023" "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 ca31bcf..1bfc005 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_id_ns" "January 2023" "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 b7aa908..0334264 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_zns_identify_ctrl" 9 "nvme_zns_identify_ctrl" "January 2023" "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 b021df3..7169397 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_zns_identify_ns" 9 "nvme_zns_identify_ns" "January 2023" "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 fe25273..0fdb2c5 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_lbafe" "January 2023" "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 bd0caf6..2f88f27 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_zns_mgmt_recv" 9 "nvme_zns_mgmt_recv" "January 2023" "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 017f44f..40d16a4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_zns_mgmt_send" 9 "nvme_zns_mgmt_send" "January 2023" "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 b6f249b..4063c74 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_recv_action" "January 2023" "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 1396181..c09de4a 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_report_options" "January 2023" "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 51f8cd2..777efbf 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" "October 2022" "libnvme API manual" LINUX +.TH "nvme_zns_report_zones" 9 "nvme_zns_report_zones" "January 2023" "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 073fa8b..afc38fd 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_send_action" "January 2023" "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 c2d387a..7beb8cb 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_za" "January 2023" "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 05fd4f0..f84a29e 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_zs" "January 2023" "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 3051a4f..ce74dfe 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_zt" "January 2023" "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 98cedb1..f056485 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zone_report" "January 2023" "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 4da7085..0bf0093 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_add_ctrl" 9 "nvmf_add_ctrl" "January 2023" "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 d55d386..6de153a 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_addr_family" "January 2023" "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 f0e7dad..e462754 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_adrfam_str" 9 "nvmf_adrfam_str" "January 2023" "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 b65cc08..b7a72aa 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_cms_str" 9 "nvmf_cms_str" "January 2023" "libnvme API manual" LINUX .SH NAME nvmf_cms_str \- Decode RDMA connection management service field .SH SYNOPSIS diff --git a/doc/man/nvmf_connect_data.2 b/doc/man/nvmf_connect_data.2 index c32c2a3..3eec165 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_connect_data" "January 2023" "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 5f72f36..f85bf73 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_connect_disc_entry" 9 "nvmf_connect_disc_entry" "January 2023" "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 bd4855c..0261fd3 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_default_config" 9 "nvmf_default_config" "January 2023" "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 28a56fa..b4ca819 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_dim_data" "January 2023" "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 1babab1..eb36fee 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_dim_entfmt" "January 2023" "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 fd2f760..dca2311 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_dim_etype" "January 2023" "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 605c81a..8ad2947 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_dim_tas" "January 2023" "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 ffa91a8..3eaa582 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_disc_eflags" "January 2023" "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 0faa8b8..e2a53f4 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_disc_log_entry" "January 2023" "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 912644b..c758fe1 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_discovery_log" "January 2023" "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 11b9e14..402bb2b 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_eflags_str" 9 "nvmf_eflags_str" "January 2023" "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 b7f9783..49a3932 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_exat_len" 9 "nvmf_exat_len" "January 2023" "libnvme API manual" LINUX .SH NAME nvmf_exat_len \- Return length rounded up by 4 .SH SYNOPSIS @@ -6,10 +6,10 @@ nvmf_exat_len \- Return length rounded up by 4 .BI "(size_t val_len " ");" .SH ARGUMENTS .IP "val_len" 12 -Value lenght +Value length .SH "DESCRIPTION" Return the size in bytes, rounded to a multiple of 4 (e.g., size of __u32), of the buffer needed to hold the exat value of size \fIval_len\fP. .SH "RETURN" -Lenght rounded up by 4 +Length rounded up by 4 diff --git a/doc/man/nvmf_exattype.2 b/doc/man/nvmf_exattype.2 index 881ec36..16d237b 100644 --- a/doc/man/nvmf_exattype.2 +++ b/doc/man/nvmf_exattype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_exattype" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_exattype" "January 2023" "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 d94b835..5d581c8 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_ext_attr" "January 2023" "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 c8c1de6..ccb682f 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_ext_die" "January 2023" "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 715fe10..fef0824 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_get_discovery_log" 9 "nvmf_get_discovery_log" "January 2023" "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 b07c2f9..d8e77d4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_get_discovery_wargs" 9 "nvmf_get_discovery_wargs" "January 2023" "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 65d6942..b129ba3 100644 --- a/doc/man/nvmf_hostid_from_file.2 +++ b/doc/man/nvmf_hostid_from_file.2 @@ -1,6 +1,6 @@ -.TH "nvmf_hostid_from_file" 9 "nvmf_hostid_from_file" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_hostid_from_file" 9 "nvmf_hostid_from_file" "January 2023" "libnvme API manual" LINUX .SH NAME -nvmf_hostid_from_file \- Reads the host identifier from the config default location in /etc/nvme/. +nvmf_hostid_from_file \- Reads the host identifier from the config default location in /usr/local/etc/nvme/. .SH SYNOPSIS .B "char *" nvmf_hostid_from_file .SH ARGUMENTS diff --git a/doc/man/nvmf_hostnqn_from_file.2 b/doc/man/nvmf_hostnqn_from_file.2 index eaa9701..4323221 100644 --- a/doc/man/nvmf_hostnqn_from_file.2 +++ b/doc/man/nvmf_hostnqn_from_file.2 @@ -1,6 +1,6 @@ -.TH "nvmf_hostnqn_from_file" 9 "nvmf_hostnqn_from_file" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_hostnqn_from_file" 9 "nvmf_hostnqn_from_file" "January 2023" "libnvme API manual" LINUX .SH NAME -nvmf_hostnqn_from_file \- Reads the host nvm qualified name from the config default location in /etc/nvme/ +nvmf_hostnqn_from_file \- Reads the host nvm qualified name from the config default location in /usr/local/etc/nvme/ .SH SYNOPSIS .B "char *" nvmf_hostnqn_from_file .SH ARGUMENTS diff --git a/doc/man/nvmf_hostnqn_generate.2 b/doc/man/nvmf_hostnqn_generate.2 index b7a77d6..9cb9457 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_hostnqn_generate" 9 "nvmf_hostnqn_generate" "January 2023" "libnvme API manual" LINUX .SH NAME nvmf_hostnqn_generate \- Generate a machine specific host nqn .SH SYNOPSIS diff --git a/doc/man/nvmf_log_discovery_lid_support.2 b/doc/man/nvmf_log_discovery_lid_support.2 index e5bd563..d9c6cc2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_log_discovery_lid_support" "January 2023" "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 ec2ede1..e9e91d0 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_log_discovery_lsp" "January 2023" "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 615d854..15d6289 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_prtype_str" 9 "nvmf_prtype_str" "January 2023" "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 b9dea4f..d873573 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_qptype_str" 9 "nvmf_qptype_str" "January 2023" "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 e619dca..6c31c01 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_rdma_cms" "January 2023" "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 db1bd06..3ebf9a2 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_rdma_prtype" "January 2023" "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 0640667..8be2b64 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_rdma_qptype" "January 2023" "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 12cab3f..43c77d4 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_register_ctrl" 9 "nvmf_register_ctrl" "January 2023" "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 bd9bc9b..d625a34 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_sectype_str" 9 "nvmf_sectype_str" "January 2023" "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 13ad38c..12ee728 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_subtype_str" 9 "nvmf_subtype_str" "January 2023" "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 ca97e55..65c69b1 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" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_tcp_sectype" "January 2023" "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 f881ecc..200c3ab 100644 --- a/doc/man/nvmf_treq.2 +++ b/doc/man/nvmf_treq.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_treq" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_treq" "January 2023" "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 8a2b954..ae02578 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_treq_str" 9 "nvmf_treq_str" "January 2023" "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 9db82f1..b0fe0c2 100644 --- a/doc/man/nvmf_trtype.2 +++ b/doc/man/nvmf_trtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_trtype" "October 2022" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_trtype" "January 2023" "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 53a04c4..4926c56 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_trtype_str" 9 "nvmf_trtype_str" "January 2023" "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 cc84868..a4bff1c 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" "October 2022" "libnvme API manual" LINUX +.TH "nvmf_update_config" 9 "nvmf_update_config" "January 2023" "libnvme API manual" LINUX .SH NAME nvmf_update_config \- Update fabrics configuration values .SH SYNOPSIS diff --git a/doc/mi.rst b/doc/mi.rst deleted file mode 100644 index 2806668..0000000 --- a/doc/mi.rst +++ /dev/null @@ -1,43 +0,0 @@ -NVMe Management Interface (NVMe-MI) support -=========================================== - -This libnvme project also includes support for the NVMe Management Interface -(NVMe-MI), currently over a Management Component Transport (MCTP) -protocol link. This MCTP link will typically use i2c/SMBus as the -hardware transport, enabling out-of-band management and control over NVMe -devices using a simple SMBus interface. - -The MI interface is compiled into a separate shared object, ``libnvme-mi.so``. - -Most of the MI API is transport-agnostic, except for the endpoint constructor -functions. Once an endpoint object (``nvme_mi_ep_t``) is created, the generic -functions can be used to manage it. - -MCTP Transport --------------- - -The MI API is generally transport-agnostic, but the only currently-supported -transport is MCTP, using the kernel ``AF_MCTP`` socket interface. - -MCTP endpoints are addressed by a (network-id, endpoint-id) pair. Endpoint -IDs (EIDs) are defined by the MCTP standard as an 8-bit value. Since the -address space is somewhat limited, the Linux `AF_MCTP` support allows for -separate MCTP "networks", which provide separate address spaces. These networks -each have a unique ``unsigned int`` as their ID. - -The default Network ID is 1; unless you have configured otherwise, MCTP -endpoints will appear on this network. - -If compiled with D-Bus support, ``libnvme-mi`` can query the system MCTP daemon -("``mctpd``") to find attached NVMe devices, via the ``nvme_mi_scan_mctp()`` -function. Calling this will establish a ``nvme_root_t`` object, populated -with the results of that scan. Use the ``nvme_mi_for_each_endpoint`` macro -to iterate through the scanned endpoints. - -Note that the MCTP daemon is provided separately, as part of the MCTP userspace -tools, at https://github.com/CodeConstruct/mctp . ``mctpd`` is responsible for -discovery and enumeration for MCTP endpoints on the system, and will query -each for its protocol capabilities during enumeration. Consequently, NVMe-MI -endpoints will need to report support for NVMe-MI-over-MCTP (protocol 0x4) in -their supported protocols list (ie., as returned by the MCTP Get Message Type -Support command) in order to be discovered. diff --git a/doc/mi.rst.in b/doc/mi.rst.in index 2806668..a75fd69 100644 --- a/doc/mi.rst.in +++ b/doc/mi.rst.in @@ -13,6 +13,17 @@ Most of the MI API is transport-agnostic, except for the endpoint constructor functions. Once an endpoint object (``nvme_mi_ep_t``) is created, the generic functions can be used to manage it. +When endpoints are created (through one of the transport-specific functions, +like ``nvme_mi_open_mctp()``), the endpoint hardware will be probed to +see if any device-specific workarounds ("quirks") are required. This is +implemented as an Identify Controller command, requesting a small amount of +data on controller ID 0. + +To suppress this probe, the ``LIBNVME_MI_PROBE_ENABLED`` environment var can be +set. Values of ``0``, ``false`` and ``disabled`` will disable the probe, and no +quirks will be applied. Other values, or an unset environment variable, will +enable the probe. + MCTP Transport -------------- diff --git a/doc/quickstart.rst b/doc/quickstart.rst deleted file mode 100644 index d356188..0000000 --- a/doc/quickstart.rst +++ /dev/null @@ -1,5 +0,0 @@ -========== -Quickstart -========== - -tbd
\ No newline at end of file diff --git a/doc/rst/fabrics.rst b/doc/rst/fabrics.rst index f0249f0..a7e0e60 100644 --- a/doc/rst/fabrics.rst +++ b/doc/rst/fabrics.rst @@ -424,7 +424,7 @@ identifier, or NULL if not successful. .. c:function:: char * nvmf_hostnqn_from_file () - Reads the host nvm qualified name from the config default location in /etc/nvme/ + Reads the host nvm qualified name from the config default location in /usr/local/etc/nvme/ **Parameters** @@ -436,7 +436,7 @@ is responsible to free the string. .. c:function:: char * nvmf_hostid_from_file () - Reads the host identifier from the config default location in /etc/nvme/. + Reads the host identifier from the config default location in /usr/local/etc/nvme/. **Parameters** diff --git a/doc/rst/ioctl.rst b/doc/rst/ioctl.rst index aaf6b55..d0a5173 100644 --- a/doc/rst/ioctl.rst +++ b/doc/rst/ioctl.rst @@ -1538,6 +1538,27 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. +.. c:function:: int nvme_get_log_page (int fd, __u32 xfer_len, struct nvme_get_log_args *args) + + Get log page data + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u32 xfer_len`` + Max log transfer size per request to split the total. + +``struct nvme_get_log_args *args`` + :c:type:`struct nvme_get_log_args <nvme_get_log_args>` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. + + .. c:function:: int nvme_get_log_supported_log_pages (int fd, bool rae, struct nvme_supported_log_pages *log) Retrieve nmve supported log pages @@ -1883,6 +1904,97 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. +.. c:function:: int nvme_get_log_fdp_configurations (int fd, __u16 egid, __u32 offset, __u32 len, void *log) + + Get list of Flexible Data Placement configurations + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u16 egid`` + Endurance group identifier + +``__u32 offset`` + Offset into log page + +``__u32 len`` + Length (in bytes) of provided user buffer to hold the log data + +``void *log`` + Log page data buffer + + +.. c:function:: int nvme_get_log_reclaim_unit_handle_usage (int fd, __u16 egid, __u32 offset, __u32 len, void *log) + + Get reclaim unit handle usage + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u16 egid`` + Endurance group identifier + +``__u32 offset`` + Offset into log page + +``__u32 len`` + Length (in bytes) of provided user buffer to hold the log data + +``void *log`` + Log page data buffer + + +.. c:function:: int nvme_get_log_fdp_stats (int fd, __u16 egid, __u32 offset, __u32 len, void *log) + + Get Flexible Data Placement statistics + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u16 egid`` + Endurance group identifier + +``__u32 offset`` + Offset into log page + +``__u32 len`` + Length (in bytes) of provided user buffer to hold the log data + +``void *log`` + Log page data buffer + + +.. c:function:: int nvme_get_log_fdp_events (int fd, __u16 egid, bool host_events, __u32 offset, __u32 len, void *log) + + Get Flexible Data Placement events + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u16 egid`` + Endurance group identifier + +``bool host_events`` + Whether to report host or controller events + +``__u32 offset`` + Offset into log page + +``__u32 len`` + Length (in bytes) of provided user buffer to hold the log data + +``void *log`` + Log page data buffer + + .. c:function:: int nvme_get_log_ana (int fd, enum nvme_log_ana_lsp lsp, bool rae, __u64 offset, __u32 len, void *log) Retrieve Asymmetric Namespace Access log page @@ -2911,7 +3023,7 @@ The nvme command status if a response was received (see .. c:function:: int nvme_set_features_host_id (int fd, bool exhid, bool save, __u8 *hostid) - Set enable extended host identifers feature + Set enable extended host identifiers feature **Parameters** @@ -4307,7 +4419,7 @@ controller and may include testing of the media associated with namespaces. The controller may return a response to this command immediately while running the self-test in the background. -Set the 'nsid' field to 0 to not include namepsaces in the test. Set to +Set the 'nsid' field to 0 to not include namespaces in the test. Set to 0xffffffff to test all namespaces. All other values tests a specific namespace, if present. @@ -4608,6 +4720,84 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. +.. c:function:: int nvme_io_mgmt_recv (struct nvme_io_mgmt_recv_args *args) + + I/O Management Receive command + +**Parameters** + +``struct nvme_io_mgmt_recv_args *args`` + :c:type:`struct nvme_io_mgmt_recv_args <nvme_io_mgmt_recv_args>` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. + + +.. c:function:: int nvme_fdp_reclaim_unit_handle_status (int fd, __u32 nsid, __u32 data_len, void *data) + + Get reclaim unit handle status + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u32 nsid`` + Namespace identifier + +``__u32 data_len`` + Length of response buffer + +``void *data`` + Response buffer + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. + + +.. c:function:: int nvme_io_mgmt_send (struct nvme_io_mgmt_send_args *args) + + I/O Management Send command + +**Parameters** + +``struct nvme_io_mgmt_send_args *args`` + :c:type:`struct nvme_io_mgmt_send_args <nvme_io_mgmt_send_args>` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. + + +.. c:function:: int nvme_fdp_reclaim_unit_handle_update (int fd, __u32 nsid, unsigned int npids, __u16 *pids) + + Update a list of reclaim unit handles + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u32 nsid`` + Namespace identifier + +``unsigned int npids`` + Number of placement identifiers + +``__u16 *pids`` + List of placement identifiers + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. + + .. c:function:: int nvme_zns_mgmt_send (struct nvme_zns_mgmt_send_args *args) ZNS management send command diff --git a/doc/rst/linux.rst b/doc/rst/linux.rst index 83dbca9..4f159f1 100644 --- a/doc/rst/linux.rst +++ b/doc/rst/linux.rst @@ -143,27 +143,6 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. -.. c:function:: int nvme_get_log_page (int fd, __u32 xfer_len, struct nvme_get_log_args *args) - - Get log page data - -**Parameters** - -``int fd`` - File descriptor of nvme device - -``__u32 xfer_len`` - Max log transfer size per request to split the total. - -``struct nvme_get_log_args *args`` - :c:type:`struct nvme_get_log_args <nvme_get_log_args>` argument structure - -**Return** - -The nvme command status if a response was received (see -:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. - - .. c:function:: int nvme_get_ana_log_len (int fd, size_t *analen) Retrieve size of the current ANA log diff --git a/doc/rst/meson.build b/doc/rst/meson.build index 43874f0..ea79115 100644 --- a/doc/rst/meson.build +++ b/doc/rst/meson.build @@ -29,8 +29,6 @@ if want_docs != 'false' endforeach endif else - if want_docs == 'all' or want_docs == 'rst' - install_subdir('rst', install_dir: rstdir) - endif + # no prebuild docs endif endif diff --git a/doc/rst/mi.rst b/doc/rst/mi.rst index 3eaa20c..7e82918 100644 --- a/doc/rst/mi.rst +++ b/doc/rst/mi.rst @@ -635,6 +635,25 @@ new root object, or NULL on failure. root to free +.. c:function:: void nvme_mi_set_probe_enabled (nvme_root_t root, bool enabled) + + enable/disable the probe for new endpoints + +**Parameters** + +``nvme_root_t root`` + :c:type:`nvme_root_t` object + +``bool enabled`` + whether to probe new endpoints + +**Description** + +Controls whether newly-created endpoints are probed for quirks on creation. +Defaults to enabled, which results in some initial messaging with the +endpoint to determine model-specific details. + + .. c:type:: nvme_mi_ep_t @@ -1427,6 +1446,85 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.. +.. c:function:: int nvme_mi_admin_admin_passthru (nvme_mi_ctrl_t ctrl, __u8 opcode, __u8 flags, __u16 rsvd, __u32 nsid, __u32 cdw2, __u32 cdw3, __u32 cdw10, __u32 cdw11, __u32 cdw12, __u32 cdw13, __u32 cdw14, __u32 cdw15, __u32 data_len, void *data, __u32 metadata_len, void *metadata, __u32 timeout_ms, __u32 *result) + + Submit an nvme admin passthrough command + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to send command to + +``__u8 opcode`` + The nvme admin command to send + +``__u8 flags`` + NVMe command flags (not used) + +``__u16 rsvd`` + Reserved for future use + +``__u32 nsid`` + Namespace identifier + +``__u32 cdw2`` + Command dword 2 + +``__u32 cdw3`` + Command dword 3 + +``__u32 cdw10`` + Command dword 10 + +``__u32 cdw11`` + Command dword 11 + +``__u32 cdw12`` + Command dword 12 + +``__u32 cdw13`` + Command dword 13 + +``__u32 cdw14`` + Command dword 14 + +``__u32 cdw15`` + Command dword 15 + +``__u32 data_len`` + Length of the data transferred in this command in bytes + +``void *data`` + Pointer to user address of the data buffer + +``__u32 metadata_len`` + Length of metadata transferred in this command(not used) + +``void *metadata`` + Pointer to user address of the metadata buffer(not used) + +``__u32 timeout_ms`` + How long to wait for the command to complete + +``__u32 *result`` + Optional field to return the result from the CQE dword 0 + +**Description** + +Send a customized NVMe Admin command request message and get the corresponding +response message. + +This interface supports no data, host to controller and controller to +host but it doesn't support bidirectional data transfer. +Also this interface only supports data transfer size range [0, 4096] (bytes) +so the & data_len parameter must be less than 4097. + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise. + + .. c:function:: int nvme_mi_admin_identify_partial (nvme_mi_ctrl_t ctrl, struct nvme_identify_args *args, off_t offset, size_t size) Perform an Admin identify command, and retrieve partial response data. diff --git a/doc/rst/tree.rst b/doc/rst/tree.rst index d6f270d..9a8bb3f 100644 --- a/doc/rst/tree.rst +++ b/doc/rst/tree.rst @@ -133,6 +133,44 @@ DH-HMAC-CHAP host key or NULL if not set DH-HMAC-CHAP Key to set or NULL to clear existing key +.. c:function:: void nvme_host_set_pdc_enabled (nvme_host_t h, bool enabled) + + Set Persistent Discovery Controller flag + +**Parameters** + +``nvme_host_t h`` + Host for which the falg should be set + +``bool enabled`` + The bool to set the enabled flag + +**Description** + +When nvme_host_set_pdc_enabled() is not used to set the PDC flag, +nvme_host_is_pdc_enabled() will return the default value which was +passed into the function and not the undefined flag value. + + +.. c:function:: bool nvme_host_is_pdc_enabled (nvme_host_t h, bool fallback) + + Is Persistenct Discovery Controller enabled + +**Parameters** + +``nvme_host_t h`` + Host which to check if PDC is enabled + +``bool fallback`` + The fallback default value of the flag when + **nvme_host_set_pdc_enabled** has not be used + to set the flag. + +**Return** + +true if PDC is enabled for **h**, else false + + .. c:function:: nvme_host_t nvme_default_host (nvme_root_t r) Initializes the default host @@ -1644,6 +1682,38 @@ Returns the value of the 'discovery_ctrl' flag which specifies whether Value of the 'discover_ctrl' flag +.. c:function:: void nvme_ctrl_set_unique_discovery_ctrl (nvme_ctrl_t c, bool unique) + + Set the 'unique_discovery_ctrl' flag + +**Parameters** + +``nvme_ctrl_t c`` + Controller to be modified + +``bool unique`` + value of the unique_disc_ctrl flag + +**Description** + +Sets the 'unique_discovery_ctrl' flag in **c** to specify wheter +**c** is a unique discovery controller + + +.. c:function:: bool nvme_ctrl_is_unique_discovery_ctrl (nvme_ctrl_t c) + + Check the 'unique_discovery_ctrl' flag + +**Parameters** + +``nvme_ctrl_t c`` + Controller to be checked + +**Return** + +Value of the 'unique_discovery_ctrl' flag + + .. c:function:: int nvme_ctrl_identify (nvme_ctrl_t c, struct nvme_id_ctrl *id) Issues an 'identify controller' command diff --git a/doc/rst/types.rst b/doc/rst/types.rst index 9140821..0435c87 100644 --- a/doc/rst/types.rst +++ b/doc/rst/types.rst @@ -1155,6 +1155,9 @@ power scale value ``NVME_CTRL_CTRATT_ELBAS`` Extended LBA Formats supported +``NVME_CTRL_CTRATT_FDPS`` + Flexible Data Placement supported + @@ -3944,6 +3947,9 @@ Supported Log Pages (Log Identifier 00h) ``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 :c:type:`struct nvme_st_result <nvme_st_result>`.dsts field. @@ -4775,6 +4781,35 @@ bytes, in size. This log captures the controller’s internal state. +.. c:struct:: nvme_timestamp + + Timestamp - Data Structure for Get Features + +**Definition** + +:: + + struct nvme_timestamp { + __u8 timestamp[6]; + __u8 attr; + __u8 rsvd; + }; + +**Members** + +``timestamp`` + Timestamp value based on origin and synch field + +``attr`` + Attribute + +``rsvd`` + Reserved + + + + + .. c:struct:: nvme_time_stamp_change_event Timestamp Change Event @@ -6175,6 +6210,598 @@ bytes, in size. This log captures the controller’s internal state. +.. c:enum:: nvme_fdp_ruh_type + + Reclaim Unit Handle Type + +**Constants** + +``NVME_FDP_RUHT_INITIALLY_ISOLATED`` + Initially Isolated + +``NVME_FDP_RUHT_PERSISTENTLY_ISOLATED`` + Persistently Isolated + + + + +.. c:struct:: nvme_fdp_ruh_desc + + Reclaim Unit Handle Descriptor + +**Definition** + +:: + + struct nvme_fdp_ruh_desc { + __u8 ruht; + __u8 rsvd1[3]; + }; + +**Members** + +``ruht`` + Reclaim Unit Handle Type + +``rsvd1`` + Reserved + + + + + +.. c:enum:: nvme_fdp_config_fdpa + + FDP Attributes + +**Constants** + +``NVME_FDP_CONFIG_FDPA_RGIF_SHIFT`` + Reclaim Group Identifier Format Shift + +``NVME_FDP_CONFIG_FDPA_RGIF_MASK`` + Reclaim Group Identifier Format Mask + +``NVME_FDP_CONFIG_FDPA_FDPVWC_SHIFT`` + FDP Volatile Write Cache Shift + +``NVME_FDP_CONFIG_FDPA_FDPVWC_MASK`` + FDP Volatile Write Cache Mask + +``NVME_FDP_CONFIG_FDPA_VALID_SHIFT`` + FDP Configuration Valid Shift + +``NVME_FDP_CONFIG_FDPA_VALID_MASK`` + FDP Configuration Valid Mask + + + + +.. c:struct:: nvme_fdp_config_desc + + FDP Configuration Descriptor + +**Definition** + +:: + + struct nvme_fdp_config_desc { + __u16 size; + __u8 fdpa; + __u8 vss; + __u32 nrg; + __u16 nruh; + __u16 maxpids; + __u32 nnss; + __u64 runs; + __u32 erutl; + __u8 rsvd28[36]; + struct nvme_fdp_ruh_desc ruhs[]; + }; + +**Members** + +``size`` + Descriptor size + +``fdpa`` + FDP Attributes (:c:type:`enum nvme_fdp_config_fdpa <nvme_fdp_config_fdpa>`) + +``vss`` + Vendor Specific Size + +``nrg`` + Number of Reclaim Groups + +``nruh`` + Number of Reclaim Unit Handles + +``maxpids`` + Max Placement Identifiers + +``nnss`` + Number of Namespaces Supported + +``runs`` + Reclaim Unit Nominal Size + +``erutl`` + Estimated Reclaim Unit Time Limit + +``rsvd28`` + Reserved + +``ruhs`` + Reclaim Unit Handle descriptors (:c:type:`struct nvme_fdp_ruh_desc <nvme_fdp_ruh_desc>`) + + + + + +.. c:struct:: nvme_fdp_config_log + + FDP Configurations Log Page + +**Definition** + +:: + + struct nvme_fdp_config_log { + __u16 n; + __u8 version; + __u8 rsvd3; + __u32 size; + __u8 rsvd8[8]; + struct nvme_fdp_config_desc configs[]; + }; + +**Members** + +``n`` + Number of FDP Configurations + +``version`` + Log page version + +``rsvd3`` + Reserved + +``size`` + Log page size in bytes + +``rsvd8`` + Reserved + +``configs`` + FDP Configuration descriptors (:c:type:`struct nvme_fdp_config_desc <nvme_fdp_config_desc>`) + + + + + +.. c:enum:: nvme_fdp_ruha + + Reclaim Unit Handle Attributes + +**Constants** + +``NVME_FDP_RUHA_HOST_SHIFT`` + Host Specified Reclaim Unit Handle Shift + +``NVME_FDP_RUHA_HOST_MASK`` + Host Specified Reclaim Unit Handle Mask + +``NVME_FDP_RUHA_CTRL_SHIFT`` + Controller Specified Reclaim Unit Handle Shift + +``NVME_FDP_RUHA_CTRL_MASK`` + Controller Specified Reclaim Unit Handle Mask + + + + +.. c:struct:: nvme_fdp_ruhu_desc + + Reclaim Unit Handle Usage Descriptor + +**Definition** + +:: + + struct nvme_fdp_ruhu_desc { + __u8 ruha; + __u8 rsvd1[7]; + }; + +**Members** + +``ruha`` + Reclaim Unit Handle Attributes (:c:type:`enum nvme_fdp_ruha <nvme_fdp_ruha>`) + +``rsvd1`` + Reserved + + + + + +.. c:struct:: nvme_fdp_ruhu_log + + Reclaim Unit Handle Usage Log Page + +**Definition** + +:: + + struct nvme_fdp_ruhu_log { + __u16 nruh; + __u8 rsvd2[6]; + struct nvme_fdp_ruhu_desc ruhus[]; + }; + +**Members** + +``nruh`` + Number of Reclaim Unit Handles + +``rsvd2`` + Reserved + +``ruhus`` + Reclaim Unit Handle Usage descriptors + + + + + +.. c:struct:: nvme_fdp_stats_log + + FDP Statistics Log Page + +**Definition** + +:: + + struct nvme_fdp_stats_log { + __u8 hbmw[16]; + __u8 mbmw[16]; + __u8 mbe[16]; + __u8 rsvd48[16]; + }; + +**Members** + +``hbmw`` + Host Bytes with Metadata Written + +``mbmw`` + Media Bytes with Metadata Written + +``mbe`` + Media Bytes Erased + +``rsvd48`` + Reserved + + + + + +.. c:enum:: nvme_fdp_event_type + + FDP Event Types + +**Constants** + +``NVME_FDP_EVENT_RUNFW`` + Reclaim Unit Not Fully Written + +``NVME_FDP_EVENT_RUTLE`` + Reclaim Unit Time Limit Exceeded + +``NVME_FDP_EVENT_RESET`` + Controller Level Reset Modified Reclaim Unit Handles + +``NVME_FDP_EVENT_PID`` + Invalid Placement Identifier + +``NVME_FDP_EVENT_REALLOC`` + Media Reallocated + +``NVME_FDP_EVENT_MODIFY`` + Implicitly Modified Reclaim Unit Handle + + + + +.. c:enum:: nvme_fdp_event_realloc_flags + + Media Reallocated Event Type Specific Flags + +**Constants** + +``NVME_FDP_EVENT_REALLOC_F_LBAV`` + LBA Valid + + + + +.. c:struct:: nvme_fdp_event_realloc + + Media Reallocated Event Type Specific Information + +**Definition** + +:: + + struct nvme_fdp_event_realloc { + __u8 flags; + __u8 rsvd1; + __u16 nlbam; + __u64 lba; + __u8 rsvd12[4]; + }; + +**Members** + +``flags`` + Event Type Specific flags (:c:type:`enum nvme_fdp_event_realloc_flags <nvme_fdp_event_realloc_flags>`) + +``rsvd1`` + Reserved + +``nlbam`` + Number of LBAs Moved + +``lba`` + Logical Block Address + +``rsvd12`` + Reserved + + + + + +.. c:enum:: nvme_fdp_event_flags + + FDP Event Flags + +**Constants** + +``NVME_FDP_EVENT_F_PIV`` + Placement Identifier Valid + +``NVME_FDP_EVENT_F_NSIDV`` + Namespace Identifier Valid + +``NVME_FDP_EVENT_F_LV`` + Location Valid + + + + +.. c:struct:: nvme_fdp_event + + FDP Event + +**Definition** + +:: + + struct nvme_fdp_event { + __u8 type; + __u8 flags; + __u16 pid; + struct nvme_timestamp ts; + __u32 nsid; + __u8 type_specific[16]; + __u16 rgid; + __u8 ruhid; + __u8 rsvd35[5]; + __u8 vs[24]; + }; + +**Members** + +``type`` + Event Type (:c:type:`enum nvme_fdp_event_type <nvme_fdp_event_type>`) + +``flags`` + Event Flags (:c:type:`enum nvme_fdp_event_flags <nvme_fdp_event_flags>`) + +``pid`` + Placement Identifier + +``ts`` + Timestamp + +``nsid`` + Namespace Identifier + +``type_specific`` + Event Type Specific Information + +``rgid`` + Reclaim Group Identifier + +``ruhid`` + Reclaim Unit Handle Identifier + +``rsvd35`` + Reserved + +``vs`` + Vendor Specific + + + + + +.. c:struct:: nvme_fdp_events_log + + FDP Events Log Page + +**Definition** + +:: + + struct nvme_fdp_events_log { + __u32 n; + __u8 rsvd4[60]; + struct nvme_fdp_event events[63]; + }; + +**Members** + +``n`` + Number of FDP Events + +``rsvd4`` + Reserved + +``events`` + FDP Events (:c:type:`struct nvme_fdp_event <nvme_fdp_event>`) + + + + + +.. c:struct:: nvme_feat_fdp_events_cdw11 + + FDP Events Feature Command Dword 11 + +**Definition** + +:: + + struct nvme_feat_fdp_events_cdw11 { + __u16 phndl; + __u8 noet; + __u8 rsvd24; + }; + +**Members** + +``phndl`` + Placement Handle + +``noet`` + Number of FDP Event Types + +``rsvd24`` + Reserved + + + + + +.. c:enum:: nvme_fdp_supported_event_attributes + + Supported FDP Event Attributes + +**Constants** + +``NVME_FDP_SUPP_EVENT_ENABLED_SHIFT`` + FDP Event Enable Shift + +``NVME_FDP_SUPP_EVENT_ENABLED_MASK`` + FDP Event Enable Mask + + + + +.. c:struct:: nvme_fdp_supported_event_desc + + Supported FDP Event Descriptor + +**Definition** + +:: + + struct nvme_fdp_supported_event_desc { + __u8 evt; + __u8 evta; + }; + +**Members** + +``evt`` + FDP Event Type + +``evta`` + FDP Event Type Attributes (:c:type:`enum nvme_fdp_supported_event_attributes <nvme_fdp_supported_event_attributes>`) + + + + + +.. c:struct:: nvme_fdp_ruh_status_desc + + Reclaim Unit Handle Status Descriptor + +**Definition** + +:: + + struct nvme_fdp_ruh_status_desc { + __u16 pid; + __u16 ruhid; + __u32 earutr; + __u64 ruamw; + __u8 rsvd16[16]; + }; + +**Members** + +``pid`` + Placement Identifier + +``ruhid`` + Reclaim Unit Handle Identifier + +``earutr`` + Estimated Active Reclaim Unit Time Remaining + +``ruamw`` + Reclaim Unit Available Media Writes + +``rsvd16`` + Reserved + + + + + +.. c:struct:: nvme_fdp_ruh_status + + Reclaim Unit Handle Status + +**Definition** + +:: + + struct nvme_fdp_ruh_status { + __u8 rsvd0[14]; + __u16 nruhsd; + struct nvme_fdp_ruh_status_desc ruhss[]; + }; + +**Members** + +``rsvd0`` + Reserved + +``nruhsd`` + Number of Reclaim Unit Handle Status Descriptors + +``ruhss`` + Reclaim Unit Handle Status descriptors + + + + + .. c:struct:: nvme_lba_status_desc LBA Status Descriptor Entry @@ -6446,35 +7073,6 @@ bytes, in size. This log captures the controller’s internal state. -.. c:struct:: nvme_timestamp - - Timestamp - Data Structure for Get Features - -**Definition** - -:: - - struct nvme_timestamp { - __u8 timestamp[6]; - __u8 attr; - __u8 rsvd; - }; - -**Members** - -``timestamp`` - Timestamp value based on origin and synch field - -``attr`` - Attribute - -``rsvd`` - Reserved - - - - - .. c:struct:: nvme_lba_range_type_entry LBA Range Type - Data Structure Entry @@ -9884,6 +10482,18 @@ true if **status** is of the specified type and value ``NVME_LOG_LID_BOOT_PARTITION`` Boot Partition +``NVME_LOG_LID_FDP_CONFIGS`` + FDP Configurations + +``NVME_LOG_LID_FDP_RUH_USAGE`` + Reclaim Unit Handle Usage + +``NVME_LOG_LID_FDP_STATS`` + FDP Statistics + +``NVME_LOG_LID_FDP_EVENTS`` + FDP Events + ``NVME_LOG_LID_DISCOVER`` Discovery @@ -9983,6 +10593,12 @@ true if **status** is of the specified type and value ``NVME_FEAT_FID_SPINUP_CONTROL`` Spinup Control +``NVME_FEAT_FID_FDP`` + Flexible Data Placement + +``NVME_FEAT_FID_FDP_EVENTS`` + FDP Events + ``NVME_FEAT_FID_ENH_CTRL_METADATA`` Enhanced Controller Metadata @@ -10212,6 +10828,18 @@ true if **status** is of the specified type and value ``NVME_FEAT_IOCSP_IOCSCI_MASK`` +``NVME_FEAT_FDP_ENABLED_SHIFT`` + +``NVME_FEAT_FDP_ENABLED_MASK`` + +``NVME_FEAT_FDP_INDEX_SHIFT`` + +``NVME_FEAT_FDP_INDEX_MASK`` + +``NVME_FEAT_FDP_EVENTS_ENABLE_SHIFT`` + +``NVME_FEAT_FDP_EVENTS_ENABLE_MASK`` + @@ -10776,12 +11404,18 @@ true if **status** is of the specified type and value ``nvme_cmd_resv_acquire`` Reservation Acquire +``nvme_cmd_io_mgmt_recv`` + I/O Management Receive + ``nvme_cmd_resv_release`` Reservation Release ``nvme_cmd_copy`` Copy +``nvme_cmd_io_mgmt_send`` + I/O Management Send + ``nvme_zns_cmd_mgmt_send`` Zone Management Send @@ -11079,3 +11713,27 @@ true if **status** is of the specified type and value List the zones in the ZSO:Offline state + + +.. c:enum:: nvme_io_mgmt_recv_mo + + I/O Management Receive - Management Operation + +**Constants** + +``NVME_IO_MGMT_RECV_RUH_STATUS`` + Reclaim Unit Handle Status + + + + +.. c:enum:: nvme_io_mgmt_send_mo + + I/O Management Send - Management Operation + +**Constants** + +``NVME_IO_MGMT_SEND_RUH_UPDATE`` + Reclaim Unit Handle Update + + diff --git a/doc/rst/util.rst b/doc/rst/util.rst index 87ea945..4b85492 100644 --- a/doc/rst/util.rst +++ b/doc/rst/util.rst @@ -64,6 +64,9 @@ libnvme utility functions ``ENVME_CONNECT_OPNOTSUPP`` not supported +``ENVME_CONNECT_CONNREFUSED`` + connection refused + .. c:function:: __u8 nvme_status_to_errno (int status, bool fabrics) @@ -433,7 +436,7 @@ usage: int x = round_up(13, sizeof(__u32)); // 13 -> 16 **Parameters** ``size_t val_len`` - Value lenght + Value length **Description** @@ -443,7 +446,7 @@ __u32), of the buffer needed to hold the exat value of size **Return** -Lenght rounded up by 4 +Length rounded up by 4 .. c:function:: __u16 nvmf_exat_size (size_t val_len) diff --git a/examples/meson.build b/examples/meson.build index 31d05d7..3139311 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -40,11 +40,11 @@ executable( include_directories: [incdir, internal_incdir] ) -if libsystemd_dep.found() +if libdbus_dep.found() executable( 'mi-conf', ['mi-conf.c'], - dependencies: [libnvme_mi_dep, libsystemd_dep], + dependencies: [libnvme_mi_dep, libdbus_dep], include_directories: [incdir, internal_incdir] ) endif diff --git a/examples/mi-conf.c b/examples/mi-conf.c index 90d590e..4fdd405 100644 --- a/examples/mi-conf.c +++ b/examples/mi-conf.c @@ -23,7 +23,7 @@ #include <ccan/array_size/array_size.h> #include <ccan/endian/endian.h> -#include <systemd/sd-bus.h> +#include <dbus/dbus.h> #define MCTP_DBUS_NAME "xyz.openbmc_project.MCTP" #define MCTP_DBUS_PATH "/xyz/openbmc_project/mctp" @@ -79,10 +79,11 @@ int find_port(nvme_mi_ep_t ep, uint8_t *portp, uint16_t *mtup) return found ? 0 : 1; } -int set_local_mtu(sd_bus *bus, unsigned int net, uint8_t eid, uint32_t mtu) +int set_local_mtu(DBusConnection *bus, unsigned int net, uint8_t eid, + uint32_t mtu) { - sd_bus_error err = SD_BUS_ERROR_NULL; - sd_bus_message *resp; + DBusMessage *msg, *resp; + DBusError berr; char *ep_path; int rc; @@ -99,26 +100,50 @@ int set_local_mtu(sd_bus *bus, unsigned int net, uint8_t eid, uint32_t mtu) */ mtu += 4; - rc = sd_bus_call_method(bus, MCTP_DBUS_NAME, ep_path, - MCTP_DBUS_EP_IFACE, "SetMTU", &err, &resp, - "u", mtu); - if (rc < 0) { - warnx("Failed to set local MTU: %s", strerror(-rc)); - return -1; + rc = -1; + dbus_error_init(&berr); + msg = dbus_message_new_method_call(MCTP_DBUS_NAME, ep_path, + MCTP_DBUS_EP_IFACE, "SetMTU"); + if (!msg) { + warnx("Can't create D-Bus message"); + goto out; } - return 0; + rc = dbus_message_append_args(msg, + DBUS_TYPE_UINT32, &mtu, + DBUS_TYPE_INVALID); + if (!rc) { + warnx("Can't construct D-Bus message arguments"); + goto out_free_msg; + } + + resp = dbus_connection_send_with_reply_and_block(bus, msg, + 2000, &berr); + if (!resp) { + warnx("Failed to set local MTU: %s (%s)", berr.message, + berr.name); + } else { + dbus_message_unref(resp); + rc = 0; + } + +out_free_msg: + dbus_message_unref(msg); +out: + dbus_error_free(&berr); + return rc; } int main(int argc, char **argv) { uint16_t cur_mtu, mtu; + DBusConnection *bus; const char *devstr; uint8_t eid, port; nvme_root_t root; unsigned int net; nvme_mi_ep_t ep; - sd_bus *bus; + DBusError berr; int rc; if (argc != 2) { @@ -141,10 +166,13 @@ int main(int argc, char **argv) goto out_free_root; } - rc = sd_bus_default_system(&bus); - if (rc < 0) { + dbus_error_init(&berr); + bus = dbus_bus_get(DBUS_BUS_SYSTEM, &berr); + if (!bus) { + warnx("Failed opening D-Bus: %s (%s)\n", + berr.message, berr.name); + rc = -1; goto out_close_ep; - warnx("Failed opening D-Bus: %s\n", strerror(-rc)); } rc = find_port(ep, &port, &mtu); @@ -185,8 +213,9 @@ int main(int argc, char **argv) } out_close_bus: - sd_bus_close(bus); + dbus_connection_unref(bus); out_close_ep: + dbus_error_free(&berr); nvme_mi_close(ep); out_free_root: nvme_mi_free_root(root); diff --git a/examples/mi-mctp.c b/examples/mi-mctp.c index 8d660af..c9a3852 100644 --- a/examples/mi-mctp.c +++ b/examples/mi-mctp.c @@ -347,14 +347,14 @@ int do_admin_raw(nvme_mi_ep_t ep, int argc, char **argv) } tmp = atoi(argv[1]); - if (tmp < 0 || tmp > 0xffff) { + if (tmp > 0xffff) { fprintf(stderr, "invalid controller ID\n"); return -1; } ctrl_id = tmp & 0xffff; tmp = atoi(argv[2]); - if (tmp < 0 || tmp > 0xff) { + if (tmp > 0xff) { fprintf(stderr, "invalid opcode\n"); return -1; } @@ -461,7 +461,7 @@ int do_security_info(nvme_mi_ep_t ep, int argc, char **argv) } tmp = atoi(argv[1]); - if (tmp < 0 || tmp > 0xffff) { + if (tmp > 0xffff) { fprintf(stderr, "invalid controller ID\n"); return -1; } diff --git a/libnvme.pc.in b/libnvme.pc.in deleted file mode 100644 index a1867aa..0000000 --- a/libnvme.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@prefix@ -exec_prefix=${prefix} -libdir=@libdir@ -includedir=@includedir@ - -Name: @NAME@ -Version: @VERSION@ -Description: Manage "libnvme" subsystem devices (Non-volatile Memory Express) -URL: http://github.com/linux-nvme/libnvme/ - -Libs: -L${libdir} -lnvme -Cflags: -I${includedir} diff --git a/libnvme/nvme.i b/libnvme/nvme.i index 6f20e2c..0c6b73c 100644 --- a/libnvme/nvme.i +++ b/libnvme/nvme.i @@ -585,7 +585,11 @@ struct nvme_ns { connect_err = 1; return; } + + Py_BEGIN_ALLOW_THREADS /* Release Python GIL */ ret = nvmf_add_ctrl(h, $self, cfg); + Py_END_ALLOW_THREADS /* Reacquire Python GIL */ + if (ret < 0) { connect_err = 2; return; @@ -601,7 +605,9 @@ struct nvme_ns { nvme_rescan_ctrl($self); } void disconnect() { + Py_BEGIN_ALLOW_THREADS /* Release Python GIL */ nvme_disconnect_ctrl($self); + Py_END_ALLOW_THREADS /* Reacquire Python GIL */ } %feature("autodoc", "@return: True if controller supports explicit registration. False otherwise.") is_registration_supported; @@ -614,7 +620,10 @@ struct nvme_ns { __u32 result; int status; + Py_BEGIN_ALLOW_THREADS /* Release Python GIL */ status = nvmf_register_ctrl($self, NVMF_DIM_TAS_REGISTER, &result); + Py_END_ALLOW_THREADS /* Reacquire Python GIL */ + if (status != NVME_SC_SUCCESS) { /* On error, return an error message */ if (status < 0) @@ -629,6 +638,7 @@ struct nvme_ns { %newobject discover; struct nvmf_discovery_log *discover(int lsp = 0, int max_retries = 6) { + struct nvmf_discovery_log *logp; struct nvme_get_discovery_args args = { .c = $self, .args_size = sizeof(args), @@ -637,7 +647,11 @@ struct nvme_ns { .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, .lsp = lsp, }; - struct nvmf_discovery_log *logp = nvmf_get_discovery_wargs(&args); + + Py_BEGIN_ALLOW_THREADS /* Release Python GIL */ + logp = nvmf_get_discovery_wargs(&args); + Py_END_ALLOW_THREADS /* Reacquire Python GIL */ + if (logp == NULL) discover_err = 1; return logp; @@ -649,7 +663,10 @@ struct nvme_ns { PyObject *obj = NULL; int ret = 0; + Py_BEGIN_ALLOW_THREADS /* Release Python GIL */ ret = nvme_get_log_supported_log_pages(nvme_ctrl_get_fd($self), rae, &log); + Py_END_ALLOW_THREADS /* Reacquire Python GIL */ + if (ret < 0) { Py_RETURN_NONE; } diff --git a/meson.build b/meson.build index 5c2e73a..d389cbf 100644 --- a/meson.build +++ b/meson.build @@ -7,14 +7,14 @@ # project( 'libnvme', ['c'], - meson_version: '>= 0.48.0', - version: '1.2', + meson_version: '>= 0.50.0', + version: '1.3', license: 'LGPL-2.1-or-later', default_options: [ 'c_std=gnu99', 'warning_level=1', - 'buildtype=release', - 'prefix=/usr', + 'buildtype=debug', + 'prefix=/usr/local', ] ) @@ -33,8 +33,6 @@ mandir = join_paths(prefixdir, get_option('mandir')) bindir = join_paths(prefixdir, get_option('bindir')) sysconfdir = join_paths(prefixdir, get_option('sysconfdir')) -pkgconfiglibdir = get_option('pkgconfiglibdir') == '' ? join_paths(libdir, 'pkgconfig') : get_option('pkgconfiglibdir') - ################################################################################ conf = configuration_data() @@ -91,9 +89,25 @@ if openssl_dep.found() description: 'OpenSSL/LibreSSL API version @0@'.format(api_version)) endif -# Check for libsystemd availability. Optional, only required for MCTP dbus scan -libsystemd_dep = dependency('libsystemd', version: '>219', required: false) -conf.set('CONFIG_LIBSYSTEMD', libsystemd_dep.found(), description: 'Is libsystemd(>219) available?') +if get_option('libdbus').disabled() + libdbus_dep = dependency('', required: false) +else + # Check for libdus availability. Optional, only required for MCTP dbus scan + libdbus_dep = dependency( + 'dbus-1', + required: true, + fallback: ['dbus', 'libdbus_dep'], + default_options: [ + 'default_library=static', + 'embedded_tests=false', + 'message_bus=false', + 'modular_tests=disabled', + 'tools=false', + ], + ) +endif + +conf.set('CONFIG_DBUS', libdbus_dep.found(), description: 'Enable dbus support?') # local (cross-compilable) implementations of ccan configure steps conf.set10( @@ -182,24 +196,20 @@ conf.set10( description: 'Is linux/mctp.h include-able?' ) -if meson.version().version_compare('>= 0.48') - has_fallthrough = cc.has_function_attribute('fallthrough') -else - has_fallthrough = cc.compiles( - '''int main(int argc, char **argv) { - switch(argc) { - case 0: - __attribute__((__fallthrough__)); - case 1: - return 1; - } - return 0; - } - ''', - name: 'has fallthrough') -endif +conf.set( + 'HAVE_LIBNSS', + cc.links( + '''int main(int argc, char **argv) { + struct addrinfo hints, *result; + return getaddrinfo(argv[1], argv[2], &hints, &result); + } + ''', + name: 'libnss', + ), + description: 'Is network address and service translation available' +) -if has_fallthrough +if cc.has_function_attribute('fallthrough') conf.set('fallthrough', '__attribute__((__fallthrough__))') else conf.set('fallthrough', 'do {} while (0) /* fallthrough */') diff --git a/meson_options.txt b/meson_options.txt index 0df190d..2c093ca 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,7 +1,6 @@ # -*- mode: meson -*- # SPDX-License-Identifier: LGPL-2.1-or-later option('version-tag', type : 'string', description : 'override the git version string') -option('pkgconfiglibdir', type : 'string', value : '', description : 'directory for standard pkg-config files') option('htmldir', type : 'string', value : '', description : 'directory for HTML documentation') option('rstdir', type : 'string', value : '', description : 'directory for ReST documentation') @@ -10,3 +9,4 @@ option('docs-build', type : 'boolean', value : false, description : 'build docu option('python', type : 'combo', choices : ['auto', 'true', 'false'], description : 'Generate libnvme python bindings') option('openssl', type : 'feature', value: 'auto', description : 'OpenSSL support') +option('libdbus', type : 'feature', value: 'auto', description : 'libdbus support') diff --git a/src/libnvme-mi.map b/src/libnvme-mi.map index 53af942..16b7ad4 100644 --- a/src/libnvme-mi.map +++ b/src/libnvme-mi.map @@ -1,3 +1,11 @@ +LIBNVME_MI_1_3 { + global: + nvme_mi_admin_admin_passthru; + nvme_mi_ep_get_timeout; + nvme_mi_ep_set_timeout; + nvme_mi_set_probe_enabled; +}; + LIBNVME_MI_1_2 { global: nvme_mi_admin_get_features; diff --git a/src/libnvme.map b/src/libnvme.map index be9bca3..85ff6f3 100644 --- a/src/libnvme.map +++ b/src/libnvme.map @@ -1,5 +1,17 @@ # SPDX-License-Identifier: LGPL-2.1-or-later +LIBNVME_1_3 { + global: + nvme_ctrl_is_unique_discovery_ctrl; + nvme_ctrl_set_unique_discovery_ctrl; + nvme_fdp_reclaim_unit_handle_status; + nvme_fdp_reclaim_unit_handle_update; + nvme_io_mgmt_recv; + nvme_io_mgmt_send; + nvme_host_is_pdc_enabled; + nvme_host_set_pdc_enabled; +}; + LIBNVME_1_2 { global: nvme_ctrl_get_dhchap_host_key; diff --git a/src/meson.build b/src/meson.build index 9e49a07..1186e81 100644 --- a/src/meson.build +++ b/src/meson.build @@ -33,7 +33,7 @@ deps = [ ] mi_deps = [ - libsystemd_dep, + libdbus_dep, ] source_dir = meson.current_source_dir() diff --git a/src/nvme/api-types.h b/src/nvme/api-types.h index 0de41a6..dac50ae 100644 --- a/src/nvme/api-types.h +++ b/src/nvme/api-types.h @@ -793,6 +793,50 @@ struct nvme_resv_report_args { }; /** + * struct nvme_io_mgmt_recv_args - Arguments for the NVMe I/O Management Receive command + * @data: Userspace address of the data + * @args_size: Size of &struct nvme_io_mgmt_recv_args + * @fd: File descriptor of nvme device + * @nsid: Namespace identifier + * @data_len: Length of @data + * @timeout: Timeout in ms + * @mos Management Operation Specific + * @mo Management Operation + */ +struct nvme_io_mgmt_recv_args { + void *data; + int args_size; + int fd; + __u32 nsid; + __u32 data_len; + __u32 timeout; + __u16 mos; + __u8 mo; +}; + +/** + * struct nvme_io_mgmt_send_args - Arguments for the NVMe I/O Management Send command + * @data: Userspace address of the data + * @args_size: Size of &struct nvme_io_mgmt_send_args + * @fd: File descriptor of nvme device + * @nsid: Namespace identifier + * @data_len: Length of @data + * @timeout: Timeout in ms + * @mos Management Operation Specific + * @mo Management Operation + */ +struct nvme_io_mgmt_send_args { + void *data; + int args_size; + int fd; + __u32 nsid; + __u32 data_len; + __u32 timeout; + __u16 mos; + __u8 mo; +}; + +/** * struct nvme_zns_mgmt_send_args - Arguments for the NVMe ZNS Management Send command * @slba: Starting logical block address * @result: The command completion result from CQE dword0 diff --git a/src/nvme/fabrics.c b/src/nvme/fabrics.c index a501f79..7134dba 100644 --- a/src/nvme/fabrics.c +++ b/src/nvme/fabrics.c @@ -47,13 +47,19 @@ const char *nvmf_dev = "/dev/nvme-fabrics"; /** * strchomp() - Strip trailing white space - * @s: String to strip - * @l: Maximum length of string + * @str: String to strip + * @max: Maximum length of string */ -static void strchomp(char *s, int l) +static void strchomp(char *str, int max) { - while (l && (s[l] == '\0' || s[l] == ' ')) - s[l--] = '\0'; + int i; + + for (i = max - 1; i >= 0; i--) { + if (str[i] != '\0' && str[i] != ' ') + return; + else + str[i] = '\0'; + } } const char *arg_str(const char * const *strings, @@ -114,7 +120,7 @@ const char *nvmf_treq_str(__u8 treq) } static const char * const eflags_strings[] = { - [NVMF_DISC_EFLAGS_NONE] = "not specified", + [NVMF_DISC_EFLAGS_NONE] = "none", [NVMF_DISC_EFLAGS_EPCSD] = "explicit discovery connections", [NVMF_DISC_EFLAGS_DUPRETINFO] = "duplicate discovery information", [NVMF_DISC_EFLAGS_EPCSD | @@ -459,6 +465,7 @@ static int build_options(nvme_host_t h, nvme_ctrl_t c, char **argstr) } if (!strcmp(nvme_ctrl_get_subsysnqn(c), NVME_DISC_SUBSYS_NAME)) { nvme_ctrl_set_discovery_ctrl(c, true); + nvme_ctrl_set_unique_discovery_ctrl(c, false); discovery_nqn = true; } if (nvme_ctrl_is_discovery_ctrl(c)) @@ -561,6 +568,9 @@ static int __nvmf_add_ctrl(nvme_root_t r, const char *argstr) case EOPNOTSUPP: ret = -ENVME_CONNECT_OPNOTSUPP; break; + case ECONNREFUSED : + ret = -ENVME_CONNECT_CONNREFUSED; + break; default: ret = -ENVME_CONNECT_WRITE; break; @@ -658,7 +668,8 @@ int nvmf_add_ctrl(nvme_host_t h, nvme_ctrl_t c, return -1; } - nvme_msg(h->r, LOG_INFO, "nvme%d: ctrl connected\n", ret); + nvme_msg(h->r, LOG_INFO, "nvme%d: %s connected\n", ret, + nvme_ctrl_get_subsysnqn(c)); return nvme_init_ctrl(h, c, ret); } @@ -678,8 +689,6 @@ nvme_ctrl_t nvmf_connect_disc_entry(nvme_host_t h, switch (e->adrfam) { case NVMF_ADDR_FAMILY_IP4: case NVMF_ADDR_FAMILY_IP6: - strchomp(e->traddr, NVMF_TRADDR_SIZE - 1); - strchomp(e->trsvcid, NVMF_TRSVCID_SIZE - 1); traddr = e->traddr; trsvcid = e->trsvcid; break; @@ -694,7 +703,6 @@ nvme_ctrl_t nvmf_connect_disc_entry(nvme_host_t h, case NVMF_TRTYPE_FC: switch (e->adrfam) { case NVMF_ADDR_FAMILY_FC: - strchomp(e->traddr, NVMF_TRADDR_SIZE - 1); traddr = e->traddr; break; default: @@ -706,7 +714,6 @@ nvme_ctrl_t nvmf_connect_disc_entry(nvme_host_t h, } break; case NVMF_TRTYPE_LOOP: - strchomp(e->traddr, NVMF_TRADDR_SIZE - 1); traddr = strlen(e->traddr) ? e->traddr : NULL; break; default: @@ -734,11 +741,15 @@ nvme_ctrl_t nvmf_connect_disc_entry(nvme_host_t h, switch (e->subtype) { case NVME_NQN_CURR: nvme_ctrl_set_discovered(c, true); + nvme_ctrl_set_unique_discovery_ctrl(c, + strcmp(e->subnqn, NVME_DISC_SUBSYS_NAME)); break; case NVME_NQN_DISC: if (discover) *discover = true; nvme_ctrl_set_discovery_ctrl(c, true); + nvme_ctrl_set_unique_discovery_ctrl(c, + strcmp(e->subnqn, NVME_DISC_SUBSYS_NAME)); break; default: nvme_msg(h->r, LOG_ERR, "unsupported subtype %d\n", @@ -746,6 +757,7 @@ nvme_ctrl_t nvmf_connect_disc_entry(nvme_host_t h, fallthrough; case NVME_NQN_NVME: nvme_ctrl_set_discovery_ctrl(c, false); + nvme_ctrl_set_unique_discovery_ctrl(c, false); break; } @@ -874,9 +886,37 @@ out_free_log: return NULL; } +static void sanitize_discovery_log_entry(struct nvmf_disc_log_entry *e) +{ + switch (e->trtype) { + case NVMF_TRTYPE_RDMA: + case NVMF_TRTYPE_TCP: + switch (e->adrfam) { + case NVMF_ADDR_FAMILY_IP4: + case NVMF_ADDR_FAMILY_IP6: + strchomp(e->traddr, NVMF_TRADDR_SIZE - 1); + strchomp(e->trsvcid, NVMF_TRSVCID_SIZE - 1); + break; + } + break; + case NVMF_TRTYPE_FC: + switch (e->adrfam) { + case NVMF_ADDR_FAMILY_FC: + strchomp(e->traddr, NVMF_TRADDR_SIZE - 1); + break; + } + break; + case NVMF_TRTYPE_LOOP: + strchomp(e->traddr, NVMF_TRADDR_SIZE - 1); + break; + } +} + int nvmf_get_discovery_log(nvme_ctrl_t c, struct nvmf_discovery_log **logp, int max_retries) { + struct nvmf_discovery_log *log; + struct nvme_get_log_args args = { .args_size = sizeof(args), .fd = nvme_ctrl_get_fd(c), @@ -893,12 +933,22 @@ int nvmf_get_discovery_log(nvme_ctrl_t c, struct nvmf_discovery_log **logp, .rae = false, .ot = false, }; - *logp = nvme_discovery_log(c, &args, max_retries); - return logp ? 0 : -1; + + log = nvme_discovery_log(c, &args, max_retries); + if (!log) + return -1; + + for (int i = 0; i < le64_to_cpu(log->numrec); i++) + sanitize_discovery_log_entry(&log->entries[i]); + + *logp = log; + return 0; } struct nvmf_discovery_log *nvmf_get_discovery_wargs(struct nvme_get_discovery_args *args) { + struct nvmf_discovery_log *log; + struct nvme_get_log_args _args = { .args_size = sizeof(_args), .fd = nvme_ctrl_get_fd(args->c), @@ -916,7 +966,14 @@ struct nvmf_discovery_log *nvmf_get_discovery_wargs(struct nvme_get_discovery_ar .ot = false, }; - return nvme_discovery_log(args->c, &_args, args->max_retries); + log = nvme_discovery_log(args->c, &_args, args->max_retries); + if (!log) + return NULL; + + for (int i = 0; i < le64_to_cpu(log->numrec); i++) + sanitize_discovery_log_entry(&log->entries[i]); + + return log; } #define PATH_UUID_IBM "/proc/device-tree/ibm,partition-uuid" @@ -946,7 +1003,7 @@ static int uuid_from_dmi_entries(char *system_uuid) int f; DIR *d; struct dirent *de; - char buf[512]; + char buf[512] = {0}; system_uuid[0] = '\0'; d = opendir(PATH_DMI_ENTRIES); @@ -964,7 +1021,7 @@ static int uuid_from_dmi_entries(char *system_uuid) continue; len = read(f, buf, 512); close(f); - if (len < 0) + if (len <= 0) continue; if (sscanf(buf, "%d", &type) != 1) continue; @@ -976,7 +1033,7 @@ static int uuid_from_dmi_entries(char *system_uuid) continue; len = read(f, buf, 512); close(f); - if (len < 0) + if (len <= 0) continue; /* Sigh. https://en.wikipedia.org/wiki/Overengineering */ /* DMTF SMBIOS 3.0 Section 7.2.1 System UUID */ @@ -1127,7 +1184,7 @@ static __u32 nvmf_get_tel(const char *hostsymname) __u16 len; /* Host ID is mandatory */ - tel += nvmf_exat_size(NVME_UUID_LEN_STRING); + tel += nvmf_exat_size(NVME_UUID_LEN); /* Symbolic name is optional */ len = hostsymname ? strlen(hostsymname) : 0; diff --git a/src/nvme/ioctl.c b/src/nvme/ioctl.c index 3333993..b2d92ef 100644 --- a/src/nvme/ioctl.c +++ b/src/nvme/ioctl.c @@ -430,6 +430,46 @@ int nvme_get_log(struct nvme_get_log_args *args) return nvme_submit_admin_passthru(args->fd, &cmd, args->result); } +int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args) +{ + __u64 offset = 0, xfer, data_len = args->len; + __u64 start = args->lpo; + bool retain = true; + void *ptr = args->log; + int ret; + + /* + * 4k is the smallest possible transfer unit, so restricting to 4k + * avoids having to check the MDTS value of the controller. + */ + do { + xfer = data_len - offset; + if (xfer > xfer_len) + xfer = xfer_len; + + /* + * Always retain regardless of the RAE parameter until the very + * last portion of this log page so the data remains latched + * during the fetch sequence. + */ + if (offset + xfer == data_len) + retain = args->rae; + + args->lpo = start + offset; + args->len = xfer; + args->log = ptr; + args->rae = retain; + ret = nvme_get_log(args); + if (ret) + return ret; + + offset += xfer; + ptr += xfer; + } while (offset < data_len); + + return 0; +} + int nvme_set_features(struct nvme_set_features_args *args) { __u32 cdw10 = NVME_SET(args->fid, FEATURES_CDW10_FID) | @@ -1857,6 +1897,50 @@ int nvme_resv_report(struct nvme_resv_report_args *args) return nvme_submit_io_passthru(args->fd, &cmd, args->result); } +int nvme_io_mgmt_recv(struct nvme_io_mgmt_recv_args *args) +{ + __u32 cdw10 = (args->mo & 0xf) | (args->mos & 0xff << 16); + __u32 cdw11 = (args->data_len >> 2) - 1; + + struct nvme_passthru_cmd cmd = { + .opcode = nvme_cmd_io_mgmt_recv, + .nsid = args->nsid, + .cdw10 = cdw10, + .cdw11 = cdw11, + .addr = (__u64)(uintptr_t)args->data, + .data_len = args->data_len, + .timeout_ms = args->timeout, + }; + + if (args->args_size < sizeof(*args)) { + errno = EINVAL; + return -1; + } + + return nvme_submit_io_passthru(args->fd, &cmd, NULL); +} + +int nvme_io_mgmt_send(struct nvme_io_mgmt_send_args *args) +{ + __u32 cdw10 = (args->mo & 0xf) | ((args->mos & 0xff) << 16); + + struct nvme_passthru_cmd cmd = { + .opcode = nvme_cmd_io_mgmt_send, + .nsid = args->nsid, + .cdw10 = cdw10, + .addr = (__u64)(uintptr_t)args->data, + .data_len = args->data_len, + .timeout_ms = args->timeout, + }; + + if (args->args_size < sizeof(*args)) { + errno = EINVAL; + return -1; + } + + return nvme_submit_io_passthru(args->fd, &cmd, NULL); +} + int nvme_zns_mgmt_send(struct nvme_zns_mgmt_send_args *args) { __u32 cdw10 = args->slba & 0xffffffff; diff --git a/src/nvme/ioctl.h b/src/nvme/ioctl.h index af95851..32e722e 100644 --- a/src/nvme/ioctl.h +++ b/src/nvme/ioctl.h @@ -34,6 +34,12 @@ /* '0' is interpreted by the kernel to mean 'apply the default timeout' */ #define NVME_DEFAULT_IOCTL_TIMEOUT 0 +/* + * 4k is the smallest possible transfer unit, so restricting to 4k + * avoids having to check the MDTS value of the controller. + */ +#define NVME_LOG_PAGE_PDU_SIZE 4096 + /** * struct nvme_passthru_cmd - nvme passthrough command structure * @opcode: Operation code, see &enum nvme_io_opcodes and &enum nvme_admin_opcodes @@ -1226,6 +1232,17 @@ static inline int nvme_zns_identify_ctrl(int fd, struct nvme_zns_id_ctrl *id) */ int nvme_get_log(struct nvme_get_log_args *args); +/** + * nvme_get_log_page() - Get log page data + * @fd: File descriptor of nvme device + * @xfer_len: Max log transfer size per request to split the total. + * @args: &struct nvme_get_log_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_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args); + static inline int nvme_get_nsid_log(int fd, bool rae, enum nvme_cmd_get_log_lid lid, __u32 nsid, __u32 len, void *log) @@ -1248,7 +1265,7 @@ static inline int nvme_get_nsid_log(int fd, bool rae, .ot = false, }; - return nvme_get_log(&args); + 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, @@ -1391,7 +1408,7 @@ static inline int nvme_get_log_cmd_effects(int fd, enum nvme_csi csi, .rae = false, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1441,7 +1458,7 @@ static inline int nvme_get_log_create_telemetry_host(int fd, .rae = false, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1477,7 +1494,7 @@ static inline int nvme_get_log_telemetry_host(int fd, __u64 offset, .rae = false, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1514,7 +1531,7 @@ static inline int nvme_get_log_telemetry_ctrl(int fd, bool rae, .rae = rae, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1553,7 +1570,7 @@ static inline int nvme_get_log_endurance_group(int fd, __u16 endgid, .rae = false, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1585,7 +1602,7 @@ static inline int nvme_get_log_predictable_lat_nvmset(int fd, __u16 nvmsetid, .rae = false, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1619,6 +1636,126 @@ static inline int nvme_get_log_predictable_lat_event(int fd, bool rae, .rae = rae, .ot = false, }; + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_get_log_fdp_configurations() - Get list of Flexible Data Placement configurations + * @fd: File descriptor of nvme device + * @egid: Endurance group identifier + * @offset: Offset into log page + * @len: Length (in bytes) of provided user buffer to hold the log data + * @log: Log page data buffer + */ +static inline int nvme_get_log_fdp_configurations(int fd, __u16 egid, + __u32 offset, __u32 len, void *log) +{ + struct nvme_get_log_args args = { + .lpo = offset, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_FDP_CONFIGS, + .len = len, + .nsid = NVME_NSID_NONE, + .csi = NVME_CSI_NVM, + .lsi = egid, + .lsp = NVME_LOG_LSP_NONE, + .uuidx = NVME_UUID_NONE, + }; + + return nvme_get_log(&args); +} + +/** + * nvme_get_log_reclaim_unit_handle_usage() - Get reclaim unit handle usage + * @fd: File descriptor of nvme device + * @egid: Endurance group identifier + * @offset: Offset into log page + * @len: Length (in bytes) of provided user buffer to hold the log data + * @log: Log page data buffer + */ +static inline int nvme_get_log_reclaim_unit_handle_usage(int fd, __u16 egid, + __u32 offset, __u32 len, void *log) +{ + struct nvme_get_log_args args = { + .lpo = offset, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_FDP_RUH_USAGE, + .len = len, + .nsid = NVME_NSID_NONE, + .csi = NVME_CSI_NVM, + .lsi = egid, + .lsp = NVME_LOG_LSP_NONE, + .uuidx = NVME_UUID_NONE, + }; + + return nvme_get_log(&args); +} + +/** + * nvme_get_log_fdp_stats() - Get Flexible Data Placement statistics + * @fd: File descriptor of nvme device + * @egid: Endurance group identifier + * @offset: Offset into log page + * @len: Length (in bytes) of provided user buffer to hold the log data + * @log: Log page data buffer + */ +static inline int nvme_get_log_fdp_stats(int fd, __u16 egid, __u32 offset, __u32 len, void *log) +{ + struct nvme_get_log_args args = { + .lpo = offset, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_FDP_STATS, + .len = len, + .nsid = NVME_NSID_NONE, + .csi = NVME_CSI_NVM, + .lsi = egid, + .lsp = NVME_LOG_LSP_NONE, + .uuidx = NVME_UUID_NONE, + }; + + return nvme_get_log(&args); +} + +/** + * nvme_get_log_fdp_events() - Get Flexible Data Placement events + * @fd: File descriptor of nvme device + * @egid: Endurance group identifier + * @host_events: Whether to report host or controller events + * @offset: Offset into log page + * @len: Length (in bytes) of provided user buffer to hold the log data + * @log: Log page data buffer + */ +static inline int nvme_get_log_fdp_events(int fd, __u16 egid, bool host_events, __u32 offset, + __u32 len, void *log) +{ + struct nvme_get_log_args args = { + .lpo = offset, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_FDP_EVENTS, + .len = len, + .nsid = NVME_NSID_NONE, + .csi = NVME_CSI_NVM, + .lsi = egid, + .lsp = (__u8)(host_events ? 0x1 : 0x0), + .uuidx = NVME_UUID_NONE, + }; + return nvme_get_log(&args); } @@ -1660,7 +1797,7 @@ static inline int nvme_get_log_ana(int fd, enum nvme_log_ana_lsp lsp, bool rae, .rae = false, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1713,7 +1850,7 @@ static inline int nvme_get_log_lba_status(int fd, bool rae, .rae = rae, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1747,7 +1884,7 @@ static inline int nvme_get_log_endurance_grp_evt(int fd, bool rae, .rae = rae, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1814,7 +1951,7 @@ static inline int nvme_get_log_boot_partition(int fd, bool rae, .rae = rae, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1851,7 +1988,7 @@ static inline int nvme_get_log_discovery(int fd, bool rae, .rae = rae, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1883,7 +2020,7 @@ static inline int nvme_get_log_media_unit_stat(int fd, __u16 domid, .rae = false, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1915,7 +2052,7 @@ static inline int nvme_get_log_support_cap_config_list(int fd, __u16 domid, .rae = false, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -1985,7 +2122,7 @@ static inline int nvme_get_log_zns_changed_zones(int fd, __u32 nsid, bool rae, .rae = rae, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -2019,7 +2156,7 @@ static inline int nvme_get_log_persistent_event(int fd, .rae = false, .ot = false, }; - return nvme_get_log(&args); + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } /** @@ -2392,7 +2529,7 @@ int nvme_set_features_sw_progress(int fd, __u8 pbslc, bool save, __u32 *result); /** - * nvme_set_features_host_id() - Set enable extended host identifers feature + * nvme_set_features_host_id() - Set enable extended host identifiers feature * @fd: File descriptor of nvme device * @exhid: Enable Extended Host Identifier * @save: Save value across power states @@ -3372,7 +3509,7 @@ int nvme_sanitize_nvm(struct nvme_sanitize_nvm_args *args); * The controller may return a response to this command immediately while * running the self-test in the background. * - * Set the 'nsid' field to 0 to not include namepsaces in the test. Set to + * Set the 'nsid' field to 0 to not include namespaces in the test. Set to * 0xffffffff to test all namespaces. All other values tests a specific * namespace, if present. * @@ -3588,6 +3725,78 @@ int nvme_resv_release(struct nvme_resv_release_args *args); int nvme_resv_report(struct nvme_resv_report_args *args); /** + * nvme_io_mgmt_recv() - I/O Management Receive command + * @args: &struct nvme_io_mgmt_recv_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_io_mgmt_recv(struct nvme_io_mgmt_recv_args *args); + +/** + * nvme_fdp_reclaim_unit_handle_status() - Get reclaim unit handle status + * @fd: File descriptor of nvme device + * @nsid: Namespace identifier + * @data_len: Length of response buffer + * @data: Response buffer + * + * 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_fdp_reclaim_unit_handle_status(int fd, __u32 nsid, + __u32 data_len, void *data) +{ + struct nvme_io_mgmt_recv_args args = { + .data = data, + .args_size = sizeof(args), + .fd = fd, + .nsid = nsid, + .data_len = data_len, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .mos = 0, + .mo = NVME_IO_MGMT_RECV_RUH_STATUS, + }; + + return nvme_io_mgmt_recv(&args); +} + +/** + * nvme_io_mgmt_send() - I/O Management Send command + * @args: &struct nvme_io_mgmt_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_io_mgmt_send(struct nvme_io_mgmt_send_args *args); + +/** + * nvme_fdp_reclaim_unit_handle_update() - Update a list of reclaim unit handles + * @fd: File descriptor of nvme device + * @nsid: Namespace identifier + * @npids: Number of placement identifiers + * @pids: List of placement identifiers + * + * 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_fdp_reclaim_unit_handle_update(int fd, __u32 nsid, + unsigned int npids, __u16 *pids) +{ + struct nvme_io_mgmt_send_args args = { + .data = (void *)pids, + .args_size = sizeof(args), + .fd = fd, + .nsid = nsid, + .data_len = (__u32)(npids * sizeof(__u16)), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .mos = (__u16)(npids - 1), + .mo = NVME_IO_MGMT_SEND_RUH_UPDATE, + }; + + return nvme_io_mgmt_send(&args); +} + +/** * nvme_zns_mgmt_send() - ZNS management send command * @args: &struct nvme_zns_mgmt_send_args argument structure * diff --git a/src/nvme/json.c b/src/nvme/json.c index f0c2ab4..072b622 100644 --- a/src/nvme/json.c +++ b/src/nvme/json.c @@ -148,6 +148,9 @@ static void json_parse_host(nvme_root_t r, struct json_object *host_obj) attr_obj = json_object_object_get(host_obj, "hostsymname"); if (attr_obj) nvme_host_set_hostsymname(h, json_object_get_string(attr_obj)); + attr_obj = json_object_object_get(host_obj, "persistent_discovery_ctrl"); + if (attr_obj) + nvme_host_set_pdc_enabled(h, json_object_get_boolean(attr_obj)); subsys_array = json_object_object_get(host_obj, "subsystems"); if (!subsys_array) return; @@ -354,6 +357,9 @@ int json_update_config(nvme_root_t r, const char *config_file) if (hostsymname) json_object_object_add(host_obj, "hostsymname", json_object_new_string(hostsymname)); + if (h->pdc_enabled_valid) + json_object_object_add(host_obj, "persistent_discovery_ctrl", + json_object_new_boolean(h->pdc_enabled)); subsys_array = json_object_new_array(); nvme_for_each_subsystem(h, s) { json_update_subsys(subsys_array, s); @@ -492,6 +498,9 @@ int json_dump_tree(nvme_root_t r) if (dhchap_key) json_object_object_add(host_obj, "dhchap_key", json_object_new_string(dhchap_key)); + if (h->pdc_enabled_valid) + json_object_object_add(host_obj, "persistent_discovery_ctrl", + json_object_new_boolean(h->pdc_enabled)); subsys_array = json_object_new_array(); nvme_for_each_subsystem(h, s) { json_dump_subsys(subsys_array, s); diff --git a/src/nvme/linux.c b/src/nvme/linux.c index c9b6bbf..cae4036 100644 --- a/src/nvme/linux.c +++ b/src/nvme/linux.c @@ -117,45 +117,6 @@ int nvme_fw_download_seq(int fd, __u32 size, __u32 xfer, __u32 offset, return err; } -int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args) -{ - __u64 offset = 0, xfer, data_len = args->len; - bool retain = true; - void *ptr = args->log; - int ret; - - /* - * 4k is the smallest possible transfer unit, so restricting to 4k - * avoids having to check the MDTS value of the controller. - */ - do { - xfer = data_len - offset; - if (xfer > xfer_len) - xfer = xfer_len; - - /* - * Always retain regardless of the RAE parameter until the very - * last portion of this log page so the data remains latched - * during the fetch sequence. - */ - if (offset + xfer == data_len) - retain = args->rae; - - args->lpo = offset; - args->len = xfer; - args->log = ptr; - args->rae = retain; - ret = nvme_get_log(args); - if (ret) - return ret; - - offset += xfer; - ptr += xfer; - } while (offset < data_len); - - return 0; -} - static int nvme_get_telemetry_log(int fd, bool create, bool ctrl, bool rae, struct nvme_telemetry_log **buf, enum nvme_telemetry_da da, size_t *size) diff --git a/src/nvme/linux.h b/src/nvme/linux.h index 8a6d426..aa4c91a 100644 --- a/src/nvme/linux.h +++ b/src/nvme/linux.h @@ -98,17 +98,6 @@ int nvme_get_new_host_telemetry(int fd, struct nvme_telemetry_log **log, enum nvme_telemetry_da da, size_t *size); /** - * nvme_get_log_page() - Get log page data - * @fd: File descriptor of nvme device - * @xfer_len: Max log transfer size per request to split the total. - * @args: &struct nvme_get_log_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_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args); - -/** * nvme_get_ana_log_len() - Retrieve size of the current ANA log * @fd: File descriptor of nvme device * @analen: Pointer to where the length will be set on success diff --git a/src/nvme/mi-mctp.c b/src/nvme/mi-mctp.c index 86f5df6..0c5972a 100644 --- a/src/nvme/mi-mctp.c +++ b/src/nvme/mi-mctp.c @@ -23,10 +23,8 @@ #include <ccan/endian/endian.h> -#ifdef CONFIG_LIBSYSTEMD -#include <systemd/sd-event.h> -#include <systemd/sd-bus.h> -#include <systemd/sd-id128.h> +#ifdef CONFIG_DBUS +#include <dbus/dbus.h> #define MCTP_DBUS_PATH "/xyz/openbmc_project/mctp" #define MCTP_DBUS_IFACE "xyz.openbmc_project.MCTP" @@ -510,29 +508,19 @@ nvme_mi_ep_t nvme_mi_open_mctp(nvme_root_t root, unsigned int netid, __u8 eid) */ ep->timeout = 5000; + nvme_mi_ep_probe(ep); + return ep; err_free_ep: errno_save = errno; - free(ep); + nvme_mi_close(ep); free(mctp); errno = errno_save; return NULL; } -#ifdef CONFIG_LIBSYSTEMD - -/* helper for handling dbus errors: D-Bus API returns a negtive errno on - * failure; set errno and log. - */ -static void _dbus_err(nvme_root_t root, int rc, int line) -{ - nvme_msg(root, LOG_ERR, "MCTP D-Bus failed line %d: %s %d\n", - line, strerror(-rc), rc); - errno = -rc; -} - -#define dbus_err(r, rc) _dbus_err(r, rc, __LINE__) +#ifdef CONFIG_DBUS static int nvme_mi_mctp_add(nvme_root_t root, unsigned int netid, __u8 eid) { @@ -556,84 +544,99 @@ static int nvme_mi_mctp_add(nvme_root_t root, unsigned int netid, __u8 eid) return 0; } -/* We can't rely on sd_bus_message_enter_container() == 0 at the end of - a dictionary (it returns -ENXIO) so we test separately */ -static bool container_end(sd_bus_message *m) +static bool dbus_object_is_type(DBusMessageIter *obj, int type) +{ + return dbus_message_iter_get_arg_type(obj) == type; +} + +static bool dbus_object_is_dict(DBusMessageIter *obj) +{ + return dbus_object_is_type(obj, DBUS_TYPE_ARRAY) && + dbus_message_iter_get_element_type(obj) == DBUS_TYPE_DICT_ENTRY; +} + +static int read_variant_basic(DBusMessageIter *var, int type, void *val) +{ + if (!dbus_object_is_type(var, type)) + return -1; + + dbus_message_iter_get_basic(var, val); + + return 0; +} + +static bool has_message_type(DBusMessageIter *prop, uint8_t type) { - return sd_bus_message_peek_type(m, NULL, NULL) == 0; + DBusMessageIter inner; + uint8_t *types; + int i, n; + + if (!dbus_object_is_type(prop, DBUS_TYPE_ARRAY) || + dbus_message_iter_get_element_type(prop) != DBUS_TYPE_BYTE) + return false; + + dbus_message_iter_recurse(prop, &inner); + + dbus_message_iter_get_fixed_array(&inner, &types, &n); + + for (i = 0; i < n; i++) { + if (types[i] == type) + return true; + } + + return false; } static int handle_mctp_endpoint(nvme_root_t root, const char* objpath, - sd_bus_message *m) + DBusMessageIter *props) { bool have_eid = false, have_net = false, have_nvmemi = false; mctp_eid_t eid; int net; int rc; - /* Iterate properties on this interface */ - while (!container_end(m)) { - /* Enter property dict */ - rc = sd_bus_message_enter_container(m, 'a', "{sv}"); - if (rc < 0) { - dbus_err(root, rc); + /* for each property */ + for (;;) { + DBusMessageIter prop, val; + const char *propname; + + dbus_message_iter_recurse(props, &prop); + + if (!dbus_object_is_type(&prop, DBUS_TYPE_STRING)) { + nvme_msg(root, LOG_ERR, + "error unmashalling object (propname)\n"); return -1; } - while (!container_end(m)) { - char *propname = NULL; - size_t sz; - const uint8_t *types = NULL; - /* Enter property item */ - rc = sd_bus_message_enter_container(m, 'e', "sv"); - if (rc < 0) { - dbus_err(root, rc); - return -1; - } - - rc = sd_bus_message_read(m, "s", &propname); - if (rc < 0) { - dbus_err(root, rc); - return -1; - } - - if (strcmp(propname, "EID") == 0) { - rc = sd_bus_message_read(m, "v", "y", &eid); - have_eid = true; - } else if (strcmp(propname, "NetworkId") == 0) { - rc = sd_bus_message_read(m, "v", "i", &net); - have_net = true; - } else if (strcmp(propname, "SupportedMessageTypes") == 0) { - sd_bus_message_enter_container(m, 'v', "ay"); - rc = sd_bus_message_read_array(m, 'y', (const void**)&types, &sz); - if (rc >= 0) - for (size_t s = 0; s < sz; s++) - if (types[s] == MCTP_TYPE_NVME) - have_nvmemi = true; - sd_bus_message_exit_container(m); - } else { - rc = sd_bus_message_skip(m, "v"); - } - - if (rc < 0) { - dbus_err(root, rc); - return -1; - } - - /* Exit prop item */ - rc = sd_bus_message_exit_container(m); - if (rc < 0) { - dbus_err(root, rc); - return -1; - } - } + dbus_message_iter_get_basic(&prop, &propname); - /* Exit property dict */ - rc = sd_bus_message_exit_container(m); - if (rc < 0) { - dbus_err(root, rc); + dbus_message_iter_next(&prop); + + if (!dbus_object_is_type(&prop, DBUS_TYPE_VARIANT)) { + nvme_msg(root, LOG_ERR, + "error unmashalling object (propval)\n"); return -1; } + + dbus_message_iter_recurse(&prop, &val); + + if (!strcmp(propname, "EID")) { + rc = read_variant_basic(&val, DBUS_TYPE_BYTE, &eid); + have_eid = true; + + } else if (!strcmp(propname, "NetworkId")) { + rc = read_variant_basic(&val, DBUS_TYPE_INT32, &net); + have_net = true; + + } else if (!strcmp(propname, "SupportedMessageTypes")) { + have_nvmemi = has_message_type(&val, MCTP_TYPE_NVME); + } + + if (rc) + return rc; + + if (!dbus_message_iter_next(props)) + break; } if (have_nvmemi) { @@ -657,70 +660,61 @@ static int handle_mctp_endpoint(nvme_root_t root, const char* objpath, return rc; } -static int handle_mctp_obj(nvme_root_t root, sd_bus_message *m) +/* obj is an array of (object path, interfaces) dict entries - ie., dbus type + * a{oa{sa{sv}}} + */ +static int handle_mctp_obj(nvme_root_t root, DBusMessageIter *obj) { - char *objpath = NULL; - char *ifname = NULL; - int rc; + const char *objpath = NULL; + DBusMessageIter intfs; - rc = sd_bus_message_read(m, "o", &objpath); - if (rc < 0) { - dbus_err(root, rc); + if (!dbus_object_is_type(obj, DBUS_TYPE_OBJECT_PATH)) { + nvme_msg(root, LOG_ERR, "error unmashalling object (path)\n"); return -1; } - /* Enter response object: our array of (string, property dict) - * values */ - rc = sd_bus_message_enter_container(m, 'a', "{sa{sv}}"); - if (rc < 0) { - dbus_err(root, rc); + dbus_message_iter_get_basic(obj, &objpath); + + dbus_message_iter_next(obj); + + if (!dbus_object_is_dict(obj)) { + nvme_msg(root, LOG_ERR, "error unmashalling object (intfs)\n"); return -1; } + dbus_message_iter_recurse(obj, &intfs); /* for each interface */ - while (!container_end(m)) { - /* Enter interface item */ - rc = sd_bus_message_enter_container(m, 'e', "sa{sv}"); - if (rc < 0) { - dbus_err(root, rc); - return -1; - } + for (;;) { + DBusMessageIter props, intf; + const char *intfname; - rc = sd_bus_message_read(m, "s", &ifname); - if (rc < 0) { - dbus_err(root, rc); + dbus_message_iter_recurse(&intfs, &intf); + + if (!dbus_object_is_type(&intf, DBUS_TYPE_STRING)) { + nvme_msg(root, LOG_ERR, + "error unmashalling object (intf)\n"); return -1; } - if (!strcmp(ifname, MCTP_DBUS_IFACE_ENDPOINT)) { - - rc = handle_mctp_endpoint(root, objpath, m); - if (rc < 0) { - /* continue to next object */ - } - } else { - /* skip the interfaces we don't care about */ - rc = sd_bus_message_skip(m, "a{sv}"); - if (rc < 0) { - dbus_err(root, rc); - return -1; - } + dbus_message_iter_get_basic(&intf, &intfname); + + if (strcmp(intfname, MCTP_DBUS_IFACE_ENDPOINT)) { + if (!dbus_message_iter_next(&intfs)) + break; + continue; } - /* Exit interface item */ - rc = sd_bus_message_exit_container(m); - if (rc < 0) { - dbus_err(root, rc); + dbus_message_iter_next(&intf); + + if (!dbus_object_is_dict(&intf)) { + nvme_msg(root, LOG_ERR, + "error unmarshalling object (props)\n"); return -1; } - } - /* Exit response object */ - rc = sd_bus_message_exit_container(m); - if (rc < 0) { - dbus_err(root, rc); - return -1; + dbus_message_iter_recurse(&intf, &props); + return handle_mctp_endpoint(root, objpath, &props); } return 0; @@ -728,85 +722,85 @@ static int handle_mctp_obj(nvme_root_t root, sd_bus_message *m) nvme_root_t nvme_mi_scan_mctp(void) { - sd_bus *bus = NULL; - sd_bus_message *resp = NULL; - sd_bus_error berr = SD_BUS_ERROR_NULL; - int rc, errno_save; + DBusMessage *msg, *resp = NULL; + DBusConnection *bus = NULL; + DBusMessageIter args, objs; + int errno_save, rc = -1; nvme_root_t root; + dbus_bool_t drc; + DBusError berr; root = nvme_mi_create_root(NULL, DEFAULT_LOGLEVEL); if (!root) { errno = ENOMEM; - rc = -1; + return NULL; + } + + dbus_error_init(&berr); + + bus = dbus_bus_get(DBUS_BUS_SYSTEM, &berr); + if (!bus) { + nvme_msg(root, LOG_ERR, "Failed connecting to D-Bus: %s (%s)\n", + berr.message, berr.name); goto out; } - rc = sd_bus_default_system(&bus); - if (rc < 0) { - nvme_msg(root, LOG_ERR, "Failed opening D-Bus: %s\n", - strerror(-rc)); - errno = -rc; - rc = -1; + msg = dbus_message_new_method_call(MCTP_DBUS_IFACE, + MCTP_DBUS_PATH, + "org.freedesktop.DBus.ObjectManager", + "GetManagedObjects"); + if (!msg) { + nvme_msg(root, LOG_ERR, "Failed creating call message\n"); goto out; } - rc = sd_bus_call_method(bus, - MCTP_DBUS_IFACE, - MCTP_DBUS_PATH, - "org.freedesktop.DBus.ObjectManager", - "GetManagedObjects", - &berr, - &resp, - ""); - if (rc < 0) { + resp = dbus_connection_send_with_reply_and_block(bus, msg, + DBUS_TIMEOUT_USE_DEFAULT, + &berr); + dbus_message_unref(msg); + if (!resp) { nvme_msg(root, LOG_ERR, "Failed querying MCTP D-Bus: %s (%s)\n", berr.message, berr.name); - errno = -rc; - rc = -1; goto out; } - rc = sd_bus_message_enter_container(resp, 'a', "{oa{sa{sv}}}"); - if (rc != 1) { - dbus_err(root, rc); - if (rc == 0) - errno = EPROTO; - rc = -1; + /* argument container */ + drc = dbus_message_iter_init(resp, &args); + if (!drc) { + nvme_msg(root, LOG_ERR, "can't read dbus reply args\n"); goto out; } - /* Iterate over all managed objects */ - while (!container_end(resp)) { - rc = sd_bus_message_enter_container(resp, 'e', "oa{sa{sv}}"); - if (rc < 0) { - dbus_err(root, rc); - rc = -1; - goto out; - } + if (!dbus_object_is_dict(&args)) { + nvme_msg(root, LOG_ERR, "error unmashalling args\n"); + goto out; + } - handle_mctp_obj(root, resp); + /* objects container */ + dbus_message_iter_recurse(&args, &objs); - rc = sd_bus_message_exit_container(resp); - if (rc < 0) { - dbus_err(root, rc); - rc = -1; - goto out; - } - } + rc = 0; - rc = sd_bus_message_exit_container(resp); - if (rc < 0) { - dbus_err(root, rc); - rc = -1; - goto out; + for (;;) { + DBusMessageIter ent; + + dbus_message_iter_recurse(&objs, &ent); + + rc = handle_mctp_obj(root, &ent); + if (rc) + break; + + if (!dbus_message_iter_next(&objs)) + break; } - rc = 0; out: errno_save = errno; - sd_bus_error_free(&berr); - sd_bus_message_unref(resp); - sd_bus_unref(bus); + if (resp) + dbus_message_unref(resp); + if (bus) + dbus_connection_unref(bus); + dbus_error_free(&berr); if (rc < 0) { if (root) { @@ -818,11 +812,11 @@ out: return root; } -#else /* CONFIG_LIBSYSTEMD */ +#else /* CONFIG_DBUS */ nvme_root_t nvme_mi_scan_mctp(void) { return NULL; } -#endif /* CONFIG_LIBSYSTEMD */ +#endif /* CONFIG_DBUS */ diff --git a/src/nvme/mi.c b/src/nvme/mi.c index 6ff0a6f..adf1753 100644 --- a/src/nvme/mi.c +++ b/src/nvme/mi.c @@ -10,6 +10,7 @@ #include <stdlib.h> #include <stdlib.h> #include <stdio.h> +#include <time.h> #include <ccan/array_size/array_size.h> #include <ccan/endian/endian.h> @@ -21,6 +22,20 @@ static const int default_timeout = 1000; /* milliseconds; endpoints may override */ +static bool nvme_mi_probe_enabled_default(void) +{ + char *val; + + val = getenv("LIBNVME_MI_PROBE_ENABLED"); + if (!val) + return true; + + return strcmp(val, "0") && + strcasecmp(val, "false") && + strncasecmp(val, "disable", 7); + +} + /* MI-equivalent of nvme_create_root, but avoids clashing symbol names * when linking against both libnvme and libnvme-mi. */ @@ -33,6 +48,7 @@ nvme_root_t nvme_mi_create_root(FILE *fp, int log_level) } r->log_level = log_level; r->fp = stderr; + r->mi_probe_enabled = nvme_mi_probe_enabled_default(); if (fp) r->fp = fp; list_head_init(&r->hosts); @@ -50,6 +66,180 @@ void nvme_mi_free_root(nvme_root_t root) free(root); } +void nvme_mi_set_probe_enabled(nvme_root_t root, bool enabled) +{ + root->mi_probe_enabled = enabled; +} + +static void nvme_mi_record_resp_time(struct nvme_mi_ep *ep) +{ + int rc; + + rc = clock_gettime(CLOCK_MONOTONIC, &ep->last_resp_time); + ep->last_resp_time_valid = !rc; +} + +static bool nvme_mi_compare_vid_mn(struct nvme_mi_ep *ep, + struct nvme_id_ctrl *id, + __u16 vid, const char *mn) + +{ + int len; + + len = strlen(mn); + if (len >= sizeof(id->mn)) { + nvme_msg(ep->root, LOG_ERR, + "Internal error: invalid model number for %s\n", + __func__); + return false; + } + + return le16_to_cpu(id->vid) == vid && !strncmp(id->mn, mn, len); +} + +static void __nvme_mi_format_mn(struct nvme_id_ctrl *id, + char *mn, size_t mn_len) +{ + const size_t id_mn_size = sizeof(id->mn); + int i; + + /* A BUILD_ASSERT() would be nice here, but we're not const enough for + * that + */ + if (mn_len <= id_mn_size) + abort(); + + memcpy(mn, id->mn, id_mn_size); + mn[id_mn_size] = '\0'; + + for (i = id_mn_size - 1; i >= 0; i--) { + if (mn[i] != '\0' && mn[i] != ' ') + break; + mn[i] = '\0'; + } +} + +#define nvme_mi_format_mn(id, m) __nvme_mi_format_mn(id, m, sizeof(m)) + +void nvme_mi_ep_probe(struct nvme_mi_ep *ep) +{ + struct nvme_identify_args id_args = { 0 }; + struct nvme_id_ctrl id = { 0 }; + struct nvme_mi_ctrl *ctrl; + int rc; + + if (!ep->root->mi_probe_enabled) + return; + + /* start with no quirks, detect as we go */ + ep->quirks = 0; + + ctrl = nvme_mi_init_ctrl(ep, 0); + if (!ctrl) + return; + + /* Do enough of an identify (assuming controller 0) to retrieve + * device and firmware identification information. This gives us the + * following fields in id: + * + * - vid (PCI vendor ID) + * - ssvid (PCI subsystem vendor ID) + * - sn (Serial number) + * - mn (Model number) + * - fr (Firmware revision) + * + * all other fields - rab and onwards - will be zero! + */ + id_args.args_size = sizeof(id_args); + id_args.data = &id; + id_args.cns = NVME_IDENTIFY_CNS_CTRL; + id_args.nsid = NVME_NSID_NONE; + id_args.cntid = 0; + id_args.csi = NVME_CSI_NVM; + + rc = nvme_mi_admin_identify_partial(ctrl, &id_args, 0, + offsetof(struct nvme_id_ctrl, rab)); + if (rc) { + nvme_msg(ep->root, LOG_WARNING, + "Identify Controller failed, no quirks applied\n"); + goto out_close; + } + + /* Samsung MZUL2512: cannot receive commands sent within ~1ms of + * the previous response. Set an inter-command delay of 1.2ms for + * a little extra tolerance. + */ + if (nvme_mi_compare_vid_mn(ep, &id, 0x144d, "MZUL2512HCJQ")) { + ep->quirks |= NVME_QUIRK_MIN_INTER_COMMAND_TIME; + ep->inter_command_us = 1200; + } + + /* If we're quirking for the inter-command time, record the last + * command time now, so we don't conflict with the just-sent identify. + */ + if (ep->quirks & NVME_QUIRK_MIN_INTER_COMMAND_TIME) + nvme_mi_record_resp_time(ep); + + if (ep->quirks) { + char tmp[sizeof(id.mn) + 1]; + + nvme_mi_format_mn(&id, tmp); + nvme_msg(ep->root, LOG_DEBUG, + "device %02x:%s: applying quirks 0x%08lx\n", + id.vid, tmp, ep->quirks); + } + +out_close: + nvme_mi_close_ctrl(ctrl); +} + +static const int nsec_per_sec = 1000 * 1000 * 1000; +/* timercmp and timersub, but for struct timespec */ +#define timespec_cmp(a, b, CMP) \ + (((a)->tv_sec == (b)->tv_sec) \ + ? ((a)->tv_nsec CMP (b)->tv_nsec) \ + : ((a)->tv_sec CMP (b)->tv_sec)) + +#define timespec_sub(a, b, result) \ + do { \ + (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ + (result)->tv_nsec = (a)->tv_nsec - (b)->tv_nsec; \ + if ((result)->tv_nsec < 0) { \ + --(result)->tv_sec; \ + (result)->tv_nsec += nsec_per_sec; \ + } \ + } while (0) + +static void nvme_mi_insert_delay(struct nvme_mi_ep *ep) +{ + struct timespec now, next, delay; + int rc; + + if (!ep->last_resp_time_valid) + return; + + /* calculate earliest next command time */ + next.tv_nsec = ep->last_resp_time.tv_nsec + ep->inter_command_us * 1000; + next.tv_sec = ep->last_resp_time.tv_sec; + if (next.tv_nsec > nsec_per_sec) { + next.tv_nsec -= nsec_per_sec; + next.tv_sec += 1; + } + + rc = clock_gettime(CLOCK_MONOTONIC, &now); + if (rc) { + /* not much we can do; continue immediately */ + return; + } + + if (timespec_cmp(&now, &next, >=)) + return; + + timespec_sub(&next, &now, &delay); + + nanosleep(&delay, NULL); +} + struct nvme_mi_ep *nvme_mi_init_ep(nvme_root_t root) { struct nvme_mi_ep *ep; @@ -93,6 +283,11 @@ unsigned int nvme_mi_ep_get_timeout(nvme_mi_ep_t ep) return ep->timeout; } +static bool nvme_mi_ep_has_quirk(nvme_mi_ep_t ep, unsigned long quirk) +{ + return ep->quirks & quirk; +} + struct nvme_mi_ctrl *nvme_mi_init_ctrl(nvme_mi_ep_t ep, __u16 ctrl_id) { struct nvme_mi_ctrl *ctrl; @@ -139,9 +334,7 @@ int nvme_mi_scan_ep(nvme_mi_ep_t ep, bool force_rescan) struct nvme_mi_ctrl *ctrl; __u16 id; - id = le32_to_cpu(list.identifier[i]); - if (!id) - continue; + id = le16_to_cpu(list.identifier[i]); ctrl = nvme_mi_init_ctrl(ep, id); if (!ctrl) @@ -223,7 +416,14 @@ int nvme_mi_submit(nvme_mi_ep_t ep, struct nvme_mi_req *req, if (ep->transport->mic_enabled) nvme_mi_calc_req_mic(req); + if (nvme_mi_ep_has_quirk(ep, NVME_QUIRK_MIN_INTER_COMMAND_TIME)) + nvme_mi_insert_delay(ep); + rc = ep->transport->submit(ep, req, resp); + + if (nvme_mi_ep_has_quirk(ep, NVME_QUIRK_MIN_INTER_COMMAND_TIME)) + nvme_mi_record_resp_time(ep); + if (rc) { nvme_msg(ep->root, LOG_INFO, "transport failure\n"); return rc; @@ -333,7 +533,12 @@ static int nvme_mi_admin_parse_status(struct nvme_mi_resp *resp, __u32 *result) admin_hdr = (struct nvme_mi_admin_resp_hdr *)resp->hdr; nvme_result = le32_to_cpu(admin_hdr->cdw0); - nvme_status = le32_to_cpu(admin_hdr->cdw3) >> 16; + + /* Shift down 17 here: the SC starts at bit 17, and the NVME_SC_* + * definitions align to this bit (and up). The CRD, MORE and DNR + * bits are defined accordingly (eg., DNR is 0x4000). + */ + nvme_status = le32_to_cpu(admin_hdr->cdw3) >> 17; /* the result pointer, optionally stored if the caller needs it */ if (result) @@ -419,6 +624,96 @@ int nvme_mi_admin_xfer(nvme_mi_ctrl_t ctrl, return 0; } +int nvme_mi_admin_admin_passthru(nvme_mi_ctrl_t ctrl, __u8 opcode, __u8 flags, + __u16 rsvd, __u32 nsid, __u32 cdw2, __u32 cdw3, + __u32 cdw10, __u32 cdw11, __u32 cdw12, + __u32 cdw13, __u32 cdw14, __u32 cdw15, + __u32 data_len, void *data, __u32 metadata_len, + void *metadata, __u32 timeout_ms, __u32 *result) +{ + /* Input parameters flags, rsvd, metadata, metadata_len are not used */ + struct nvme_mi_admin_resp_hdr resp_hdr; + struct nvme_mi_admin_req_hdr req_hdr; + struct nvme_mi_resp resp; + struct nvme_mi_req req; + int rc; + int direction = opcode & 0x3; + bool has_write_data = false; + bool has_read_data = false; + + if (direction == NVME_DATA_TFR_BIDIRECTIONAL) { + nvme_msg(ctrl->ep->root, LOG_ERR, + "nvme_mi_admin_admin_passthru doesn't support bidirectional commands\n"); + errno = EINVAL; + return -1; + } + + if (data_len > 4096) { + nvme_msg(ctrl->ep->root, LOG_ERR, + "nvme_mi_admin_admin_passthru doesn't support data_len over 4096 bytes.\n"); + errno = EINVAL; + return -1; + } + + if (data != NULL && data_len != 0) { + if (direction == NVME_DATA_TFR_HOST_TO_CTRL) + has_write_data = true; + if (direction == NVME_DATA_TFR_CTRL_TO_HOST) + has_read_data = true; + } + + if (timeout_ms > nvme_mi_ep_get_timeout(ctrl->ep)) { + /* Set timeout if user needs a bigger timeout */ + nvme_mi_ep_set_timeout(ctrl->ep, timeout_ms); + } + + nvme_mi_admin_init_req(&req, &req_hdr, ctrl->id, opcode); + req_hdr.cdw1 = cpu_to_le32(nsid); + req_hdr.cdw2 = cpu_to_le32(cdw2); + req_hdr.cdw3 = cpu_to_le32(cdw3); + req_hdr.cdw10 = cpu_to_le32(cdw10); + req_hdr.cdw11 = cpu_to_le32(cdw11); + req_hdr.cdw12 = cpu_to_le32(cdw12); + req_hdr.cdw13 = cpu_to_le32(cdw13); + req_hdr.cdw14 = cpu_to_le32(cdw14); + req_hdr.cdw15 = cpu_to_le32(cdw15); + req_hdr.doff = 0; + if (data_len != 0) { + req_hdr.dlen = cpu_to_le32(data_len); + /* Bit 0 set to 1 means DLEN contains a value */ + req_hdr.flags = 0x1; + } + + if (has_write_data) { + req.data = data; + req.data_len = data_len; + } + + nvme_mi_calc_req_mic(&req); + + nvme_mi_admin_init_resp(&resp, &resp_hdr); + + if (has_read_data) { + resp.data = data; + resp.data_len = data_len; + } + + rc = nvme_mi_submit(ctrl->ep, &req, &resp); + if (rc) + return rc; + + rc = nvme_mi_admin_parse_status(&resp, result); + if (rc) + return rc; + + if (has_read_data && (resp.data_len != data_len)) { + errno = EPROTO; + return -1; + } + + return 0; +} + int nvme_mi_admin_identify_partial(nvme_mi_ctrl_t ctrl, struct nvme_identify_args *args, off_t offset, size_t size) @@ -477,11 +772,19 @@ int nvme_mi_admin_identify_partial(nvme_mi_ctrl_t ctrl, } /* retrieves a MCTP-messsage-sized chunk of log page data. offset and len are - * specified within the args->data area */ + * specified within the args->data area. The `offset` parameter is a relative + * offset to the args->lpo ! + * + * What's more, we change the LPO of original command to chunk the request + * message into proper size which is allowed by MI interface. One reason is that + * this option seems to be supported better by devices. For more information + * about this option, please check https://github.com/linux-nvme/libnvme/pull/539 + * */ static int __nvme_mi_admin_get_log(nvme_mi_ctrl_t ctrl, const struct nvme_get_log_args *args, off_t offset, size_t *lenp, bool final) { + __u64 log_page_offset = args->lpo + offset; struct nvme_mi_admin_resp_hdr resp_hdr; struct nvme_mi_admin_req_hdr req_hdr; struct nvme_mi_resp resp; @@ -513,17 +816,13 @@ static int __nvme_mi_admin_get_log(nvme_mi_ctrl_t ctrl, (args->lid & 0xff)); req_hdr.cdw11 = cpu_to_le32(args->lsi << 16 | ndw >> 16); - req_hdr.cdw12 = cpu_to_le32(args->lpo & 0xffffffff); - req_hdr.cdw13 = cpu_to_le32(args->lpo >> 32); + req_hdr.cdw12 = cpu_to_le32(log_page_offset & 0xffffffff); + req_hdr.cdw13 = cpu_to_le32(log_page_offset >> 32); req_hdr.cdw14 = cpu_to_le32(args->csi << 24 | (args->ot ? 1 : 0) << 23 | args->uuidx); req_hdr.flags = 0x1; req_hdr.dlen = cpu_to_le32(len & 0xffffffff); - if (offset) { - req_hdr.flags |= 0x2; - req_hdr.doff = cpu_to_le32(offset); - } nvme_mi_calc_req_mic(&req); @@ -544,7 +843,7 @@ static int __nvme_mi_admin_get_log(nvme_mi_ctrl_t ctrl, int nvme_mi_admin_get_log(nvme_mi_ctrl_t ctrl, struct nvme_get_log_args *args) { - const size_t xfer_size = 4096; + const size_t max_xfer_size = 4096; off_t xfer_offset; int rc = 0; @@ -553,26 +852,32 @@ int nvme_mi_admin_get_log(nvme_mi_ctrl_t ctrl, struct nvme_get_log_args *args) return -1; } + if (args->ot && (args->len > max_xfer_size)) { + errno = EINVAL; + return -1; + } + for (xfer_offset = 0; xfer_offset < args->len;) { - size_t tmp, cur_xfer_size = xfer_size; + size_t xfered_size, cur_xfer_size = max_xfer_size; bool final; if (xfer_offset + cur_xfer_size > args->len) cur_xfer_size = args->len - xfer_offset; - tmp = cur_xfer_size; + xfered_size = cur_xfer_size; final = xfer_offset + cur_xfer_size >= args->len; + /* xfered_size is used as both input and output parameter */ rc = __nvme_mi_admin_get_log(ctrl, args, xfer_offset, - &tmp, final); + &xfered_size, final); if (rc) break; - xfer_offset += tmp; + xfer_offset += xfered_size; /* if we returned less data than expected, consider that * the end of the log page */ - if (tmp != cur_xfer_size) + if (xfered_size != cur_xfer_size) break; } @@ -606,8 +911,8 @@ int nvme_mi_admin_security_send(nvme_mi_ctrl_t ctrl, nvme_admin_security_send); req_hdr.cdw10 = cpu_to_le32(args->secp << 24 | - args->spsp0 << 16 | - args->spsp1 << 8 | + args->spsp1 << 16 | + args->spsp0 << 8 | args->nssf); req_hdr.cdw11 = cpu_to_le32(args->data_len & 0xffffffff); @@ -652,8 +957,8 @@ int nvme_mi_admin_security_recv(nvme_mi_ctrl_t ctrl, nvme_admin_security_recv); req_hdr.cdw10 = cpu_to_le32(args->secp << 24 | - args->spsp0 << 16 | - args->spsp1 << 8 | + args->spsp1 << 16 | + args->spsp0 << 8 | args->nssf); req_hdr.cdw11 = cpu_to_le32(args->data_len & 0xffffffff); @@ -985,7 +1290,7 @@ static int nvme_mi_read_data(nvme_mi_ep_t ep, __u32 cdw0, req_hdr.hdr.nmp = (NVME_MI_ROR_REQ << 7) | (NVME_MI_MT_MI << 3); /* we always use command slot 0 */ req_hdr.opcode = nvme_mi_mi_opcode_mi_data_read; - req_hdr.cdw0 = cdw0; + req_hdr.cdw0 = cpu_to_le32(cdw0); memset(&req, 0, sizeof(req)); req.hdr = &req_hdr.hdr; @@ -1222,7 +1527,7 @@ void nvme_mi_close(nvme_mi_ep_t ep) nvme_mi_for_each_ctrl_safe(ep, ctrl, tmp) nvme_mi_close_ctrl(ctrl); - if (ep->transport->close) + if (ep->transport && ep->transport->close) ep->transport->close(ep); list_del(&ep->root_entry); free(ep); diff --git a/src/nvme/mi.h b/src/nvme/mi.h index ab4216d..5659159 100644 --- a/src/nvme/mi.h +++ b/src/nvme/mi.h @@ -403,6 +403,17 @@ nvme_root_t nvme_mi_create_root(FILE *fp, int log_level); */ void nvme_mi_free_root(nvme_root_t root); +/** + * nvme_mi_set_probe_enabled() - enable/disable the probe for new endpoints + * @root: &nvme_root_t object + * @enabled: whether to probe new endpoints + * + * Controls whether newly-created endpoints are probed for quirks on creation. + * Defaults to enabled, which results in some initial messaging with the + * endpoint to determine model-specific details. + */ +void nvme_mi_set_probe_enabled(nvme_root_t root, bool enabled); + /* Top level management object: NVMe-MI Management Endpoint */ struct nvme_mi_ep; @@ -956,6 +967,46 @@ int nvme_mi_admin_xfer(nvme_mi_ctrl_t ctrl, size_t *resp_data_size); /** + * nvme_mi_admin_admin_passthru() - Submit an nvme admin passthrough command + * @ctrl: Controller to send command to + * @opcode: The nvme admin command to send + * @flags: NVMe command flags (not used) + * @rsvd: Reserved for future use + * @nsid: Namespace identifier + * @cdw2: Command dword 2 + * @cdw3: Command dword 3 + * @cdw10: Command dword 10 + * @cdw11: Command dword 11 + * @cdw12: Command dword 12 + * @cdw13: Command dword 13 + * @cdw14: Command dword 14 + * @cdw15: Command dword 15 + * @data_len: Length of the data transferred in this command in bytes + * @data: Pointer to user address of the data buffer + * @metadata_len:Length of metadata transferred in this command(not used) + * @metadata: Pointer to user address of the metadata buffer(not used) + * @timeout_ms: How long to wait for the command to complete + * @result: Optional field to return the result from the CQE dword 0 + * + * Send a customized NVMe Admin command request message and get the corresponding + * response message. + * + * This interface supports no data, host to controller and controller to + * host but it doesn't support bidirectional data transfer. + * Also this interface only supports data transfer size range [0, 4096] (bytes) + * so the & data_len parameter must be less than 4097. + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_mi_admin_admin_passthru(nvme_mi_ctrl_t ctrl, __u8 opcode, __u8 flags, + __u16 rsvd, __u32 nsid, __u32 cdw2, __u32 cdw3, + __u32 cdw10, __u32 cdw11, __u32 cdw12, + __u32 cdw13, __u32 cdw14, __u32 cdw15, + __u32 data_len, void *data, __u32 metadata_len, + void *metadata, __u32 timeout_ms, __u32 *result); + +/** * nvme_mi_admin_identify_partial() - Perform an Admin identify command, * and retrieve partial response data. * @ctrl: Controller to process identify command @@ -1202,7 +1253,7 @@ static inline int nvme_mi_admin_identify_nsid_ctrl_list(nvme_mi_ctrl_t ctrl, .result = NULL, .data = list, .args_size = sizeof(args), - .cns = NVME_IDENTIFY_CNS_CTRL_LIST, + .cns = NVME_IDENTIFY_CNS_NS_CTRL_LIST, .csi = NVME_CSI_NVM, .nsid = nsid, .cntid = cntid, diff --git a/src/nvme/private.h b/src/nvme/private.h index cdd1bbf..a6ded21 100644 --- a/src/nvme/private.h +++ b/src/nvme/private.h @@ -85,6 +85,7 @@ struct nvme_ctrl { char *cntrltype; char *dctype; bool discovery_ctrl; + bool unique_discovery_ctrl; bool discovered; bool persistent; struct nvme_fabrics_config cfg; @@ -114,6 +115,9 @@ struct nvme_host { char *hostid; char *dhchap_key; char *hostsymname; + bool pdc_enabled; + bool pdc_enabled_valid; /* set if pdc_enabled doesn't have an undefined + * value */ }; struct nvme_root { @@ -125,6 +129,7 @@ struct nvme_root { bool log_pid; bool log_timestamp; bool modified; + bool mi_probe_enabled; }; int nvme_set_attr(const char *dir, const char *attr, const char *value); @@ -186,6 +191,14 @@ struct nvme_mi_transport { int (*check_timeout)(struct nvme_mi_ep *ep, unsigned int timeout); }; +/* quirks */ + +/* Set a minimum time between receiving a response from one command and + * sending the next request. Some devices may ignore new commands sent too soon + * after the previous request, so manually insert a delay + */ +#define NVME_QUIRK_MIN_INTER_COMMAND_TIME (1 << 0) + struct nvme_mi_ep { struct nvme_root *root; const struct nvme_mi_transport *transport; @@ -195,6 +208,12 @@ struct nvme_mi_ep { bool controllers_scanned; unsigned int timeout; unsigned int mprt_max; + unsigned long quirks; + + /* inter-command delay, for NVME_QUIRK_MIN_INTER_COMMAND_TIME */ + unsigned int inter_command_us; + struct timespec last_resp_time; + bool last_resp_time_valid; }; struct nvme_mi_ctrl { @@ -204,6 +223,7 @@ struct nvme_mi_ctrl { }; struct nvme_mi_ep *nvme_mi_init_ep(struct nvme_root *root); +void nvme_mi_ep_probe(struct nvme_mi_ep *ep); /* for tests, we need to calculate the correct MICs */ __u32 nvme_mi_crc32_update(__u32 crc, void *data, size_t len); diff --git a/src/nvme/tree.c b/src/nvme/tree.c index b992824..18826bf 100644 --- a/src/nvme/tree.c +++ b/src/nvme/tree.c @@ -252,6 +252,19 @@ void nvme_host_set_dhchap_key(nvme_host_t h, const char *key) h->dhchap_key = strdup(key); } +void nvme_host_set_pdc_enabled(nvme_host_t h, bool enabled) +{ + h->pdc_enabled_valid = true; + h->pdc_enabled = enabled; +} + +bool nvme_host_is_pdc_enabled(nvme_host_t h, bool fallback) +{ + if (h->pdc_enabled_valid) + return h->pdc_enabled; + return fallback; +} + nvme_subsystem_t nvme_first_subsystem(nvme_host_t h) { return list_top(&h->subsystems, struct nvme_subsystem, entry); @@ -870,6 +883,16 @@ bool nvme_ctrl_is_discovery_ctrl(nvme_ctrl_t c) return c->discovery_ctrl; } +void nvme_ctrl_set_unique_discovery_ctrl(nvme_ctrl_t c, bool unique) +{ + c->unique_discovery_ctrl = unique; +} + +bool nvme_ctrl_is_unique_discovery_ctrl(nvme_ctrl_t c) +{ + return c->unique_discovery_ctrl; +} + int nvme_ctrl_identify(nvme_ctrl_t c, struct nvme_id_ctrl *id) { return nvme_identify_ctrl(nvme_ctrl_get_fd(c), id); @@ -931,7 +954,7 @@ int nvme_disconnect_ctrl(nvme_ctrl_t c) c->name, errno); return ret; } - nvme_msg(r, LOG_INFO, "%s: disconnected\n", c->name); + nvme_msg(r, LOG_INFO, "%s: %s disconnected\n", c->name, c->subsysnqn); nvme_deconfigure_ctrl(c); return 0; } @@ -1833,6 +1856,7 @@ static nvme_ns_t nvme_ns_open(const char *name) close_fd: close(n->fd); free_ns: + free(n->generic_name); free(n->name); free(n); return NULL; diff --git a/src/nvme/tree.h b/src/nvme/tree.h index 156cb79..e4a5126 100644 --- a/src/nvme/tree.h +++ b/src/nvme/tree.h @@ -107,6 +107,28 @@ const char *nvme_host_get_dhchap_key(nvme_host_t h); void nvme_host_set_dhchap_key(nvme_host_t h, const char *key); /** + * nvme_host_set_pdc_enabled() - Set Persistent Discovery Controller flag + * @h: Host for which the falg should be set + * @enabled: The bool to set the enabled flag + * + * When nvme_host_set_pdc_enabled() is not used to set the PDC flag, + * nvme_host_is_pdc_enabled() will return the default value which was + * passed into the function and not the undefined flag value. + */ +void nvme_host_set_pdc_enabled(nvme_host_t h, bool enabled); + +/** + * nvme_host_is_pdc_enabled() - Is Persistenct Discovery Controller enabled + * @h: Host which to check if PDC is enabled + * @fallback: The fallback default value of the flag when + * @nvme_host_set_pdc_enabled has not be used + * to set the flag. + * + * Return: true if PDC is enabled for @h, else false + */ +bool nvme_host_is_pdc_enabled(nvme_host_t h, bool fallback); + +/** * nvme_default_host() - Initializes the default host * @r: &nvme_root_t object * @@ -969,6 +991,25 @@ void nvme_ctrl_set_discovery_ctrl(nvme_ctrl_t c, bool discovery); bool nvme_ctrl_is_discovery_ctrl(nvme_ctrl_t c); /** + * nvme_ctrl_set_unique_discovery_ctrl() - Set the 'unique_discovery_ctrl' flag + * @c: Controller to be modified + * @unique: value of the unique_disc_ctrl flag + * + * Sets the 'unique_discovery_ctrl' flag in @c to specify wheter + * @c is a unique discovery controller + * + */ +void nvme_ctrl_set_unique_discovery_ctrl(nvme_ctrl_t c, bool unique); + +/** + * nvme_ctrl_is_unique_discovery_ctrl() - Check the 'unique_discovery_ctrl' flag + * @c: Controller to be checked + * + * Return: Value of the 'unique_discovery_ctrl' flag + */ +bool nvme_ctrl_is_unique_discovery_ctrl(nvme_ctrl_t c); + +/** * nvme_ctrl_identify() - Issues an 'identify controller' command * @c: Controller instance * @id: Identify controller data structure diff --git a/src/nvme/types.h b/src/nvme/types.h index 94066fc..929d658 100644 --- a/src/nvme/types.h +++ b/src/nvme/types.h @@ -1127,6 +1127,7 @@ enum nvme_id_ctrl_oaes { * @NVME_CTRL_CTRATT_DEL_ENDURANCE_GROUPS: Delete Endurance Groups supported * @NVME_CTRL_CTRATT_DEL_NVM_SETS: Delete NVM Sets supported * @NVME_CTRL_CTRATT_ELBAS: Extended LBA Formats supported + * @NVME_CTRL_CTRATT_FDPS: Flexible Data Placement supported */ enum nvme_id_ctrl_ctratt { NVME_CTRL_CTRATT_128_ID = 1 << 0, @@ -1145,6 +1146,7 @@ enum nvme_id_ctrl_ctratt { NVME_CTRL_CTRATT_DEL_ENDURANCE_GROUPS = 1 << 13, NVME_CTRL_CTRATT_DEL_NVM_SETS = 1 << 14, NVME_CTRL_CTRATT_ELBAS = 1 << 15, + NVME_CTRL_CTRATT_FDPS = 1 << 19, }; /** @@ -2913,6 +2915,7 @@ enum nvme_status_result { * @NVME_ST_CODE_SHORT: Short device self-test operation. * @NVME_ST_CODE_EXTENDED: Extended device self-test 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 * &struct nvme_st_result.dsts field. */ @@ -2921,6 +2924,7 @@ enum nvme_st_code { NVME_ST_CODE_SHORT = 0x1, NVME_ST_CODE_EXTENDED = 0x2, NVME_ST_CODE_VS = 0xe, + NVME_ST_CODE_ABORT = 0xf, NVME_ST_CODE_SHIFT = 4, }; @@ -3367,6 +3371,18 @@ struct nvme_fw_commit_event { } __attribute__((packed)); /** + * struct nvme_timestamp - Timestamp - Data Structure for Get Features + * @timestamp: Timestamp value based on origin and synch field + * @attr: Attribute + * @rsvd: Reserved + */ +struct nvme_timestamp { + __u8 timestamp[6]; + __u8 attr; + __u8 rsvd; +}; + +/** * struct nvme_time_stamp_change_event - Timestamp Change Event * @previous_timestamp: Previous Timestamp * @ml_secs_since_reset: Milliseconds Since Reset @@ -4079,6 +4095,295 @@ struct nvme_zone_report { }; /** + * enum nvme_fdp_ruh_type - Reclaim Unit Handle Type + * @NVME_FDP_RUHT_INITIALLY_ISOLATED: Initially Isolated + * @NVME_FDP_RUHT_PERSISTENTLY_ISOLATED: Persistently Isolated + */ +enum nvme_fdp_ruh_type { + NVME_FDP_RUHT_INITIALLY_ISOLATED = 1, + NVME_FDP_RUHT_PERSISTENTLY_ISOLATED = 2, +}; + +/** + * struct nvme_fdp_ruh_desc - Reclaim Unit Handle Descriptor + * @ruht: Reclaim Unit Handle Type + * @rsvd1: Reserved + */ +struct nvme_fdp_ruh_desc { + __u8 ruht; + __u8 rsvd1[3]; +}; + +/** + * enum nvme_fdp_config_fdpa - FDP Attributes + * @NVME_FDP_CONFIG_FDPA_RGIF_SHIFT: Reclaim Group Identifier Format Shift + * @NVME_FDP_CONFIG_FDPA_RGIF_MASK: Reclaim Group Identifier Format Mask + * @NVME_FDP_CONFIG_FDPA_FDPVWC_SHIFT: FDP Volatile Write Cache Shift + * @NVME_FDP_CONFIG_FDPA_FDPVWC_MASK: FDP Volatile Write Cache Mask + * @NVME_FDP_CONFIG_FDPA_VALID_SHIFT: FDP Configuration Valid Shift + * @NVME_FDP_CONFIG_FDPA_VALID_MASK: FDP Configuration Valid Mask + */ +enum nvme_fdp_config_fdpa { + NVME_FDP_CONFIG_FDPA_RGIF_SHIFT = 0, + NVME_FDP_CONFIG_FDPA_RGIF_MASK = 0xf, + NVME_FDP_CONFIG_FDPA_FDPVWC_SHIFT = 4, + NVME_FDP_CONFIG_FDPA_FDPVWC_MASK = 0x1, + NVME_FDP_CONFIG_FDPA_VALID_SHIFT = 7, + NVME_FDP_CONFIG_FDPA_VALID_MASK = 0x1, +}; + +/** + * struct nvme_fdp_config_desc - FDP Configuration Descriptor + * @size: Descriptor size + * @fdpa: FDP Attributes (&enum nvme_fdp_config_fdpa) + * @vss: Vendor Specific Size + * @nrg: Number of Reclaim Groups + * @nruh: Number of Reclaim Unit Handles + * @maxpids: Max Placement Identifiers + * @nnss: Number of Namespaces Supported + * @runs: Reclaim Unit Nominal Size + * @erutl: Estimated Reclaim Unit Time Limit + * @rsvd28: Reserved + * @ruhs: Reclaim Unit Handle descriptors (&struct nvme_fdp_ruh_desc) + */ +struct nvme_fdp_config_desc { + __u16 size; + __u8 fdpa; + __u8 vss; + __u32 nrg; + __u16 nruh; + __u16 maxpids; + __u32 nnss; + __u64 runs; + __u32 erutl; + __u8 rsvd28[36]; + struct nvme_fdp_ruh_desc ruhs[]; +}; + +/** + * struct nvme_fdp_config_log - FDP Configurations Log Page + * @n: Number of FDP Configurations + * @version: Log page version + * @rsvd3: Reserved + * @size: Log page size in bytes + * @rsvd8: Reserved + * @configs: FDP Configuration descriptors (&struct nvme_fdp_config_desc) + */ +struct nvme_fdp_config_log { + __u16 n; + __u8 version; + __u8 rsvd3; + __u32 size; + __u8 rsvd8[8]; + struct nvme_fdp_config_desc configs[]; +}; + +/** + * enum nvme_fdp_ruha - Reclaim Unit Handle Attributes + * @NVME_FDP_RUHA_HOST_SHIFT: Host Specified Reclaim Unit Handle Shift + * @NVME_FDP_RUHA_HOST_MASK: Host Specified Reclaim Unit Handle Mask + * @NVME_FDP_RUHA_CTRL_SHIFT: Controller Specified Reclaim Unit Handle Shift + * @NVME_FDP_RUHA_CTRL_MASK: Controller Specified Reclaim Unit Handle Mask + */ +enum nvme_fdp_ruha { + NVME_FDP_RUHA_HOST_SHIFT = 0, + NVME_FDP_RUHA_HOST_MASK = 0x1, + NVME_FDP_RUHA_CTRL_SHIFT = 1, + NVME_FDP_RUHA_CTRL_MASK = 0x1, +}; + +/** + * struct nvme_fdp_ruhu_desc - Reclaim Unit Handle Usage Descriptor + * @ruha: Reclaim Unit Handle Attributes (&enum nvme_fdp_ruha) + * @rsvd1: Reserved + */ +struct nvme_fdp_ruhu_desc { + __u8 ruha; + __u8 rsvd1[7]; +}; + +/** + * struct nvme_fdp_ruhu_log - Reclaim Unit Handle Usage Log Page + * @nruh: Number of Reclaim Unit Handles + * @rsvd2: Reserved + * @ruhus: Reclaim Unit Handle Usage descriptors + */ +struct nvme_fdp_ruhu_log { + __u16 nruh; + __u8 rsvd2[6]; + struct nvme_fdp_ruhu_desc ruhus[]; +}; + +/** + * struct nvme_fdp_stats_log - FDP Statistics Log Page + * @hbmw: Host Bytes with Metadata Written + * @mbmw: Media Bytes with Metadata Written + * @mbe: Media Bytes Erased + * @rsvd48: Reserved + */ +struct nvme_fdp_stats_log { + __u8 hbmw[16]; + __u8 mbmw[16]; + __u8 mbe[16]; + __u8 rsvd48[16]; +}; + +/** + * enum nvme_fdp_event_type - FDP Event Types + * @NVME_FDP_EVENT_RUNFW: Reclaim Unit Not Fully Written + * @NVME_FDP_EVENT_RUTLE: Reclaim Unit Time Limit Exceeded + * @NVME_FDP_EVENT_RESET: Controller Level Reset Modified Reclaim Unit Handles + * @NVME_FDP_EVENT_PID: Invalid Placement Identifier + * @NVME_FDP_EVENT_REALLOC: Media Reallocated + * @NVME_FDP_EVENT_MODIFY: Implicitly Modified Reclaim Unit Handle + */ +enum nvme_fdp_event_type { + /* Host Events */ + NVME_FDP_EVENT_RUNFW = 0x0, + NVME_FDP_EVENT_RUTLE = 0x1, + NVME_FDP_EVENT_RESET = 0x2, + NVME_FDP_EVENT_PID = 0x3, + + /* Controller Events */ + NVME_FDP_EVENT_REALLOC = 0x80, + NVME_FDP_EVENT_MODIFY = 0x81, +}; + +/** + * enum nvme_fdp_event_realloc_flags - Media Reallocated Event Type Specific Flags + * @NVME_FDP_EVENT_REALLOC_F_LBAV: LBA Valid + */ +enum nvme_fdp_event_realloc_flags { + NVME_FDP_EVENT_REALLOC_F_LBAV = 1 << 0, +}; + +/** + * struct nvme_fdp_event_realloc - Media Reallocated Event Type Specific Information + * @flags: Event Type Specific flags (&enum nvme_fdp_event_realloc_flags) + * @rsvd1: Reserved + * @nlbam: Number of LBAs Moved + * @lba: Logical Block Address + * @rsvd12: Reserved + */ +struct nvme_fdp_event_realloc { + __u8 flags; + __u8 rsvd1; + __u16 nlbam; + __u64 lba; + __u8 rsvd12[4]; +}; + +/** + * enum nvme_fdp_event_flags - FDP Event Flags + * @NVME_FDP_EVENT_F_PIV: Placement Identifier Valid + * @NVME_FDP_EVENT_F_NSIDV: Namespace Identifier Valid + * @NVME_FDP_EVENT_F_LV: Location Valid + */ +enum nvme_fdp_event_flags { + NVME_FDP_EVENT_F_PIV = 1 << 0, + NVME_FDP_EVENT_F_NSIDV = 1 << 1, + NVME_FDP_EVENT_F_LV = 1 << 2, +}; + +/** + * struct nvme_fdp_event - FDP Event + * @type: Event Type (&enum nvme_fdp_event_type) + * @flags: Event Flags (&enum nvme_fdp_event_flags) + * @pid: Placement Identifier + * @ts: Timestamp + * @nsid: Namespace Identifier + * @type_specific: Event Type Specific Information + * @rgid: Reclaim Group Identifier + * @ruhid: Reclaim Unit Handle Identifier + * @rsvd35: Reserved + * @vs: Vendor Specific + */ +struct nvme_fdp_event { + __u8 type; + __u8 flags; + __u16 pid; + struct nvme_timestamp ts; + __u32 nsid; + __u8 type_specific[16]; + __u16 rgid; + __u8 ruhid; + __u8 rsvd35[5]; + __u8 vs[24]; +}; + +/** + * struct nvme_fdp_events_log - FDP Events Log Page + * @n: Number of FDP Events + * @rsvd4: Reserved + * @events: FDP Events (&struct nvme_fdp_event) + */ +struct nvme_fdp_events_log { + __u32 n; + __u8 rsvd4[60]; + struct nvme_fdp_event events[63]; +}; + +/** + * struct nvme_feat_fdp_events_cdw11 - FDP Events Feature Command Dword 11 + * @phndl: Placement Handle + * @noet: Number of FDP Event Types + * @rsvd24: Reserved + */ +struct nvme_feat_fdp_events_cdw11 { + __u16 phndl; + __u8 noet; + __u8 rsvd24; +}; + +/** + * enum nvme_fdp_supported_event_attributes - Supported FDP Event Attributes + * @NVME_FDP_SUPP_EVENT_ENABLED_SHIFT: FDP Event Enable Shift + * @NVME_FDP_SUPP_EVENT_ENABLED_MASK: FDP Event Enable Mask + */ +enum nvme_fdp_supported_event_attributes { + NVME_FDP_SUPP_EVENT_ENABLED_SHIFT = 0, + NVME_FDP_SUPP_EVENT_ENABLED_MASK = 0x1, +}; + +/** + * struct nvme_fdp_supported_event_desc - Supported FDP Event Descriptor + * @evt: FDP Event Type + * @evta: FDP Event Type Attributes (&enum nvme_fdp_supported_event_attributes) + */ +struct nvme_fdp_supported_event_desc { + __u8 evt; + __u8 evta; +}; + +/** + * struct nvme_fdp_ruh_status_desc - Reclaim Unit Handle Status Descriptor + * @pid: Placement Identifier + * @ruhid: Reclaim Unit Handle Identifier + * @earutr: Estimated Active Reclaim Unit Time Remaining + * @ruamw: Reclaim Unit Available Media Writes + * @rsvd16: Reserved + */ +struct nvme_fdp_ruh_status_desc { + __u16 pid; + __u16 ruhid; + __u32 earutr; + __u64 ruamw; + __u8 rsvd16[16]; +}; + +/** + * struct nvme_fdp_ruh_status - Reclaim Unit Handle Status + * @rsvd0: Reserved + * @nruhsd: Number of Reclaim Unit Handle Status Descriptors + * @ruhss: Reclaim Unit Handle Status descriptors + */ +struct nvme_fdp_ruh_status { + __u8 rsvd0[14]; + __u16 nruhsd; + struct nvme_fdp_ruh_status_desc ruhss[]; +}; + +/** * struct nvme_lba_status_desc - LBA Status Descriptor Entry * @dslba: Descriptor Starting LBA * @nlb: Number of Logical Blocks @@ -4223,18 +4528,6 @@ enum nvme_ns_metadata_type { }; /** - * struct nvme_timestamp - Timestamp - Data Structure for Get Features - * @timestamp: Timestamp value based on origin and synch field - * @attr: Attribute - * @rsvd: Reserved - */ -struct nvme_timestamp { - __u8 timestamp[6]; - __u8 attr; - __u8 rsvd; -}; - -/** * struct nvme_lba_range_type_entry - LBA Range Type - Data Structure Entry * @type: Specifies the Type of the LBA range * @attributes: Specifies attributes of the LBA range @@ -6376,6 +6669,10 @@ enum nvme_identify_cns { * @NVME_LOG_LID_FID_SUPPORTED_EFFECTS: Feature Identifiers Supported and Effects * @NVME_LOG_LID_MI_CMD_SUPPORTED_EFFECTS: NVMe-MI Commands Supported and Effects * @NVME_LOG_LID_BOOT_PARTITION: Boot Partition + * @NVME_LOG_LID_FDP_CONFIGS: FDP Configurations + * @NVME_LOG_LID_FDP_RUH_USAGE: Reclaim Unit Handle Usage + * @NVME_LOG_LID_FDP_STATS: FDP Statistics + * @NVME_LOG_LID_FDP_EVENTS: FDP Events * @NVME_LOG_LID_DISCOVER: Discovery * @NVME_LOG_LID_RESERVATION: Reservation Notification * @NVME_LOG_LID_SANITIZE: Sanitize Status @@ -6403,6 +6700,10 @@ enum nvme_cmd_get_log_lid { NVME_LOG_LID_FID_SUPPORTED_EFFECTS = 0x12, NVME_LOG_LID_MI_CMD_SUPPORTED_EFFECTS = 0x13, NVME_LOG_LID_BOOT_PARTITION = 0x15, + NVME_LOG_LID_FDP_CONFIGS = 0x20, + NVME_LOG_LID_FDP_RUH_USAGE = 0x21, + NVME_LOG_LID_FDP_STATS = 0x22, + NVME_LOG_LID_FDP_EVENTS = 0x23, NVME_LOG_LID_DISCOVER = 0x70, NVME_LOG_LID_RESERVATION = 0x80, NVME_LOG_LID_SANITIZE = 0x81, @@ -6437,6 +6738,8 @@ enum nvme_cmd_get_log_lid { * @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_FDP: Flexible Data Placement + * @NVME_FEAT_FID_FDP_EVENTS: FDP Events * @NVME_FEAT_FID_ENH_CTRL_METADATA: Enhanced Controller Metadata * @NVME_FEAT_FID_CTRL_METADATA: Controller Metadata * @NVME_FEAT_FID_NS_METADATA: Namespace Metadata @@ -6473,6 +6776,8 @@ enum nvme_features_id { NVME_FEAT_FID_ENDURANCE_EVT_CFG = 0x18, NVME_FEAT_FID_IOCS_PROFILE = 0x19, /* XXX: Placeholder until assigned */ NVME_FEAT_FID_SPINUP_CONTROL = 0x1a, + NVME_FEAT_FID_FDP = 0x1d, + NVME_FEAT_FID_FDP_EVENTS = 0x1e, NVME_FEAT_FID_ENH_CTRL_METADATA = 0x7d, NVME_FEAT_FID_CTRL_METADATA = 0x7e, NVME_FEAT_FID_NS_METADATA = 0x7f, @@ -6583,6 +6888,12 @@ enum nvme_features_id { * @NVME_FEAT_WP_WPS_MASK: * @NVME_FEAT_IOCSP_IOCSCI_SHIFT: * @NVME_FEAT_IOCSP_IOCSCI_MASK: + * @NVME_FEAT_FDP_ENABLED_SHIFT: + * @NVME_FEAT_FDP_ENABLED_MASK: + * @NVME_FEAT_FDP_INDEX_SHIFT: + * @NVME_FEAT_FDP_INDEX_MASK: + * @NVME_FEAT_FDP_EVENTS_ENABLE_SHIFT: + * @NVME_FEAT_FDP_EVENTS_ENABLE_MASK: */ enum nvme_feat { NVME_FEAT_ARBITRATION_BURST_SHIFT = 0, @@ -6683,6 +6994,12 @@ enum nvme_feat { NVME_FEAT_WP_WPS_MASK = 0x7, NVME_FEAT_IOCSP_IOCSCI_SHIFT = 0, NVME_FEAT_IOCSP_IOCSCI_MASK = 0xff, + NVME_FEAT_FDP_ENABLED_SHIFT = 0, + NVME_FEAT_FDP_ENABLED_MASK = 0x1, + NVME_FEAT_FDP_INDEX_SHIFT = 8, + NVME_FEAT_FDP_INDEX_MASK = 0xf, + NVME_FEAT_FDP_EVENTS_ENABLE_SHIFT = 0, + NVME_FEAT_FDP_EVENTS_ENABLE_MASK = 0x1, }; /** @@ -7073,8 +7390,10 @@ enum nvme_data_tfr { * @nvme_cmd_resv_register: Reservation Register * @nvme_cmd_resv_report: Reservation Report * @nvme_cmd_resv_acquire: Reservation Acquire + * @nvme_cmd_io_mgmt_recv: I/O Management Receive * @nvme_cmd_resv_release: Reservation Release * @nvme_cmd_copy: Copy + * @nvme_cmd_io_mgmt_send: I/O Management Send * @nvme_zns_cmd_mgmt_send: Zone Management Send * @nvme_zns_cmd_mgmt_recv: Zone Management Receive * @nvme_zns_cmd_append: Zone Append @@ -7091,8 +7410,10 @@ enum nvme_io_opcode { nvme_cmd_resv_register = 0x0d, nvme_cmd_resv_report = 0x0e, nvme_cmd_resv_acquire = 0x11, + nvme_cmd_io_mgmt_recv = 0x12, nvme_cmd_resv_release = 0x15, nvme_cmd_copy = 0x19, + nvme_cmd_io_mgmt_send = 0x1d, nvme_zns_cmd_mgmt_send = 0x79, nvme_zns_cmd_mgmt_recv = 0x7a, nvme_zns_cmd_append = 0x7d, @@ -7295,4 +7616,20 @@ enum nvme_zns_report_options { NVME_ZNS_ZRAS_REPORT_OFFLINE = 0x7, }; +/** + * enum nvme_io_mgmt_recv_mo - I/O Management Receive - Management Operation + * @NVME_IO_MGMT_RECV_RUH_STATUS: Reclaim Unit Handle Status + */ +enum nvme_io_mgmt_recv_mo { + NVME_IO_MGMT_RECV_RUH_STATUS = 0x1, +}; + +/** + * enum nvme_io_mgmt_send_mo - I/O Management Send - Management Operation + * @NVME_IO_MGMT_SEND_RUH_UPDATE: Reclaim Unit Handle Update + */ +enum nvme_io_mgmt_send_mo { + NVME_IO_MGMT_SEND_RUH_UPDATE = 0x1, +}; + #endif /* _LIBNVME_TYPES_H */ diff --git a/src/nvme/util.c b/src/nvme/util.c index c61dbe9..0354afe 100644 --- a/src/nvme/util.c +++ b/src/nvme/util.c @@ -325,7 +325,7 @@ static const char * const media_status[] = { }; static const char * const path_status[] = { - [NVME_SC_ANA_INTERNAL_PATH_ERROR] = "Internal Path Error: An internal error specific to the controller processing the commmand prevented completion", + [NVME_SC_ANA_INTERNAL_PATH_ERROR] = "Internal Path Error: An internal error specific to the controller processing the command prevented completion", [NVME_SC_ANA_PERSISTENT_LOSS] = "Asymmetric Access Persistent Loss: The controller is in a persistent loss state with the requested namespace", [NVME_SC_ANA_INACCESSIBLE] = "Asymmetric Access Inaccessible: The controller is in an inaccessible state with the requested namespace", [NVME_SC_ANA_TRANSITION] = "Asymmetric Access Transition: The controller is currently transitioning states with the requested namespace", @@ -559,11 +559,12 @@ static const char * const libnvme_status[] = { [ENVME_CONNECT_INVAL_TR] = "invalid transport type", [ENVME_CONNECT_LOOKUP_SUBSYS_NAME] = "failed to lookup subsystem name", [ENVME_CONNECT_LOOKUP_SUBSYS] = "failed to lookup subsystem", - [ENVME_CONNECT_ALREADY] = "already connnected", + [ENVME_CONNECT_ALREADY] = "already connected", [ENVME_CONNECT_INVAL] = "invalid arguments/configuration", [ENVME_CONNECT_ADDRINUSE] = "hostnqn already in use", [ENVME_CONNECT_NODEV] = "invalid interface", [ENVME_CONNECT_OPNOTSUPP] ="not supported", + [ENVME_CONNECT_CONNREFUSED] = "connection refused", }; const char *nvme_errno_to_string(int status) @@ -573,6 +574,7 @@ const char *nvme_errno_to_string(int status) return s; } +#ifdef HAVE_LIBNSS char *hostname2traddr(struct nvme_root *r, const char *traddr) { struct addrinfo *host_info, hints = {.ai_family = AF_UNSPEC}; @@ -617,6 +619,18 @@ free_addrinfo: return ret_traddr; } +#else /* !HAVE_LIBNSS */ + +char *hostname2traddr(struct nvme_root *r, const char *traddr) +{ + nvme_msg(NULL, LOG_ERR, "No support for hostname IP address resolution; " \ + "recompile with libnss support.\n"); + + errno = -ENOTSUP; + return NULL; +} +#endif /* HAVE_LIBNSS */ + char *startswith(const char *s, const char *prefix) { size_t l; @@ -871,13 +885,11 @@ int nvme_uuid_random(unsigned char uuid[NVME_UUID_LEN]) if (f < 0) return -errno; n = read(f, uuid, NVME_UUID_LEN); - if (n < 0) { - close(f); + close(f); + if (n < 0) return -errno; - } else if (n != NVME_UUID_LEN) { - close(f); + else if (n != NVME_UUID_LEN) return -EIO; - } /* * See https://www.rfc-editor.org/rfc/rfc4122#section-4.4 diff --git a/src/nvme/util.h b/src/nvme/util.h index e72c156..961da18 100644 --- a/src/nvme/util.h +++ b/src/nvme/util.h @@ -36,6 +36,7 @@ * @ENVME_CONNECT_ADDRINUSE: hostnqn already in use * @ENVME_CONNECT_NODEV: invalid interface * @ENVME_CONNECT_OPNOTSUPP: not supported + * @ENVME_CONNECT_CONNREFUSED: connection refused */ enum nvme_connect_err { ENVME_CONNECT_RESOLVE = 1000, @@ -55,6 +56,7 @@ enum nvme_connect_err { ENVME_CONNECT_ADDRINUSE, ENVME_CONNECT_NODEV, ENVME_CONNECT_OPNOTSUPP, + ENVME_CONNECT_CONNREFUSED, }; /** @@ -529,13 +531,13 @@ char *startswith(const char *s, const char *prefix); /** * nvmf_exat_len() - Return length rounded up by 4 - * @val_len: Value lenght + * @val_len: Value length * * Return the size in bytes, rounded to a multiple of 4 (e.g., size of * __u32), of the buffer needed to hold the exat value of size * @val_len. * - * Return: Lenght rounded up by 4 + * Return: Length rounded up by 4 */ static inline __u16 nvmf_exat_len(size_t val_len) { diff --git a/subprojects/dbus.wrap b/subprojects/dbus.wrap new file mode 100644 index 0000000..95ad3af --- /dev/null +++ b/subprojects/dbus.wrap @@ -0,0 +1,4 @@ +[wrap-git] +url = https://gitlab.freedesktop.org/dbus/dbus.git +revision = 218b35a57cdeab667c75d6ef34f901b8ead00056 +depth = 1 diff --git a/subprojects/uuid.wrap b/subprojects/uuid.wrap deleted file mode 100644 index 0692c4e..0000000 --- a/subprojects/uuid.wrap +++ /dev/null @@ -1,6 +0,0 @@ -[wrap-git] -url = https://github.com/util-linux/util-linux.git -revision = eefff5aac7bce6979c950e3931a578efe03acbac - -[provide] -dependency_names = uuid
\ No newline at end of file @@ -442,8 +442,8 @@ static void test_admin_id(nvme_mi_ep_t ep) assert(rc == 0); } -/* test: simple NVMe error response */ -static int test_admin_err_resp_cb(struct nvme_mi_ep *ep, +/* test: simple NVMe error response, error reported in the MI header */ +static int test_admin_err_mi_resp_cb(struct nvme_mi_ep *ep, struct nvme_mi_req *req, struct nvme_mi_resp *resp, void *data) @@ -481,19 +481,85 @@ static int test_admin_err_resp_cb(struct nvme_mi_ep *ep, return 0; } -static void test_admin_err_resp(nvme_mi_ep_t ep) +static void test_admin_err_mi_resp(nvme_mi_ep_t ep) { struct nvme_id_ctrl id; nvme_mi_ctrl_t ctrl; int rc; - test_set_transport_callback(ep, test_admin_err_resp_cb, NULL); + test_set_transport_callback(ep, test_admin_err_mi_resp_cb, NULL); ctrl = nvme_mi_init_ctrl(ep, 1); assert(ctrl); rc = nvme_mi_admin_identify_ctrl(ctrl, &id); assert(rc != 0); + assert(nvme_status_get_type(rc) == NVME_STATUS_TYPE_MI); + assert(nvme_status_get_value(rc) == NVME_MI_RESP_INTERNAL_ERR); +} + +/* test: NVMe Admin error, with the error reported in the Admin response */ +static int test_admin_err_nvme_resp_cb(struct nvme_mi_ep *ep, + struct nvme_mi_req *req, + struct nvme_mi_resp *resp, + void *data) +{ + __u8 ror, mt, *hdr; + + assert(req->hdr->type == NVME_MI_MSGTYPE_NVME); + + ror = req->hdr->nmp >> 7; + mt = req->hdr->nmp >> 3 & 0x7; + assert(ror == NVME_MI_ROR_REQ); + assert(mt == NVME_MI_MT_ADMIN); + + /* do we have enough for a mi header? */ + assert(req->hdr_len == sizeof(struct nvme_mi_admin_req_hdr)); + + /* inspect response as raw bytes */ + hdr = (__u8 *)req->hdr; + assert(hdr[4] == nvme_admin_identify); + + /* we need at least 8 bytes for error information */ + assert(resp->hdr_len >= sizeof(struct nvme_mi_admin_resp_hdr)); + + /* create error response */ + hdr = (__u8 *)resp->hdr; + hdr[4] = 0; /* MI status: success */ + hdr[5] = 0; + hdr[6] = 0; + hdr[7] = 0; + + hdr[16] = 0; /* cdw3: SC: internal, SCT: generic, DNR */ + hdr[17] = 0; + hdr[18] = 0x0c; + hdr[19] = 0x80; + + resp->hdr_len = sizeof(struct nvme_mi_admin_resp_hdr); + resp->data_len = 0; + + test_transport_resp_calc_mic(resp); + + return 0; +} + +static void test_admin_err_nvme_resp(nvme_mi_ep_t ep) +{ + struct nvme_id_ctrl id; + nvme_mi_ctrl_t ctrl; + int rc; + + test_set_transport_callback(ep, test_admin_err_nvme_resp_cb, NULL); + + ctrl = nvme_mi_init_ctrl(ep, 1); + assert(ctrl); + + rc = nvme_mi_admin_identify_ctrl(ctrl, &id); + assert(rc != 0); + assert(nvme_status_get_type(rc) == NVME_STATUS_TYPE_NVME); + assert(nvme_status_get_value(rc) == + (NVME_SC_INTERNAL | (NVME_SCT_GENERIC << NVME_SCT_SHIFT) + | NVME_SC_DNR)); } /* invalid Admin command transfers */ @@ -509,8 +575,11 @@ static int test_admin_invalid_formats_cb(struct nvme_mi_ep *ep, static void test_admin_invalid_formats(nvme_mi_ep_t ep) { + struct { + struct nvme_mi_admin_req_hdr hdr; + uint8_t data[4]; + } req = { 0 }; struct nvme_mi_admin_resp_hdr resp = { 0 }; - struct nvme_mi_admin_req_hdr req = { 0 }; nvme_mi_ctrl_t ctrl; size_t len; int rc; @@ -522,37 +591,37 @@ static void test_admin_invalid_formats(nvme_mi_ep_t ep) /* unaligned req size */ len = 0; - rc = nvme_mi_admin_xfer(ctrl, &req, 1, &resp, 0, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 1, &resp, 0, &len); assert(rc != 0); /* unaligned resp size */ len = 1; - rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 0, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 0, &len); assert(rc != 0); /* unaligned resp offset */ len = 4; - rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 1, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 1, &len); assert(rc != 0); /* resp too large */ len = 4096 + 4; - rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 0, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 0, &len); assert(rc != 0); /* resp offset too large */ len = 4; - rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, (off_t)1 << 32, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, (off_t)1 << 32, &len); assert(rc != 0); /* resp offset with no len */ len = 0; - rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 4, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 4, &len); assert(rc != 0); /* req and resp payloads */ len = 4; - rc = nvme_mi_admin_xfer(ctrl, &req, 4, &resp, 0, &len); + rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 4, &resp, 0, &len); assert(rc != 0); } @@ -930,7 +999,7 @@ static int test_admin_set_features_cb(struct nvme_mi_ep *ep, static void test_set_features(nvme_mi_ep_t ep) { struct nvme_set_features_args args = { 0 }; - struct nvme_timestamp tstamp; + struct nvme_timestamp tstamp = { 0 }; nvme_mi_ctrl_t ctrl; uint32_t res; int rc, i; @@ -1141,7 +1210,7 @@ static int test_admin_id_nsid_ctrl_list_cb(struct nvme_mi_ep *ep, assert(req->data_len == 0); cns = hdr[45] << 8 | hdr[44]; - assert(cns == NVME_IDENTIFY_CNS_CTRL_LIST); + assert(cns == NVME_IDENTIFY_CNS_NS_CTRL_LIST); nsid = hdr[11] << 24 | hdr[10] << 16 | hdr[9] << 8 | hdr[8]; assert(nsid == 0x01020304); @@ -1273,7 +1342,7 @@ static int test_admin_ns_mgmt_cb(struct nvme_mi_ep *ep, static void test_admin_ns_mgmt_create(struct nvme_mi_ep *ep) { - struct nvme_id_ns nsid; + struct nvme_id_ns nsid = { 0 }; nvme_mi_ctrl_t ctrl; __u32 ns; int rc; @@ -1287,7 +1356,7 @@ static void test_admin_ns_mgmt_create(struct nvme_mi_ep *ep) assert(!rc); assert(ns == 0x01020304); - nsid.nsze = 42; + nsid.nsze = cpu_to_le64(42); rc = nvme_mi_admin_ns_mgmt_create(ctrl, &nsid, 0, &ns); assert(rc); } @@ -1710,6 +1779,7 @@ static int test_admin_get_log_split_cb(struct nvme_mi_ep *ep, struct nvme_mi_resp *resp, void *data) { + uint32_t log_page_offset_lower; struct log_data *ldata = data; uint32_t len, off; __u8 *rq_hdr; @@ -1724,19 +1794,25 @@ static int test_admin_get_log_split_cb(struct nvme_mi_ep *ep, off = rq_hdr[31] << 24 | rq_hdr[30] << 16 | rq_hdr[29] << 8 | rq_hdr[28]; len = rq_hdr[35] << 24 | rq_hdr[34] << 16 | rq_hdr[33] << 8 | rq_hdr[32]; + /* From the MI message's Command Dword 12 */ + log_page_offset_lower = rq_hdr[55] << 24 | rq_hdr[54] << 16 | rq_hdr[53] << 8 | rq_hdr[52]; + /* we should have a full-sized start and middle, and a short end */ switch (ldata->n) { case 0: + assert(log_page_offset_lower == 0); assert(len == 4096); assert(off == 0); break; case 1: + assert(log_page_offset_lower == 4096); assert(len == 4096); - assert(off == 4096); + assert(off == 0); break; case 2: + assert(log_page_offset_lower == 8192); assert(len == 4); - assert(off == 4096 * 2); + assert(off == 0); break; default: assert(0); @@ -1755,8 +1831,8 @@ static int test_admin_get_log_split_cb(struct nvme_mi_ep *ep, static void test_admin_get_log_split(struct nvme_mi_ep *ep) { + struct nvme_get_log_args args = { 0 }; unsigned char buf[4096 * 2 + 4]; - struct nvme_get_log_args args; struct log_data ldata; nvme_mi_ctrl_t ctrl; int rc; @@ -1770,6 +1846,8 @@ static void test_admin_get_log_split(struct nvme_mi_ep *ep) args.lid = 1; args.log = buf; args.len = sizeof(buf); + args.lpo = 0; + args.ot = false; rc = nvme_mi_admin_get_log(ctrl, &args); @@ -1792,7 +1870,8 @@ struct test { DEFINE_TEST(scan_ctrl_list), DEFINE_TEST(invalid_crc), DEFINE_TEST(admin_id), - DEFINE_TEST(admin_err_resp), + DEFINE_TEST(admin_err_mi_resp), + DEFINE_TEST(admin_err_nvme_resp), DEFINE_TEST(admin_invalid_formats), DEFINE_TEST(resp_req), DEFINE_TEST(resp_hdr_small), |