-.TH "libnvme" 9 "enum nvme_admin_opcode" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_admin_opcode" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_admin_opcode \- Known NVMe admin opcodes
.SH SYNOPSIS
-.TH "nvme_admin_passthru" 9 "nvme_admin_passthru" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_admin_passthru" 9 "nvme_admin_passthru" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_admin_passthru \- Submit an nvme passthrough command
.SH SYNOPSIS
.IP "flags" 12
NVMe command flags (not used)
.IP "rsvd" 12
-Reserevd for future use
+Reserved for future use
.IP "nsid" 12
Namespace identifier
.IP "cdw2" 12
.IP "cdw15" 12
Command dword 15
.IP "data_len" 12
-Length of the data transfered in this command in bytes
+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 transfered in this command
+Length of metadata transferred in this command
.IP "metadata" 12
Pointer to user address of the metadata buffer
.IP "timeout_ms" 12
-.TH "libnvme" 9 "enum nvme_ae_info_css_nvm" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ae_info_css_nvm" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_ae_info_css_nvm \-
+enum nvme_ae_info_css_nvm \- Asynchronous Event Information - I/O Command Specific Status
.SH SYNOPSIS
enum nvme_ae_info_css_nvm {
.br
-.TH "libnvme" 9 "enum nvme_ae_info_error" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ae_info_error" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_ae_info_error \-
+enum nvme_ae_info_error \- Asynchronous Event Information - Error Status
.SH SYNOPSIS
enum nvme_ae_info_error {
.br
-.TH "libnvme" 9 "enum nvme_ae_info_notice" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ae_info_notice" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_ae_info_notice \-
+enum nvme_ae_info_notice \- Asynchronous Event Information - Notice
.SH SYNOPSIS
enum nvme_ae_info_notice {
.br
-.TH "libnvme" 9 "enum nvme_ae_info_smart" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ae_info_smart" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_ae_info_smart \-
+enum nvme_ae_info_smart \- Asynchronous Event Information - SMART / Health Status
.SH SYNOPSIS
enum nvme_ae_info_smart {
.br
-.TH "libnvme" 9 "enum nvme_ae_type" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ae_type" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_ae_type \-
+enum nvme_ae_type \- Asynchronous Event Type
.SH SYNOPSIS
enum nvme_ae_type {
.br
-.TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_aggregate_endurance_group_event \-
+struct nvme_aggregate_endurance_group_event \- Endurance Group Event Aggregate
.SH SYNOPSIS
struct nvme_aggregate_endurance_group_event {
.br
-.TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_aggregate_predictable_lat_event \-
+struct nvme_aggregate_predictable_lat_event \- Predictable Latency Event Aggregate Log Page
.SH SYNOPSIS
struct nvme_aggregate_predictable_lat_event {
.br
-.TH "libnvme" 9 "struct nvme_ana_group_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ana_group_desc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_ana_group_desc \-
+struct nvme_ana_group_desc \- ANA Group Descriptor
.SH SYNOPSIS
struct nvme_ana_group_desc {
.br
-.TH "libnvme" 9 "struct nvme_ana_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ana_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_ana_log \-
+struct nvme_ana_log \- Asymmetric Namespace Access Log
.SH SYNOPSIS
struct nvme_ana_log {
.br
-.TH "libnvme" 9 "enum nvme_ana_state" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ana_state" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_ana_state \-
+enum nvme_ana_state \- ANA Group Descriptor - Asymmetric Namespace Access State
.SH SYNOPSIS
enum nvme_ana_state {
.br
};
.SH Constants
.IP "NVME_ANA_STATE_OPTIMIZED" 12
+ANA Optimized state
.IP "NVME_ANA_STATE_NONOPTIMIZED" 12
+ANA Non-Optimized state
.IP "NVME_ANA_STATE_INACCESSIBLE" 12
+ANA Inaccessible state
.IP "NVME_ANA_STATE_PERSISTENT_LOSS" 12
+ANA Persistent Loss state
.IP "NVME_ANA_STATE_CHANGE" 12
+ANA Change state
-.TH "libnvme" 9 "enum nvme_apst_entry" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_apst_entry" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_apst_entry \-
+enum nvme_apst_entry \- Autonomous Power State Transition
.SH SYNOPSIS
enum nvme_apst_entry {
.br
};
.SH Constants
.IP "NVME_APST_ENTRY_ITPS_SHIFT" 12
+Idle Transition Power State Shift
.IP "NVME_APST_ENTRY_ITPT_SHIFT" 12
+Idle Time Prior to Transition Shift
.IP "NVME_APST_ENTRY_ITPS_MASK" 12
+Idle Transition Power State Mask
.IP "NVME_APST_ENTRY_ITPT_MASK" 12
+Idle Time Prior to Transition Mask
-.TH "libnvme" 9 "struct nvme_boot_partition" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_boot_partition" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_boot_partition \-
+struct nvme_boot_partition \- Boot Partition Log
.SH SYNOPSIS
struct nvme_boot_partition {
.br
--- /dev/null
+.TH "libnvme" 9 "struct nvme_capacity_config_desc" "July 2022" "API Manual" LINUX
+.SH NAME
+struct nvme_capacity_config_desc \- Capacity Configuration structure definitions
+.SH SYNOPSIS
+struct nvme_capacity_config_desc {
+.br
+.BI " __le16 cap_config_id;"
+.br
+.BI " __le16 domainid;"
+.br
+.BI " __le16 egcn;"
+.br
+.BI " __u8 rsvd6[26];"
+.br
+.BI " struct nvme_end_grp_config_desc egcd[];"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "cap_config_id" 12
+Capacity Configuration Identifier
+.IP "domainid" 12
+Domain Identifier
+.IP "egcn" 12
+Number Endurance Group Configuration
+Descriptors
+.IP "rsvd6" 12
+Reserved
+.IP "egcd" 12
+Endurance Group Config descriptors.
+See \fIstruct\fP nvme_end_grp_config_desc
-.TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_capacity_mgmt \-
+nvme_capacity_mgmt \- Capacity management command
.SH SYNOPSIS
.B "int" nvme_capacity_mgmt
.BI "(struct nvme_capacity_mgmt_args *args " ");"
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_capacity_mgmt_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_capacity_mgmt_args \- Arguments for the NVMe Capacity Management command
-.SH SYNOPSIS
-struct nvme_capacity_mgmt_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 cdw11;"
-.br
-.BI " __u32 cdw12;"
-.br
-.BI " __u16 element_id;"
-.br
-.BI " __u8 op;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-If successful, the CQE dword0 value
-.IP "args_size" 12
-Size of \fIstruct nvme_capacity_mgmt_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "cdw11" 12
-Least significant 32 bits of the capacity in bytes of the
-Endurance Group or NVM Set to be created
-.IP "cdw12" 12
-Most significant 32 bits of the capacity in bytes of the
-Endurance Group or NVM Set to be created
-.IP "element_id" 12
-Value specific to the value of the Operation field
-.IP "op" 12
-Operation to be performed by the controller
-.TH "libnvme" 9 "struct nvme_change_ns_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_change_ns_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_change_ns_event \-
+struct nvme_change_ns_event \- Change Namespace Event Data
.SH SYNOPSIS
struct nvme_change_ns_event {
.br
-.TH "libnvme" 9 "struct nvme_channel_config_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_channel_config_desc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_channel_config_desc \-
+struct nvme_channel_config_desc \- Channel Configuration Descriptor
.SH SYNOPSIS
struct nvme_channel_config_desc {
.br
Channel Identifier
.IP "chmus" 12
Number Channel Media Units
-.SH "Description"
-Channel Configuration Descriptor
-Structure Definitions
+.IP "mu_config_desc" 12
+Channel Unit config descriptors.
+See \fIstruct\fP nvme_media_unit_config_desc
-.TH "nvme_cmb_size" 9 "nvme_cmb_size" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_cmb_size" 9 "nvme_cmb_size" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_cmb_size \- Calculate size of the controller memory buffer
.SH SYNOPSIS
.SH ARGUMENTS
.IP "cmbsz" 12
Value from controller register NVME_REG_CMBSZ
-.SH "DESCRIPTION"
-Returns size of controller memory buffer in bytes
+.SH "RETURN"
+size of controller memory buffer in bytes
-.TH "libnvme" 9 "enum nvme_cmd_effects" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_effects" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_cmd_effects \-
+enum nvme_cmd_effects \- Commands Supported and Effects
.SH SYNOPSIS
enum nvme_cmd_effects {
.br
-.TH "libnvme" 9 "struct nvme_cmd_effects_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_cmd_effects_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_cmd_effects_log \-
+struct nvme_cmd_effects_log \- Commands Supported and Effects Log
.SH SYNOPSIS
struct nvme_cmd_effects_log {
.br
-.TH "libnvme" 9 "enum nvme_cmd_format_mset" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_format_mset" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_cmd_format_mset \- Format NVM - Metadata Settings
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_cmd_format_pi" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_format_pi" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_cmd_format_pi \- Format NVM - Protection Information
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_cmd_format_pil" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_format_pil" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_cmd_format_pil \- Format NVM - Protection Information Location
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_cmd_format_ses" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_format_ses" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_cmd_format_ses \- Format NVM - Secure Erase Settings
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_cmd_get_log_lid" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_get_log_lid" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_cmd_get_log_lid \-
+enum nvme_cmd_get_log_lid \- Get Log Page -Log Page Identifiers
.SH SYNOPSIS
enum nvme_cmd_get_log_lid {
.br
-.TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_cmd_get_log_telemetry_host_lsp \-
+enum nvme_cmd_get_log_telemetry_host_lsp \- Telemetry Host-Initiated log specific field
.SH SYNOPSIS
enum nvme_cmd_get_log_telemetry_host_lsp {
.br
};
.SH Constants
.IP "NVME_LOG_TELEM_HOST_LSP_RETAIN" 12
+Get Telemetry Data Blocks
.IP "NVME_LOG_TELEM_HOST_LSP_CREATE" 12
+Create Telemetry Data Blocks
-.TH "nvme_compare" 9 "nvme_compare" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_compare" 9 "nvme_compare" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_compare \- Submit an nvme user compare command
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_connect_err" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_connect_err" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_connect_err \- nvme connect error codes
.SH SYNOPSIS
.br
.br
.BI " ENVME_CONNECT_LOOKUP_SUBSYS"
+,
+.br
+.br
+.BI " ENVME_CONNECT_ALREADY"
+,
+.br
+.br
+.BI " ENVME_CONNECT_INVAL"
+,
+.br
+.br
+.BI " ENVME_CONNECT_ADDRINUSE"
+,
+.br
+.br
+.BI " ENVME_CONNECT_NODEV"
+,
+.br
+.br
+.BI " ENVME_CONNECT_OPNOTSUPP"
};
.SH Constants
failed to lookup subsystem name
.IP "ENVME_CONNECT_LOOKUP_SUBSYS" 12
failed to lookup subsystem
+.IP "ENVME_CONNECT_ALREADY" 12
+the connect attempt failed, already connected
+.IP "ENVME_CONNECT_INVAL" 12
+invalid arguments/configuration
+.IP "ENVME_CONNECT_ADDRINUSE" 12
+hostnqn already in use
+.IP "ENVME_CONNECT_NODEV" 12
+invalid interface
+.IP "ENVME_CONNECT_OPNOTSUPP" 12
+not supported
-.TH "libnvme" 9 "enum nvme_constants" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_constants" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_constants \- A place to stash various constant nvme values
.SH SYNOPSIS
.IP "NVME_IDENTIFY_DATA_SIZE" 12
The transfer size for nvme identify commands
.IP "NVME_LOG_SUPPORTED_LOG_PAGES_MAX" 12
-The lagest possible index in the supported
+The largest possible index in the supported
log pages log.
.IP "NVME_ID_NVMSET_LIST_MAX" 12
The largest possible nvmset index in identify
.IP "NVME_LOG_TELEM_BLOCK_SIZE" 12
Specification defined size of Telemetry Data Blocks
.IP "NVME_LOG_FID_SUPPORTED_EFFECTS_MAX" 12
-The largest possible FID index in the
+The largest possible FID index in the
feature identifiers effects log.
.IP "NVME_LOG_MI_CMD_SUPPORTED_EFFECTS_MAX" 12
The largest possible MI Command index
-.TH "nvme_copy" 9 "nvme_copy" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_copy" 9 "nvme_copy" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_copy \-
+nvme_copy \- Copy command
.SH SYNOPSIS
.B "int" nvme_copy
.BI "(struct nvme_copy_args *args " ");"
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_copy_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_copy_args \- Arguments for the NVMe Copy command
-.SH SYNOPSIS
-struct nvme_copy_args {
-.br
-.BI " __u64 sdlba;"
-.br
-.BI " __u32 *result;"
-.br
-.BI " struct nvme_copy_range *copy;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " __u32 ilbrt;"
-.br
-.BI " int lr;"
-.br
-.BI " int fua;"
-.br
-.BI " __u16 nr;"
-.br
-.BI " __u16 dspec;"
-.br
-.BI " __u16 lbatm;"
-.br
-.BI " __u16 lbat;"
-.br
-.BI " __u8 prinfor;"
-.br
-.BI " __u8 prinfow;"
-.br
-.BI " __u8 dtype;"
-.br
-.BI " __u8 format;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "sdlba" 12
-Start destination LBA
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "copy" 12
-Range descriptior
-.IP "args_size" 12
-Size of \fIstruct nvme_copy_args\fP
-.IP "fd" 12
-File descriptor of the nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace identifier
-.IP "ilbrt" 12
-Initial logical block reference tag
-.IP "lr" 12
-Limited retry
-.IP "fua" 12
-Force unit access
-.IP "nr" 12
-Number of ranges
-.IP "dspec" 12
-Directive specific value
-.IP "lbatm" 12
-Logical block application tag mask
-.IP "lbat" 12
-Logical block application tag
-.IP "prinfor" 12
-Protection information field for read
-.IP "prinfow" 12
-Protection information field for write
-.IP "dtype" 12
-Directive type
-.IP "format" 12
-Descriptor format
-.TH "libnvme" 9 "struct nvme_copy_range" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_copy_range" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_copy_range \-
+struct nvme_copy_range \- Copy - Source Range Entries Descriptor Format
.SH SYNOPSIS
struct nvme_copy_range {
.br
.IP "rsvd18" 12
Reserved
.IP "eilbrt" 12
-Expected Initial Logical Block Reference Tag
+Expected Initial Logical Block Reference Tag /
+Expected Logical Block Storage Tag
.IP "elbatm" 12
Expected Logical Block Application Tag Mask
.IP "elbat" 12
-.TH "nvme_create_ctrl" 9 "nvme_create_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_create_ctrl" 9 "nvme_create_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_create_ctrl \- Allocate an unconnected NVMe controller
.SH SYNOPSIS
-.TH "nvme_create_root" 9 "nvme_create_root" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_create_root" 9 "nvme_create_root" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_create_root \- Initialize root object
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_csi" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_csi" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_csi \- Defined command set indicators
.SH SYNOPSIS
-.TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_first_ns \- Start namespace iterator
.SH SYNOPSIS
-.TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_first_path \- Start path iterator
.SH SYNOPSIS
-.TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_for_each_ns \- Traverse namespaces
.SH SYNOPSIS
-.TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_for_each_ns_safe \- Traverse namespaces
.SH SYNOPSIS
-.TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_for_each_path \- Traverse paths
.SH SYNOPSIS
-.TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_for_each_path_safe \- Traverse paths
.SH SYNOPSIS
-.TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_address \- Address string of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_config \- Fabrics configuration of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_dhchap_key \- Return controller key
.SH SYNOPSIS
-.TH "nvme_ctrl_get_fd" 9 "nvme_ctrl_get_fd" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_fd" 9 "nvme_ctrl_get_fd" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_fd \- Get associated file descriptor
.SH SYNOPSIS
-.TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_firmware \- Firmware string of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_host_iface \- Host interface name of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_host_traddr \- Host transport address of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_model \- Model of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_name \- sysfs name of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_numa_node \- NUMA node of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_queue_count \- Queue count of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_serial \- Serial number of a controller
.SH SYNOPSIS
.BI "(nvme_ctrl_t c " ");"
.SH ARGUMENTS
.IP "c" 12
-Conroller instance
+Controller instance
.SH "RETURN"
Serial number string of \fIc\fP
-.TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_sqsize \- SQ size of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_state" 9 "nvme_ctrl_get_state" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_state" 9 "nvme_ctrl_get_state" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_state \- Running state of an controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_subsysnqn" 9 "nvme_ctrl_get_subsysnqn" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_subsysnqn" 9 "nvme_ctrl_get_subsysnqn" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_subsysnqn \- Subsystem NQN of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_subsystem" 9 "nvme_ctrl_get_subsystem" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_subsystem" 9 "nvme_ctrl_get_subsystem" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_subsystem \- Parent subsystem of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_sysfs_dir" 9 "nvme_ctrl_get_sysfs_dir" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_sysfs_dir" 9 "nvme_ctrl_get_sysfs_dir" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_sysfs_dir \- sysfs directory of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_traddr" 9 "nvme_ctrl_get_traddr" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_traddr" 9 "nvme_ctrl_get_traddr" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_traddr \- Transport address of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_transport" 9 "nvme_ctrl_get_transport" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_transport" 9 "nvme_ctrl_get_transport" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_transport \- Transport type of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_get_trsvcid" 9 "nvme_ctrl_get_trsvcid" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_trsvcid" 9 "nvme_ctrl_get_trsvcid" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_trsvcid \- Transport service identifier of a controller
.SH SYNOPSIS
-.TH "nvme_ctrl_identify" 9 "nvme_ctrl_identify" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_identify" 9 "nvme_ctrl_identify" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_identify \- Issues an 'identify controller' command
.SH SYNOPSIS
-.TH "nvme_ctrl_is_discovered" 9 "nvme_ctrl_is_discovered" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_is_discovered" 9 "nvme_ctrl_is_discovered" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_is_discovered \- Returns the value of the 'discovered' flag
.SH SYNOPSIS
-.TH "nvme_ctrl_is_discovery_ctrl" 9 "nvme_ctrl_is_discovery_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_is_discovery_ctrl" 9 "nvme_ctrl_is_discovery_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_is_discovery_ctrl \- Check the 'discovery_ctrl' flag
.SH SYNOPSIS
-.TH "nvme_ctrl_is_persistent" 9 "nvme_ctrl_is_persistent" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_is_persistent" 9 "nvme_ctrl_is_persistent" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_is_persistent \- Returns the value of the 'persistent' flag
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_ctrl_list" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ctrl_list" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_ctrl_list \-
+struct nvme_ctrl_list \- Controller List
.SH SYNOPSIS
struct nvme_ctrl_list {
.br
-.TH "libnvme" 9 "enum nvme_ctrl_metadata_type" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ctrl_metadata_type" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_ctrl_metadata_type \- Controller Metadata Element Types
.SH SYNOPSIS
.IP "NVME_CTRL_METADATA_CHIPSET_DRV_NAME" 12
Chipset driver name.
.IP "NVME_CTRL_METADATA_CHIPSET_DRV_VERSION" 12
-Chipsset driver version.
+Chipset driver version.
.IP "NVME_CTRL_METADATA_OS_NAME_AND_BUILD" 12
Operating system name and build.
.IP "NVME_CTRL_METADATA_SYS_PROD_NAME" 12
-.TH "nvme_ctrl_next_ns" 9 "nvme_ctrl_next_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_next_ns" 9 "nvme_ctrl_next_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_next_ns \- Next namespace iterator
.SH SYNOPSIS
-.TH "nvme_ctrl_next_path" 9 "nvme_ctrl_next_path" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_next_path" 9 "nvme_ctrl_next_path" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_next_path \- Next path iterator
.SH SYNOPSIS
-.TH "nvme_ctrl_reset" 9 "nvme_ctrl_reset" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_reset" 9 "nvme_ctrl_reset" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_reset \- Initiate a controller reset
.SH SYNOPSIS
-.TH "nvme_ctrl_set_dhchap_key" 9 "nvme_ctrl_set_dhchap_key" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_set_dhchap_key" 9 "nvme_ctrl_set_dhchap_key" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_set_dhchap_key \- Set controller key
.SH SYNOPSIS
-.TH "nvme_ctrl_set_discovered" 9 "nvme_ctrl_set_discovered" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_set_discovered" 9 "nvme_ctrl_set_discovered" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_set_discovered \- Set the 'discovered' flag
.SH SYNOPSIS
-.TH "nvme_ctrl_set_discovery_ctrl" 9 "nvme_ctrl_set_discovery_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_set_discovery_ctrl" 9 "nvme_ctrl_set_discovery_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_set_discovery_ctrl \- Set the 'discovery_ctrl' flag
.SH SYNOPSIS
-.TH "nvme_ctrl_set_persistent" 9 "nvme_ctrl_set_persistent" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrl_set_persistent" 9 "nvme_ctrl_set_persistent" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_set_persistent \- Set the 'persistent' flag
.SH SYNOPSIS
-.TH "nvme_ctrls_filter" 9 "nvme_ctrls_filter" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ctrls_filter" 9 "nvme_ctrls_filter" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ctrls_filter \- Filter for controllers
.SH SYNOPSIS
-.TH "nvme_default_host" 9 "nvme_default_host" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_default_host" 9 "nvme_default_host" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_default_host \- Initializes the default host
.SH SYNOPSIS
-.TH "nvme_dev_self_test" 9 "nvme_dev_self_test" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_dev_self_test" 9 "nvme_dev_self_test" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_dev_self_test \- Start or abort a self test
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_dev_self_test_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_dev_self_test_args \- Arguments for the NVMe Device Self Test command
-.SH SYNOPSIS
-struct nvme_dev_self_test_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_dst_stc stc;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "args_size" 12
-Size of \fIstruct nvme_dev_self_test_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID to test
-.IP "stc" 12
-Self test code, see \fIenum nvme_dst_stc\fP
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_dim_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_dim_args \- Arguments for the Discovery Information Management (DIM) command
-.SH SYNOPSIS
-struct nvme_dim_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " __u8 tas;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-Set on completion to the command's CQE DWORD 0 controller response.
-.IP "data" 12
-Pointer to the DIM data
-.IP "args_size" 12
-Length of the structure
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "data_len" 12
-Length of \fIdata\fP
-.IP "tas" 12
-Task field of the Command Dword 10 (cdw10)
-.TH "libnvme" 9 "enum nvme_directive_dtype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_directive_dtype" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_directive_dtype \-
+enum nvme_directive_dtype \- Directive Types
.SH SYNOPSIS
enum nvme_directive_dtype {
.br
-.TH "libnvme" 9 "enum nvme_directive_receive_doper" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_directive_receive_doper" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_directive_receive_doper \-
+enum nvme_directive_receive_doper \- Directive Receive Directive Operation
.SH SYNOPSIS
enum nvme_directive_receive_doper {
.br
-.TH "nvme_directive_recv" 9 "nvme_directive_recv" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_directive_recv" 9 "nvme_directive_recv" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_directive_recv \- Receive directive specific data
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_directive_recv_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_directive_recv_args \- Arguments for the NVMe Directive Receive command
-.SH SYNOPSIS
-struct nvme_directive_recv_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_directive_receive_doper doper;"
-.br
-.BI " enum nvme_directive_dtype dtype;"
-.br
-.BI " __u32 cdw12;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " __u16 dspec;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-If successful, the CQE dword0 value
-.IP "data" 12
-Usespace address of data payload
-.IP "args_size" 12
-Size of \fIstruct nvme_directive_recv_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID, if applicable
-.IP "doper" 12
-Directive send operation, see \fIenum nvme_directive_send_doper\fP
-.IP "dtype" 12
-Directive type, see \fIenum nvme_directive_dtype\fP
-.IP "cdw12" 12
-Directive specific command dword12
-.IP "data_len" 12
-Length of data payload in bytes
-.IP "dspec" 12
-Directive specific field
-.TH "nvme_directive_recv_identify_parameters" 9 "nvme_directive_recv_identify_parameters" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_directive_recv_identify_parameters" 9 "nvme_directive_recv_identify_parameters" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_directive_recv_identify_parameters \-
+nvme_directive_recv_identify_parameters \- Directive receive identifier parameters
.SH SYNOPSIS
.B "int" nvme_directive_recv_identify_parameters
.BI "(int fd " ","
-.TH "nvme_directive_recv_stream_allocate" 9 "nvme_directive_recv_stream_allocate" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_directive_recv_stream_allocate" 9 "nvme_directive_recv_stream_allocate" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_directive_recv_stream_allocate \-
+nvme_directive_recv_stream_allocate \- Directive receive stream allocate
.SH SYNOPSIS
.B "int" nvme_directive_recv_stream_allocate
.BI "(int fd " ","
-.TH "nvme_directive_recv_stream_parameters" 9 "nvme_directive_recv_stream_parameters" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_directive_recv_stream_parameters" 9 "nvme_directive_recv_stream_parameters" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_directive_recv_stream_parameters \-
+nvme_directive_recv_stream_parameters \- Directive receive stream parameters
.SH SYNOPSIS
.B "int" nvme_directive_recv_stream_parameters
.BI "(int fd " ","
-.TH "nvme_directive_recv_stream_status" 9 "nvme_directive_recv_stream_status" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_directive_recv_stream_status" 9 "nvme_directive_recv_stream_status" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_directive_recv_stream_status \-
+nvme_directive_recv_stream_status \- Directive receive stream status
.SH SYNOPSIS
.B "int" nvme_directive_recv_stream_status
.BI "(int fd " ","
.BI "__u32 nsid " ","
-.BI "unsigned nr_entries " ","
+.BI "unsigned int nr_entries " ","
.BI "struct nvme_streams_directive_status *id " ");"
.SH ARGUMENTS
.IP "fd" 12
-.TH "nvme_directive_send" 9 "nvme_directive_send" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_directive_send" 9 "nvme_directive_send" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_directive_send \- Send directive command
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_directive_send_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_directive_send_args \- Arguments for the NVMe Directive Send command
-.SH SYNOPSIS
-struct nvme_directive_send_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_directive_send_doper doper;"
-.br
-.BI " enum nvme_directive_dtype dtype;"
-.br
-.BI " __u32 cdw12;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " __u16 dspec;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-If successful, the CQE dword0 value
-.IP "data" 12
-Data payload to to be send
-.IP "args_size" 12
-Size of \fIstruct nvme_directive_send_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID, if applicable
-.IP "doper" 12
-Directive send operation, see \fIenum nvme_directive_send_doper\fP
-.IP "dtype" 12
-Directive type, see \fIenum nvme_directive_dtype\fP
-.IP "cdw12" 12
-Directive specific command dword12
-.IP "data_len" 12
-Length of data payload in bytes
-.IP "dspec" 12
-Directive specific field
-.TH "libnvme" 9 "enum nvme_directive_send_doper" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_directive_send_doper" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_directive_send_doper \-
+enum nvme_directive_send_doper \- Directive Send Directive Operation
.SH SYNOPSIS
enum nvme_directive_send_doper {
.br
-.TH "nvme_directive_send_id_endir" 9 "nvme_directive_send_id_endir" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_directive_send_id_endir" 9 "nvme_directive_send_id_endir" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_directive_send_id_endir \-
+nvme_directive_send_id_endir \- Directive Send Enable Directive
.SH SYNOPSIS
.B "int" nvme_directive_send_id_endir
.BI "(int fd " ","
-.TH "libnvme" 9 "enum nvme_directive_send_identify_endir" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_directive_send_identify_endir" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_directive_send_identify_endir \-
+enum nvme_directive_send_identify_endir \- Enable Directive
.SH SYNOPSIS
enum nvme_directive_send_identify_endir {
.br
-.TH "nvme_directive_send_stream_release_identifier" 9 "nvme_directive_send_stream_release_identifier" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_directive_send_stream_release_identifier" 9 "nvme_directive_send_stream_release_identifier" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_directive_send_stream_release_identifier \-
+nvme_directive_send_stream_release_identifier \- Directive Send Stream release
.SH SYNOPSIS
.B "int" nvme_directive_send_stream_release_identifier
.BI "(int fd " ","
-.TH "nvme_directive_send_stream_release_resource" 9 "nvme_directive_send_stream_release_resource" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_directive_send_stream_release_resource" 9 "nvme_directive_send_stream_release_resource" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_directive_send_stream_release_resource \-
+nvme_directive_send_stream_release_resource \- Directive Send Stream release resources
.SH SYNOPSIS
.B "int" nvme_directive_send_stream_release_resource
.BI "(int fd " ","
-.TH "libnvme" 9 "enum nvme_directive_types" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_directive_types" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_directive_types \-
+enum nvme_directive_types \- Directives Supported or Enabled
.SH SYNOPSIS
enum nvme_directive_types {
.br
-.TH "nvme_disconnect_ctrl" 9 "nvme_disconnect_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_disconnect_ctrl" 9 "nvme_disconnect_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_disconnect_ctrl \- Disconnect a controller
.SH SYNOPSIS
-.TH "nvme_dsm" 9 "nvme_dsm" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_dsm" 9 "nvme_dsm" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_dsm \- Send an nvme data set management command
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_dsm_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_dsm_args \- Arguments for the NVMe Dataset Management command
-.SH SYNOPSIS
-struct nvme_dsm_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " struct nvme_dsm_range *dsm;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " __u32 attrs;"
-.br
-.BI " __u16 nr_ranges;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "dsm" 12
-The data set management attributes
-.IP "args_size" 12
-Size of \fIstruct nvme_dsm_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace identifier
-.IP "attrs" 12
-DSM attributes, see \fIenum nvme_dsm_attributes\fP
-.IP "nr_ranges" 12
-Number of block ranges in the data set management attributes
-.TH "libnvme" 9 "enum nvme_dsm_attributes" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_dsm_attributes" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_dsm_attributes \-
+enum nvme_dsm_attributes \- Dataset Management attributes
.SH SYNOPSIS
enum nvme_dsm_attributes {
.br
};
.SH Constants
.IP "NVME_DSMGMT_IDR" 12
-Attribute – Integral Dataset for Read
+Attribute -Integral Dataset for Read
.IP "NVME_DSMGMT_IDW" 12
-Attribute – Integral Dataset for Write
+Attribute - Integral Dataset for Write
.IP "NVME_DSMGMT_AD" 12
-Attribute – Deallocate
+Attribute - Deallocate
-.TH "libnvme" 9 "struct nvme_dsm_range" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_dsm_range" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_dsm_range \-
+struct nvme_dsm_range \- Dataset Management - Range Definition
.SH SYNOPSIS
struct nvme_dsm_range {
.br
-.TH "libnvme" 9 "enum nvme_dst_stc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_dst_stc" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_dst_stc \- Action taken by the Device Self-test command
.SH SYNOPSIS
-.TH "nvme_dump_config" 9 "nvme_dump_config" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_dump_config" 9 "nvme_dump_config" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_dump_config \- Print the JSON configuration
.SH SYNOPSIS
-.TH "nvme_dump_tree" 9 "nvme_dump_tree" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_dump_tree" 9 "nvme_dump_tree" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_dump_tree \- Dump internal object tree
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_eg_critical_warning_flags" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_eg_critical_warning_flags" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_eg_critical_warning_flags \-
+enum nvme_eg_critical_warning_flags \- Endurance Group Information Log - Critical Warning
.SH SYNOPSIS
enum nvme_eg_critical_warning_flags {
.br
};
.SH Constants
.IP "NVME_EG_CRITICAL_WARNING_SPARE" 12
+Available spare capacity of the Endurance Group
+has fallen below the threshold
.IP "NVME_EG_CRITICAL_WARNING_DEGRADED" 12
+Endurance Group reliability has been degraded
.IP "NVME_EG_CRITICAL_WARNING_READ_ONLY" 12
+Endurance Group have been placed in read only
+mode
-.TH "libnvme" 9 "struct nvme_eg_event_aggregate_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_eg_event_aggregate_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_eg_event_aggregate_log \-
+struct nvme_eg_event_aggregate_log \- Endurance Group Event Aggregate
.SH SYNOPSIS
struct nvme_eg_event_aggregate_log {
.br
-.TH "libnvme" 9 "struct nvme_end_grp_chan_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_end_grp_chan_desc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_end_grp_chan_desc \-
+struct nvme_end_grp_chan_desc \- Endurance Group Channel Configuration Descriptor
.SH SYNOPSIS
struct nvme_end_grp_chan_desc {
.br
.SH Members
.IP "egchans" 12
Number of Channels
-.SH "Description"
-Endurance group Channel Configuration Descriptor
-Structure Definitions
+.IP "chan_config_desc" 12
+Channel config descriptors.
+See \fIstruct\fP nvme_channel_config_desc
-.TH "libnvme" 9 "struct nvme_end_grp_config_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_end_grp_config_desc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_end_grp_config_desc \-
+struct nvme_end_grp_config_desc \- Endurance Group Configuration Descriptor
.SH SYNOPSIS
struct nvme_end_grp_config_desc {
.br
Endurance Group Identifier
.IP "cap_adj_factor" 12
Capacity Adjustment Factor
+.IP "rsvd4" 12
+Reserved
.IP "tegcap" 12
Total Endurance Group Capacity
.IP "segcap" 12
Spare Endurance Group Capacity
.IP "end_est" 12
Endurance Estimate
+.IP "rsvd64" 12
+Reserved
.IP "egsets" 12
Number of NVM Sets
.IP "nvmsetid" 12
NVM Set Identifier
-.SH "Description"
-Endurance Group Configuration Descriptor
-Structure Definitions
-.TH "libnvme" 9 "struct nvme_endurance_group_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_endurance_group_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_endurance_group_log \-
+struct nvme_endurance_group_log \- Endurance Group Information Log
.SH SYNOPSIS
struct nvme_endurance_group_log {
.br
+++ /dev/null
-.TH "libnvme" 9 "enum nvme_err_pel" "April 2022" "API Manual" LINUX
-.SH NAME
-enum nvme_err_pel \-
-.SH SYNOPSIS
-enum nvme_err_pel {
-.br
-.BI " NVME_ERR_PEL_BYTE_MASK"
-,
-.br
-.br
-.BI " NVME_ERR_PEL_BIT_MASK"
-
-};
-.SH Constants
-.IP "NVME_ERR_PEL_BYTE_MASK" 12
-.IP "NVME_ERR_PEL_BIT_MASK" 12
-.TH "nvme_errno_to_string" 9 "nvme_errno_to_string" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_errno_to_string" 9 "nvme_errno_to_string" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_errno_to_string \- Returns string describing nvme connect failures
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_error_log_page" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_error_log_page" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_error_log_page \- Error Information Log Entry (Log Identifier 01h)
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_fabrics_config" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fabrics_config" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_fabrics_config \- Defines all linux nvme fabrics initiator options
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_fctype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fctype" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_fctype \-
+enum nvme_fctype \- Fabrics Command Types
.SH SYNOPSIS
enum nvme_fctype {
.br
-.TH "libnvme" 9 "enum nvme_feat" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_feat" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_feat \-
+enum nvme_feat \- Features Access Shifts/Masks values
.SH SYNOPSIS
enum nvme_feat {
.br
-.TH "libnvme" 9 "struct nvme_feat_auto_pst" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_feat_auto_pst" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_feat_auto_pst \-
+struct nvme_feat_auto_pst \- Autonomous Power State Transition
.SH SYNOPSIS
struct nvme_feat_auto_pst {
.br
-.TH "libnvme" 9 "struct nvme_feat_host_behavior" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_feat_host_behavior" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_feat_host_behavior \-
+struct nvme_feat_host_behavior \- Host Behavior Support - Data Structure
.SH SYNOPSIS
struct nvme_feat_host_behavior {
.br
-.TH "libnvme" 9 "enum nvme_feat_nswpcfg_state" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_feat_nswpcfg_state" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_feat_nswpcfg_state \-
+enum nvme_feat_nswpcfg_state \- Write Protection - Write Protection State
.SH SYNOPSIS
enum nvme_feat_nswpcfg_state {
.br
-.TH "libnvme" 9 "enum nvme_feat_plm_window_select" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_feat_plm_window_select" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_feat_plm_window_select \-
+enum nvme_feat_plm_window_select \- Predictable Latency Per NVM Set Log
.SH SYNOPSIS
enum nvme_feat_plm_window_select {
.br
-.TH "libnvme" 9 "enum nvme_feat_resv_notify_flags" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_feat_resv_notify_flags" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_feat_resv_notify_flags \-
+enum nvme_feat_resv_notify_flags \- Reservation Notification Configuration
.SH SYNOPSIS
enum nvme_feat_resv_notify_flags {
.br
-.TH "libnvme" 9 "enum nvme_feat_tmpthresh_thsel" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_feat_tmpthresh_thsel" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_feat_tmpthresh_thsel \-
+enum nvme_feat_tmpthresh_thsel \- Temperature Threshold - Threshold Type Select
.SH SYNOPSIS
enum nvme_feat_tmpthresh_thsel {
.br
-.TH "libnvme" 9 "enum nvme_features_async_event_config_flags" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_features_async_event_config_flags" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_features_async_event_config_flags \-
+enum nvme_features_async_event_config_flags \- Asynchronous Event Configuration configuration flags
.SH SYNOPSIS
enum nvme_features_async_event_config_flags {
.br
-.TH "libnvme" 9 "enum nvme_features_id" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_features_id" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_features_id \-
+enum nvme_features_id \- Features - Feature Identifiers
.SH SYNOPSIS
enum nvme_features_id {
.br
-.TH "libnvme" 9 "enum nvme_fid_supported_effects" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fid_supported_effects" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_fid_supported_effects \-
+enum nvme_fid_supported_effects \- FID Supported and Effects Data Structure definitions
.SH SYNOPSIS
enum nvme_fid_supported_effects {
.br
};
.SH Constants
.IP "NVME_FID_SUPPORTED_EFFECTS_FSUPP" 12
+FID Supported
.IP "NVME_FID_SUPPORTED_EFFECTS_UDCC" 12
+User Data Content Change
.IP "NVME_FID_SUPPORTED_EFFECTS_NCC" 12
+Namespace Capability Change
.IP "NVME_FID_SUPPORTED_EFFECTS_NIC" 12
+Namespace Inventory Change
.IP "NVME_FID_SUPPORTED_EFFECTS_CCC" 12
+Controller Capability Change
.IP "NVME_FID_SUPPORTED_EFFECTS_UUID_SEL" 12
+UUID Selection Supported
.IP "NVME_FID_SUPPORTED_EFFECTS_SCOPE_SHIFT" 12
+FID Scope Shift
.IP "NVME_FID_SUPPORTED_EFFECTS_SCOPE_MASK" 12
+FID Scope Mask
.IP "NVME_FID_SUPPORTED_EFFECTS_SCOPE_NS" 12
+Namespace Scope
.IP "NVME_FID_SUPPORTED_EFFECTS_SCOPE_CTRL" 12
+Controller Scope
.IP "NVME_FID_SUPPORTED_EFFECTS_SCOPE_NVM_SET" 12
+NVM Set Scope
.IP "NVME_FID_SUPPORTED_EFFECTS_SCOPE_ENDGRP" 12
+Endurance Group Scope
.IP "NVME_FID_SUPPORTED_EFFECTS_SCOPE_DOMAIN" 12
+Domain Scope
.IP "NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS" 12
-.SH "Description"
-FID Supported and Effects Data Structure definitions
+NVM Subsystem Scope
-.TH "libnvme" 9 "struct nvme_fid_supported_effects_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fid_supported_effects_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_fid_supported_effects_log \-
+struct nvme_fid_supported_effects_log \- Feature Identifiers Supported and Effects
.SH SYNOPSIS
struct nvme_fid_supported_effects_log {
.br
.SH Members
.IP "fid_support" 12
Feature Identifier Supported
-.SH "Description"
-Feature Identifiers Supported and Effects (Log Identifier 12h)
-.TH "libnvme" 9 "struct nvme_firmware_slot" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_firmware_slot" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_firmware_slot \-
+struct nvme_firmware_slot \- Firmware Slot Information Log
.SH SYNOPSIS
struct nvme_firmware_slot {
.br
-.TH "nvme_first_host" 9 "nvme_first_host" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_first_host" 9 "nvme_first_host" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_first_host \- Start host iterator
.SH SYNOPSIS
-.TH "nvme_first_subsystem" 9 "nvme_first_subsystem" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_first_subsystem" 9 "nvme_first_subsystem" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_first_subsystem \- Start subsystem iterator
.SH SYNOPSIS
-.TH "nvme_flush" 9 "nvme_flush" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_flush" 9 "nvme_flush" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_flush \- Send an nvme flush command
.SH SYNOPSIS
-.TH "nvme_for_each_host" 9 "nvme_for_each_host" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_for_each_host" 9 "nvme_for_each_host" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_for_each_host \- Traverse host list
.SH SYNOPSIS
-.TH "nvme_for_each_host_safe" 9 "nvme_for_each_host_safe" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_for_each_host_safe" 9 "nvme_for_each_host_safe" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_for_each_host_safe \- Traverse host list
.SH SYNOPSIS
-.TH "nvme_for_each_subsystem" 9 "nvme_for_each_subsystem" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_for_each_subsystem" 9 "nvme_for_each_subsystem" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_for_each_subsystem \- Traverse subsystems
.SH SYNOPSIS
-.TH "nvme_for_each_subsystem_safe" 9 "nvme_for_each_subsystem_safe" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_for_each_subsystem_safe" 9 "nvme_for_each_subsystem_safe" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_for_each_subsystem_safe \- Traverse subsystems
.SH SYNOPSIS
-.TH "nvme_format_nvm" 9 "nvme_format_nvm" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_format_nvm" 9 "nvme_format_nvm" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_format_nvm \- Format nvme namespace(s)
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_format_nvm_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_format_nvm_args \- Arguments for the Format Nvme Namespace command
-.SH SYNOPSIS
-struct nvme_format_nvm_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_cmd_format_mset mset;"
-.br
-.BI " enum nvme_cmd_format_pi pi;"
-.br
-.BI " enum nvme_cmd_format_pil pil;"
-.br
-.BI " enum nvme_cmd_format_ses ses;"
-.br
-.BI " __u8 lbaf;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "args_size" 12
-Size of \fIstruct nvme_format_nvm_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Set to override default timeout to this value in milliseconds;
-useful for long running formats. 0 will use system default.
-.IP "nsid" 12
-Namespace ID to format
-.IP "mset" 12
-Metadata settings (extended or separated), true if extended
-.IP "pi" 12
-Protection information type
-.IP "pil" 12
-Protection information location (beginning or end), true if end
-.IP "ses" 12
-Secure erase settings
-.IP "lbaf" 12
-Logical block address format
-.TH "libnvme" 9 "struct nvme_format_nvm_compln_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_format_nvm_compln_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_format_nvm_compln_event \-
+struct nvme_format_nvm_compln_event \- Format NVM Completion Event Data
.SH SYNOPSIS
struct nvme_format_nvm_compln_event {
.br
-.TH "libnvme" 9 "struct nvme_format_nvm_start_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_format_nvm_start_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_format_nvm_start_event \-
+struct nvme_format_nvm_start_event \- Format NVM Start Event Data
.SH SYNOPSIS
struct nvme_format_nvm_start_event {
.br
-.TH "nvme_free_ctrl" 9 "nvme_free_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_free_ctrl" 9 "nvme_free_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_free_ctrl \- Free controller
.SH SYNOPSIS
-.TH "nvme_free_host" 9 "nvme_free_host" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_free_host" 9 "nvme_free_host" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_free_host \- Free nvme_host_t object
.SH SYNOPSIS
-.TH "nvme_free_ns" 9 "nvme_free_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_free_ns" 9 "nvme_free_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_free_ns \- Free a namespace object
.SH SYNOPSIS
-.TH "nvme_free_subsystem" 9 "nvme_free_subsystem" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_free_subsystem" 9 "nvme_free_subsystem" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_free_subsystem \- Free a subsystem
.SH SYNOPSIS
-.TH "nvme_free_tree" 9 "nvme_free_tree" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_free_tree" 9 "nvme_free_tree" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_free_tree \- Free root object
.SH SYNOPSIS
-.TH "nvme_fw_commit" 9 "nvme_fw_commit" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_fw_commit" 9 "nvme_fw_commit" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_fw_commit \- Commit firmware using the specified action
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_fw_commit_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_fw_commit_args \- Arguments for the NVMe Firmware Commit command
-.SH SYNOPSIS
-struct nvme_fw_commit_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " enum nvme_fw_commit_ca action;"
-.br
-.BI " __u8 slot;"
-.br
-.BI " bool bpid;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "args_size" 12
-Size of \fIstruct nvme_fw_commit_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "action" 12
-Action to use for the firmware image, see \fIenum nvme_fw_commit_ca\fP
-.IP "slot" 12
-Firmware slot to commit the downloaded image
-.IP "bpid" 12
-Set to true to select the boot partition id
-.TH "libnvme" 9 "enum nvme_fw_commit_ca" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fw_commit_ca" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_fw_commit_ca \-
+enum nvme_fw_commit_ca \- Firmware Commit - Commit Action
.SH SYNOPSIS
enum nvme_fw_commit_ca {
.br
Partition ID field.
.IP "NVME_FW_COMMIT_CA_ACTIVATE_BOOT_PARTITION" 12
Mark the Boot Partition specified in
-the BPID field as active and update
+the BPID field as active and update
BPINFO.ABPID.
-.TH "libnvme" 9 "struct nvme_fw_commit_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fw_commit_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_fw_commit_event \-
+struct nvme_fw_commit_event \- Firmware Commit Event Data
.SH SYNOPSIS
struct nvme_fw_commit_event {
.br
-.TH "nvme_fw_download" 9 "nvme_fw_download" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_fw_download" 9 "nvme_fw_download" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_fw_download \- Download part or all of a firmware image to the controller
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_fw_download_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_fw_download_args \- Arguments for the NVMe Firmware Download command
-.SH SYNOPSIS
-struct nvme_fw_download_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 offset;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "data" 12
-Userspace address of the firmware data
-.IP "args_size" 12
-Size of \fIstruct nvme_fw_download_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "offset" 12
-Offset in the firmware data
-.IP "data_len" 12
-Length of data in this command in bytes
-.TH "nvme_fw_download_seq" 9 "nvme_fw_download_seq" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_fw_download_seq" 9 "nvme_fw_download_seq" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_fw_download_seq \- Firmware download sequence
.SH SYNOPSIS
.IP "xfer" 12
Maximum size to send with each partial transfer
.IP "offset" 12
-Starting offset to send with this firmware downlaod
+Starting offset to send with this firmware download
.IP "buf" 12
Address of buffer containing all or part of the firmware image.
.SH "RETURN"
-.TH "nvme_gen_dhchap_key" 9 "nvme_gen_dhchap_key" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_gen_dhchap_key" 9 "nvme_gen_dhchap_key" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_gen_dhchap_key \- DH-HMAC-CHAP key generation
.SH SYNOPSIS
-.TH "nvme_get_ana_log_len" 9 "nvme_get_ana_log_len" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_ana_log_len" 9 "nvme_get_ana_log_len" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_ana_log_len \- Retreive size of the current ANA log
+nvme_get_ana_log_len \- Retrieve size of the current ANA log
.SH SYNOPSIS
.B "int" nvme_get_ana_log_len
.BI "(int fd " ","
-.TH "nvme_get_attr" 9 "nvme_get_attr" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_attr" 9 "nvme_get_attr" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_attr \- Read sysfs attribute
.SH SYNOPSIS
-.TH "nvme_get_ctrl_attr" 9 "nvme_get_ctrl_attr" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_ctrl_attr" 9 "nvme_get_ctrl_attr" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_ctrl_attr \- Read controller sysfs attribute
.SH SYNOPSIS
-.TH "nvme_get_ctrl_telemetry" 9 "nvme_get_ctrl_telemetry" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_ctrl_telemetry" 9 "nvme_get_ctrl_telemetry" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_ctrl_telemetry \- Get controller telemetry log
.SH SYNOPSIS
-.TH "nvme_get_directive_receive_length" 9 "nvme_get_directive_receive_length" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_directive_receive_length" 9 "nvme_get_directive_receive_length" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_directive_receive_length \-
+nvme_get_directive_receive_length \- Get directive receive length
.SH SYNOPSIS
.B "int" nvme_get_directive_receive_length
.BI "(enum nvme_directive_dtype dtype " ","
-.TH "nvme_get_feature_length" 9 "nvme_get_feature_length" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_feature_length" 9 "nvme_get_feature_length" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_feature_length \- Retreive the command payload length for a specific feature identifier
.SH SYNOPSIS
-.TH "nvme_get_features" 9 "nvme_get_features" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features" 9 "nvme_get_features" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_features \- Retrieve a feature attribute
.SH SYNOPSIS
-.TH "nvme_get_features_arbitration" 9 "nvme_get_features_arbitration" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_arbitration" 9 "nvme_get_features_arbitration" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_arbitration \-
+nvme_get_features_arbitration \- Get arbitration feature
.SH SYNOPSIS
.B "int" nvme_get_features_arbitration
.BI "(int fd " ","
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_get_features_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_get_features_args \- Arguments for the NVMe Admin Get Feature command
-.SH SYNOPSIS
-struct nvme_get_features_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_get_features_sel sel;"
-.br
-.BI " __u32 cdw11;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " __u8 fid;"
-.br
-.BI " __u8 uuidx;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "data" 12
-User address of feature data, if applicable
-.IP "args_size" 12
-Size of \fIstruct nvme_get_features_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID, if applicable
-.IP "sel" 12
-Select which type of attribute to return,
-see \fIenum nvme_get_features_sel\fP
-.IP "cdw11" 12
-Feature specific command dword11 field
-.IP "data_len" 12
-Length of feature data, if applicable, in bytes
-.IP "fid" 12
-Feature identifier, see \fIenum nvme_features_id\fP
-.IP "uuidx" 12
-UUID Index for differentiating vendor specific encoding
-.TH "nvme_get_features_async_event" 9 "nvme_get_features_async_event" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_async_event" 9 "nvme_get_features_async_event" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_async_event \-
+nvme_get_features_async_event \- Get asynchronous event feature
.SH SYNOPSIS
.B "int" nvme_get_features_async_event
.BI "(int fd " ","
-.TH "nvme_get_features_auto_pst" 9 "nvme_get_features_auto_pst" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_auto_pst" 9 "nvme_get_features_auto_pst" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_auto_pst \-
+nvme_get_features_auto_pst \- Get autonomous power state feature
.SH SYNOPSIS
.B "int" nvme_get_features_auto_pst
.BI "(int fd " ","
-.TH "nvme_get_features_data" 9 "nvme_get_features_data" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_data" 9 "nvme_get_features_data" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_features_data \- Helper function for @nvme_get_features()
.SH SYNOPSIS
User address of feature data, if applicable
.IP "result" 12
The command completion result from CQE dword0
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_get_features_endurance_event_cfg" 9 "nvme_get_features_endurance_event_cfg" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_endurance_event_cfg" 9 "nvme_get_features_endurance_event_cfg" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_endurance_event_cfg \-
+nvme_get_features_endurance_event_cfg \- Get endurance event config feature
.SH SYNOPSIS
.B "int" nvme_get_features_endurance_event_cfg
.BI "(int fd " ","
-.TH "nvme_get_features_err_recovery" 9 "nvme_get_features_err_recovery" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_err_recovery" 9 "nvme_get_features_err_recovery" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_err_recovery \-
+nvme_get_features_err_recovery \- Get error recovery feature
.SH SYNOPSIS
.B "int" nvme_get_features_err_recovery
.BI "(int fd " ","
-.TH "nvme_get_features_hctm" 9 "nvme_get_features_hctm" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_hctm" 9 "nvme_get_features_hctm" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_hctm \-
+nvme_get_features_hctm \- Get thermal management feature
.SH SYNOPSIS
.B "int" nvme_get_features_hctm
.BI "(int fd " ","
-.TH "nvme_get_features_host_behavior" 9 "nvme_get_features_host_behavior" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_host_behavior" 9 "nvme_get_features_host_behavior" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_host_behavior \-
+nvme_get_features_host_behavior \- Get host behavior feature
.SH SYNOPSIS
.B "int" nvme_get_features_host_behavior
.BI "(int fd " ","
.IP "sel" 12
Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
.IP "data" 12
-Poniter to structure nvme_feat_host_behavior
+Pointer to structure nvme_feat_host_behavior
.IP "result" 12
The command completion result from CQE dword0
.SH "RETURN"
-.TH "nvme_get_features_host_id" 9 "nvme_get_features_host_id" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_host_id" 9 "nvme_get_features_host_id" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_host_id \-
+nvme_get_features_host_id \- Get host id feature
.SH SYNOPSIS
.B "int" nvme_get_features_host_id
.BI "(int fd " ","
-.TH "nvme_get_features_host_mem_buf" 9 "nvme_get_features_host_mem_buf" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_host_mem_buf" 9 "nvme_get_features_host_mem_buf" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_host_mem_buf \-
+nvme_get_features_host_mem_buf \- Get host memory buffer feature
.SH SYNOPSIS
.B "int" nvme_get_features_host_mem_buf
.BI "(int fd " ","
-.TH "nvme_get_features_iocs_profile" 9 "nvme_get_features_iocs_profile" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_iocs_profile" 9 "nvme_get_features_iocs_profile" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_iocs_profile \-
+nvme_get_features_iocs_profile \- Get IOCS profile feature
.SH SYNOPSIS
.B "int" nvme_get_features_iocs_profile
.BI "(int fd " ","
-.TH "nvme_get_features_irq_coalesce" 9 "nvme_get_features_irq_coalesce" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_irq_coalesce" 9 "nvme_get_features_irq_coalesce" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_irq_coalesce \-
+nvme_get_features_irq_coalesce \- Get IRQ coalesce feature
.SH SYNOPSIS
.B "int" nvme_get_features_irq_coalesce
.BI "(int fd " ","
-.TH "nvme_get_features_irq_config" 9 "nvme_get_features_irq_config" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_irq_config" 9 "nvme_get_features_irq_config" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_irq_config \-
+nvme_get_features_irq_config \- Get IRQ config feature
.SH SYNOPSIS
.B "int" nvme_get_features_irq_config
.BI "(int fd " ","
-.TH "nvme_get_features_kato" 9 "nvme_get_features_kato" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_kato" 9 "nvme_get_features_kato" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_kato \-
+nvme_get_features_kato \- Get keep alive timeout feature
.SH SYNOPSIS
.B "int" nvme_get_features_kato
.BI "(int fd " ","
-.TH "nvme_get_features_lba_range" 9 "nvme_get_features_lba_range" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_lba_range" 9 "nvme_get_features_lba_range" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_lba_range \-
+nvme_get_features_lba_range \- Get LBA range feature
.SH SYNOPSIS
.B "int" nvme_get_features_lba_range
.BI "(int fd " ","
-.TH "nvme_get_features_lba_sts_interval" 9 "nvme_get_features_lba_sts_interval" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_lba_sts_interval" 9 "nvme_get_features_lba_sts_interval" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_lba_sts_interval \-
+nvme_get_features_lba_sts_interval \- Get LBA status information feature
.SH SYNOPSIS
.B "int" nvme_get_features_lba_sts_interval
.BI "(int fd " ","
-.TH "nvme_get_features_nopsc" 9 "nvme_get_features_nopsc" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_nopsc" 9 "nvme_get_features_nopsc" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_nopsc \-
+nvme_get_features_nopsc \- Get non-operational power state feature
.SH SYNOPSIS
.B "int" nvme_get_features_nopsc
.BI "(int fd " ","
-.TH "nvme_get_features_num_queues" 9 "nvme_get_features_num_queues" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_num_queues" 9 "nvme_get_features_num_queues" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_num_queues \-
+nvme_get_features_num_queues \- Get number of queues feature
.SH SYNOPSIS
.B "int" nvme_get_features_num_queues
.BI "(int fd " ","
-.TH "nvme_get_features_plm_config" 9 "nvme_get_features_plm_config" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_plm_config" 9 "nvme_get_features_plm_config" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_plm_config \-
+nvme_get_features_plm_config \- Get predictable latency feature
.SH SYNOPSIS
.B "int" nvme_get_features_plm_config
.BI "(int fd " ","
-.TH "nvme_get_features_plm_window" 9 "nvme_get_features_plm_window" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_plm_window" 9 "nvme_get_features_plm_window" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_plm_window \-
+nvme_get_features_plm_window \- Get window select feature
.SH SYNOPSIS
.B "int" nvme_get_features_plm_window
.BI "(int fd " ","
-.TH "nvme_get_features_power_mgmt" 9 "nvme_get_features_power_mgmt" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_power_mgmt" 9 "nvme_get_features_power_mgmt" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_power_mgmt \-
+nvme_get_features_power_mgmt \- Get power management feature
.SH SYNOPSIS
.B "int" nvme_get_features_power_mgmt
.BI "(int fd " ","
-.TH "nvme_get_features_resv_mask" 9 "nvme_get_features_resv_mask" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_resv_mask" 9 "nvme_get_features_resv_mask" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_resv_mask \-
+nvme_get_features_resv_mask \- Get reservation mask feature
.SH SYNOPSIS
.B "int" nvme_get_features_resv_mask
.BI "(int fd " ","
-.TH "nvme_get_features_resv_persist" 9 "nvme_get_features_resv_persist" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_resv_persist" 9 "nvme_get_features_resv_persist" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_resv_persist \-
+nvme_get_features_resv_persist \- Get reservation persist feature
.SH SYNOPSIS
.B "int" nvme_get_features_resv_persist
.BI "(int fd " ","
-.TH "nvme_get_features_rrl" 9 "nvme_get_features_rrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_rrl" 9 "nvme_get_features_rrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_rrl \-
+nvme_get_features_rrl \- Get read recovery level feature
.SH SYNOPSIS
.B "int" nvme_get_features_rrl
.BI "(int fd " ","
-.TH "nvme_get_features_sanitize" 9 "nvme_get_features_sanitize" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_sanitize" 9 "nvme_get_features_sanitize" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_sanitize \-
+nvme_get_features_sanitize \- Get sanitize feature
.SH SYNOPSIS
.B "int" nvme_get_features_sanitize
.BI "(int fd " ","
-.TH "libnvme" 9 "enum nvme_get_features_sel" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_get_features_sel" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_get_features_sel \-
+enum nvme_get_features_sel \- Get Features - Select
.SH SYNOPSIS
enum nvme_get_features_sel {
.br
-.TH "nvme_get_features_simple" 9 "nvme_get_features_simple" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_simple" 9 "nvme_get_features_simple" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_features_simple \- Helper function for @nvme_get_features()
.SH SYNOPSIS
Namespace ID, if applicable
.IP "result" 12
The command completion result from CQE dword0
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_get_features_sw_progress" 9 "nvme_get_features_sw_progress" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_sw_progress" 9 "nvme_get_features_sw_progress" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_sw_progress \-
+nvme_get_features_sw_progress \- Get software progress feature
.SH SYNOPSIS
.B "int" nvme_get_features_sw_progress
.BI "(int fd " ","
-.TH "nvme_get_features_temp_thresh" 9 "nvme_get_features_temp_thresh" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_temp_thresh" 9 "nvme_get_features_temp_thresh" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_temp_thresh \-
+nvme_get_features_temp_thresh \- Get temperature threshold feature
.SH SYNOPSIS
.B "int" nvme_get_features_temp_thresh
.BI "(int fd " ","
-.TH "nvme_get_features_timestamp" 9 "nvme_get_features_timestamp" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_timestamp" 9 "nvme_get_features_timestamp" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_timestamp \-
+nvme_get_features_timestamp \- Get timestamp feature
.SH SYNOPSIS
.B "int" nvme_get_features_timestamp
.BI "(int fd " ","
-.TH "nvme_get_features_volatile_wc" 9 "nvme_get_features_volatile_wc" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_volatile_wc" 9 "nvme_get_features_volatile_wc" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_volatile_wc \-
+nvme_get_features_volatile_wc \- Get volatile write cache feature
.SH SYNOPSIS
.B "int" nvme_get_features_volatile_wc
.BI "(int fd " ","
-.TH "nvme_get_features_write_atomic" 9 "nvme_get_features_write_atomic" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_write_atomic" 9 "nvme_get_features_write_atomic" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_write_atomic \-
+nvme_get_features_write_atomic \- Get write atomic feature
.SH SYNOPSIS
.B "int" nvme_get_features_write_atomic
.BI "(int fd " ","
-.TH "nvme_get_features_write_protect" 9 "nvme_get_features_write_protect" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_features_write_protect" 9 "nvme_get_features_write_protect" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_features_write_protect \-
+nvme_get_features_write_protect \- Get write protect feature
.SH SYNOPSIS
.B "int" nvme_get_features_write_protect
.BI "(int fd " ","
-.TH "nvme_get_host_telemetry" 9 "nvme_get_host_telemetry" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_host_telemetry" 9 "nvme_get_host_telemetry" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_host_telemetry \- Get host telemetry log
.SH SYNOPSIS
-.TH "nvme_get_lba_status" 9 "nvme_get_lba_status" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_lba_status" 9 "nvme_get_lba_status" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_lba_status \- Retrieve information on possibly unrecoverable LBAs
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_get_lba_status_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_get_lba_status_args \- Arguments for the NVMe Get LBA Status command
-.SH SYNOPSIS
-struct nvme_get_lba_status_args {
-.br
-.BI " __u64 slba;"
-.br
-.BI " __u32 *result;"
-.br
-.BI " struct nvme_lba_status *lbas;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " __u32 mndw;"
-.br
-.BI " enum nvme_lba_status_atype atype;"
-.br
-.BI " __u16 rl;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "slba" 12
-Starting logical block address to check statuses
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "lbas" 12
-Data payload to return status descriptors
-.IP "args_size" 12
-Size of \fIstruct nvme_get_lba_status_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID to retrieve LBA status
-.IP "mndw" 12
-Maximum number of dwords to return
-.IP "atype" 12
-Action type mechanism to determine LBA status desctriptors to
-return, see \fIenum nvme_lba_status_atype\fP
-.IP "rl" 12
-Range length from slba to perform the action
-.TH "nvme_get_lba_status_log" 9 "nvme_get_lba_status_log" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_lba_status_log" 9 "nvme_get_lba_status_log" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_lba_status_log \- Retreive the LBA Status log page
+nvme_get_lba_status_log \- Retrieve the LBA Status log page
.SH SYNOPSIS
.B "int" nvme_get_lba_status_log
.BI "(int fd " ","
.IP "rae" 12
Retain asynchronous events
.IP "log" 12
-On success, set to the value of the allocated and retreived log.
+On success, set to the value of the allocated and retrieved log.
.SH "RETURN"
The nvme command status if a response was received (see
\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_get_log" 9 "nvme_get_log" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log" 9 "nvme_get_log" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_log \- NVMe Admin Get Log command
.SH SYNOPSIS
-.TH "nvme_get_log_ana" 9 "nvme_get_log_ana" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_ana" 9 "nvme_get_log_ana" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_ana \-
+nvme_get_log_ana \- Retrieve Asymmetric Namespace Access log page
.SH SYNOPSIS
.B "int" nvme_get_log_ana
.BI "(int fd " ","
the asymmetric namespace access information for ANA Groups that contain
namespaces that are attached to the controller processing the command.
-See \fIstruct nvme_ana_rsp_hdr\fP for the defintion of the returned structure.
+See \fIstruct nvme_ana_rsp_hdr\fP for the definition of the returned structure.
.SH "RETURN"
The nvme command status if a response was received (see
\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_get_log_ana_groups" 9 "nvme_get_log_ana_groups" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_ana_groups" 9 "nvme_get_log_ana_groups" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_ana_groups \-
+nvme_get_log_ana_groups \- Retrieve Asymmetric Namespace Access groups only log page
.SH SYNOPSIS
.B "int" nvme_get_log_ana_groups
.BI "(int fd " ","
.IP "log" 12
User address to store the ana group log
.SH "DESCRIPTION"
-See \fIstruct nvme_ana_group_desc\fP for the defintion of the returned structure.
+See \fIstruct nvme_ana_group_desc\fP for the definition of the returned structure.
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_get_log_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_get_log_args \- Arguments for the NVMe Admin Get Log command
-.SH SYNOPSIS
-struct nvme_get_log_args {
-.br
-.BI " __u64 lpo;"
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *log;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " enum nvme_cmd_get_log_lid lid;"
-.br
-.BI " __u32 len;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_csi csi;"
-.br
-.BI " __u16 lsi;"
-.br
-.BI " __u8 lsp;"
-.br
-.BI " __u8 uuidx;"
-.br
-.BI " bool rae;"
-.br
-.BI " bool ot;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "lpo" 12
-Log page offset for partial log transfers
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "log" 12
-User space destination address to transfer the data
-.IP "args_size" 12
-Length of the structure
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "lid" 12
-Log page identifier, see \fIenum nvme_cmd_get_log_lid\fP for known
-values
-.IP "len" 12
-Length of provided user buffer to hold the log data in bytes
-.IP "nsid" 12
-Namespace identifier, if applicable
-.IP "csi" 12
-Command set identifier, see \fIenum nvme_csi\fP for known values
-.IP "lsi" 12
-Log Specific Identifier
-.IP "lsp" 12
-Log specific field
-.IP "uuidx" 12
-UUID selection, if supported
-.IP "rae" 12
-Retain asynchronous events
-.IP "ot" 12
-Offset Type; if set \fIlpo\fP specifies the index into the list
-of data structures, otherwise \fIlpo\fP specifies the byte offset
-into the log page.
-.TH "nvme_get_log_boot_partition" 9 "nvme_get_log_boot_partition" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_boot_partition" 9 "nvme_get_log_boot_partition" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_boot_partition \-
+nvme_get_log_boot_partition \- Retrieve Boot Partition
.SH SYNOPSIS
.B "int" nvme_get_log_boot_partition
.BI "(int fd " ","
-.TH "nvme_get_log_changed_ns_list" 9 "nvme_get_log_changed_ns_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_changed_ns_list" 9 "nvme_get_log_changed_ns_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_changed_ns_list \- Retrieve namespace changed list
.SH SYNOPSIS
-.TH "nvme_get_log_cmd_effects" 9 "nvme_get_log_cmd_effects" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_cmd_effects" 9 "nvme_get_log_cmd_effects" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_cmd_effects \- Retrieve nvme command effects log
.SH SYNOPSIS
-.TH "nvme_get_log_create_telemetry_host" 9 "nvme_get_log_create_telemetry_host" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_create_telemetry_host" 9 "nvme_get_log_create_telemetry_host" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_create_telemetry_host \- Create host telemetry log
.SH SYNOPSIS
File descriptor of nvme device
.IP "log" 12
Userspace address of the log payload
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_get_log_device_self_test" 9 "nvme_get_log_device_self_test" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_device_self_test" 9 "nvme_get_log_device_self_test" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_device_self_test \- Retrieve the device self test log
.SH SYNOPSIS
-.TH "nvme_get_log_discovery" 9 "nvme_get_log_discovery" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_discovery" 9 "nvme_get_log_discovery" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_discovery \-
+nvme_get_log_discovery \- Retrieve Discovery log page
.SH SYNOPSIS
.B "int" nvme_get_log_discovery
.BI "(int fd " ","
-.TH "nvme_get_log_endurance_group" 9 "nvme_get_log_endurance_group" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_endurance_group" 9 "nvme_get_log_endurance_group" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_endurance_group \-
+nvme_get_log_endurance_group \- Get Endurance Group log
.SH SYNOPSIS
.B "int" nvme_get_log_endurance_group
.BI "(int fd " ","
-.TH "nvme_get_log_endurance_grp_evt" 9 "nvme_get_log_endurance_grp_evt" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_endurance_grp_evt" 9 "nvme_get_log_endurance_grp_evt" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_endurance_grp_evt \-
+nvme_get_log_endurance_grp_evt \- Retrieve Rotational Media Information
.SH SYNOPSIS
.B "int" nvme_get_log_endurance_grp_evt
.BI "(int fd " ","
The allocated length of the log page
.IP "log" 12
User address to store the log page
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_get_log_error" 9 "nvme_get_log_error" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_error" 9 "nvme_get_log_error" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_error \- Retrieve nvme error log
.SH SYNOPSIS
.B "int" nvme_get_log_error
.BI "(int fd " ","
-.BI "unsigned nr_entries " ","
+.BI "unsigned int nr_entries " ","
.BI "bool rae " ","
.BI "struct nvme_error_log_page *err_log " ");"
.SH ARGUMENTS
-.TH "nvme_get_log_fid_supported_effects" 9 "nvme_get_log_fid_supported_effects" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_fid_supported_effects" 9 "nvme_get_log_fid_supported_effects" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_fid_supported_effects \-
+nvme_get_log_fid_supported_effects \- Retrieve Feature Identifiers Supported and Effects
.SH SYNOPSIS
.B "int" nvme_get_log_fid_supported_effects
.BI "(int fd " ","
-.TH "nvme_get_log_fw_slot" 9 "nvme_get_log_fw_slot" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_fw_slot" 9 "nvme_get_log_fw_slot" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_fw_slot \- Retrieves the controller firmware log
.SH SYNOPSIS
-.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_lba_status \-
+nvme_get_log_lba_status \- Retrieve LBA Status
.SH SYNOPSIS
.B "int" nvme_get_log_lba_status
.BI "(int fd " ","
The allocated length of the log page
.IP "log" 12
User address to store the log page
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_get_log_media_unit_stat" 9 "nvme_get_log_media_unit_stat" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_media_unit_stat" 9 "nvme_get_log_media_unit_stat" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_media_unit_stat \-
+nvme_get_log_media_unit_stat \- Retrieve Media Unit Status
.SH SYNOPSIS
.B "int" nvme_get_log_media_unit_stat
.BI "(int fd " ","
-.TH "nvme_get_log_mi_cmd_supported_effects" 9 "nvme_get_log_mi_cmd_supported_effects" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_mi_cmd_supported_effects" 9 "nvme_get_log_mi_cmd_supported_effects" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_mi_cmd_supported_effects \- displays the MI Commands Supported byt the controller
+nvme_get_log_mi_cmd_supported_effects \- displays the MI Commands Supported by the controller
.SH SYNOPSIS
.B "int" nvme_get_log_mi_cmd_supported_effects
.BI "(int fd " ","
-.TH "nvme_get_log_page" 9 "nvme_get_log_page" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_page" 9 "nvme_get_log_page" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_page \- Get log page data
.SH SYNOPSIS
-.TH "nvme_get_log_persistent_event" 9 "nvme_get_log_persistent_event" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_persistent_event" 9 "nvme_get_log_persistent_event" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_persistent_event \-
+nvme_get_log_persistent_event \- Retrieve Persistent Event Log
.SH SYNOPSIS
.B "int" nvme_get_log_persistent_event
.BI "(int fd " ","
Size of \fIpevent_log\fP
.IP "pevent_log" 12
User address to store the persistent event log
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_get_log_predictable_lat_event" 9 "nvme_get_log_predictable_lat_event" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_predictable_lat_event" 9 "nvme_get_log_predictable_lat_event" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_predictable_lat_event \-
+nvme_get_log_predictable_lat_event \- Retrieve Predictable Latency Event Aggregate Log Page
.SH SYNOPSIS
.B "int" nvme_get_log_predictable_lat_event
.BI "(int fd " ","
Length of provided user buffer to hold the log data in bytes
.IP "log" 12
User address for log page data
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_get_log_predictable_lat_nvmset" 9 "nvme_get_log_predictable_lat_nvmset" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_predictable_lat_nvmset" 9 "nvme_get_log_predictable_lat_nvmset" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_predictable_lat_nvmset \-
+nvme_get_log_predictable_lat_nvmset \- Predictable Latency Per NVM Set
.SH SYNOPSIS
.B "int" nvme_get_log_predictable_lat_nvmset
.BI "(int fd " ","
-.TH "nvme_get_log_reservation" 9 "nvme_get_log_reservation" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_reservation" 9 "nvme_get_log_reservation" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_reservation \-
+nvme_get_log_reservation \- Retrieve Reservation Notification
.SH SYNOPSIS
.B "int" nvme_get_log_reservation
.BI "(int fd " ","
Retain asynchronous events
.IP "log" 12
User address to store the reservation log
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise
-.TH "nvme_get_log_sanitize" 9 "nvme_get_log_sanitize" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_sanitize" 9 "nvme_get_log_sanitize" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_sanitize \-
+nvme_get_log_sanitize \- Retrieve Sanitize Status
.SH SYNOPSIS
.B "int" nvme_get_log_sanitize
.BI "(int fd " ","
-.TH "nvme_get_log_smart" 9 "nvme_get_log_smart" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_smart" 9 "nvme_get_log_smart" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_smart \- Retrieve nvme smart log
.SH SYNOPSIS
-.TH "nvme_get_log_support_cap_config_list" 9 "nvme_get_log_support_cap_config_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_support_cap_config_list" 9 "nvme_get_log_support_cap_config_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_support_cap_config_list \-
+nvme_get_log_support_cap_config_list \- Retrieve Supported Capacity Configuration List
.SH SYNOPSIS
.B "int" nvme_get_log_support_cap_config_list
.BI "(int fd " ","
.IP "domid" 12
Domain Identifier selection, if supported
.IP "cap" 12
--- undescribed --
+User address to store supported capabilities config list
.SH "RETURN"
The nvme command status if a response was received (see
\fIenum nvme_status_field\fP) or -1 with errno set otherwise
-.TH "nvme_get_log_supported_log_pages" 9 "nvme_get_log_supported_log_pages" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_supported_log_pages" 9 "nvme_get_log_supported_log_pages" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_supported_log_pages \- Retrieve nmve supported log pages
.SH SYNOPSIS
-.TH "nvme_get_log_telemetry_ctrl" 9 "nvme_get_log_telemetry_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_telemetry_ctrl" 9 "nvme_get_log_telemetry_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_telemetry_ctrl \-
+nvme_get_log_telemetry_ctrl \- Get Telemetry Controller-Initiated log page
.SH SYNOPSIS
.B "int" nvme_get_log_telemetry_ctrl
.BI "(int fd " ","
Length of provided user buffer to hold the log data in bytes
.IP "log" 12
User address for log page data
+.SH "DESCRIPTION"
+Retrieves the Telemetry Controller-Initiated log page at the requested offset
+using the previously existing capture.
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_get_log_telemetry_host" 9 "nvme_get_log_telemetry_host" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_telemetry_host" 9 "nvme_get_log_telemetry_host" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_telemetry_host \-
+nvme_get_log_telemetry_host \- Get Telemetry Host-Initiated log page
.SH SYNOPSIS
.B "int" nvme_get_log_telemetry_host
.BI "(int fd " ","
.IP "log" 12
User address for log page data
.SH "DESCRIPTION"
-Retreives the Telemetry Host-Initiated log page at the requested offset
+Retrieves the Telemetry Host-Initiated log page at the requested offset
using the previously existing capture.
.SH "RETURN"
The nvme command status if a response was received (see
-.TH "nvme_get_log_zns_changed_zones" 9 "nvme_get_log_zns_changed_zones" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_log_zns_changed_zones" 9 "nvme_get_log_zns_changed_zones" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_get_log_zns_changed_zones \-
+nvme_get_log_zns_changed_zones \- Retrieve list of zones that have changed
.SH SYNOPSIS
.B "int" nvme_get_log_zns_changed_zones
.BI "(int fd " ","
-.TH "nvme_get_logical_block_size" 9 "nvme_get_logical_block_size" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_logical_block_size" 9 "nvme_get_logical_block_size" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_logical_block_size \- Retrieve block size
.SH SYNOPSIS
-.TH "nvme_get_new_host_telemetry" 9 "nvme_get_new_host_telemetry" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_new_host_telemetry" 9 "nvme_get_new_host_telemetry" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_new_host_telemetry \- Get new host telemetry log
.SH SYNOPSIS
-.TH "nvme_get_ns_attr" 9 "nvme_get_ns_attr" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_ns_attr" 9 "nvme_get_ns_attr" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_ns_attr \- Read namespace sysfs attribute
.SH SYNOPSIS
-.TH "nvme_get_nsid" 9 "nvme_get_nsid" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_nsid" 9 "nvme_get_nsid" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_nsid \- Retrieve the NSID from a namespace file descriptor
.SH SYNOPSIS
-.TH "nvme_get_path_attr" 9 "nvme_get_path_attr" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_path_attr" 9 "nvme_get_path_attr" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_path_attr \- Read path sysfs attribute
.SH SYNOPSIS
-.TH "nvme_get_property" 9 "nvme_get_property" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_property" 9 "nvme_get_property" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_property \- Get a controller property
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_get_property_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_get_property_args \- Arguments for NVMe Get Property command
-.SH SYNOPSIS
-struct nvme_get_property_args {
-.br
-.BI " __u64 *value;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " int offset;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "value" 12
-Where the property's value will be stored on success
-.IP "args_size" 12
-Size of \fIstruct nvme_get_property_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "offset" 12
-Property offset from the base to retrieve
-.TH "nvme_get_subsys_attr" 9 "nvme_get_subsys_attr" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_get_subsys_attr" 9 "nvme_get_subsys_attr" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_get_subsys_attr \- Read subsystem sysfs attribute
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_hmac_alg" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_hmac_alg" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_hmac_alg \- HMAC algorithm
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_host_behavior_support" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_host_behavior_support" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_host_behavior_support \-
+enum nvme_host_behavior_support \- Enable Advanced Command
.SH SYNOPSIS
enum nvme_host_behavior_support {
.br
-.TH "nvme_host_get_dhchap_key" 9 "nvme_host_get_dhchap_key" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_host_get_dhchap_key" 9 "nvme_host_get_dhchap_key" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_host_get_dhchap_key \- Return host key
.SH SYNOPSIS
-.TH "nvme_host_get_hostid" 9 "nvme_host_get_hostid" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_host_get_hostid" 9 "nvme_host_get_hostid" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_host_get_hostid \- Host ID of an nvme_host_t object
.SH SYNOPSIS
-.TH "nvme_host_get_hostnqn" 9 "nvme_host_get_hostnqn" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_host_get_hostnqn" 9 "nvme_host_get_hostnqn" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_host_get_hostnqn \- Host NQN of an nvme_host_t object
.SH SYNOPSIS
-.TH "nvme_host_get_hostsymname" 9 "nvme_host_get_hostsymname" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_host_get_hostsymname" 9 "nvme_host_get_hostsymname" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_host_get_hostsymname \- Get the host's symbolic name
.SH SYNOPSIS
-.TH "nvme_host_get_root" 9 "nvme_host_get_root" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_host_get_root" 9 "nvme_host_get_root" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_host_get_root \- Returns nvme_root_t object
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_host_mem_buf_attrs" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_host_mem_buf_attrs" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_host_mem_buf_attrs \-
+struct nvme_host_mem_buf_attrs \- Host Memory Buffer - Attributes Data Structure
.SH SYNOPSIS
struct nvme_host_mem_buf_attrs {
.br
-.TH "libnvme" 9 "struct nvme_host_metadata" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_host_metadata" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_host_metadata \- Host Metadata Data Structure
.SH SYNOPSIS
-.TH "nvme_host_set_dhchap_key" 9 "nvme_host_set_dhchap_key" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_host_set_dhchap_key" 9 "nvme_host_set_dhchap_key" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_host_set_dhchap_key \- set host key
.SH SYNOPSIS
-.TH "nvme_host_set_hostsymname" 9 "nvme_host_set_hostsymname" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_host_set_hostsymname" 9 "nvme_host_set_hostsymname" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_host_set_hostsymname \- Set the host's symbolic name
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_id_ctrl" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_ctrl" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_id_ctrl \- Identify Controller data structure
.SH SYNOPSIS
PCI Subsystem Vendor ID, the company vendor identifier that is
assigned by the PCI SIG for the subsystem.
.IP "sn" 12
-Serial Number in ascii
+Serial Number in ASCII
.IP "mn" 12
-Model Number in ascii
+Model Number in ASCII
.IP "fr" 12
-Firmware Revision in ascii, the currently active firmware
+Firmware Revision in ASCII, the currently active firmware
revision for the NVM subsystem
.IP "rab" 12
Recommended Arbitration Burst, reported as a power of two
FRU GUID, a 128-bit value that is globally unique for a given
Field Replaceable Unit
.IP "crdt1" 12
-Controller Retry Delay time in 100 millisecod units if CQE CRD
+Controller Retry Delay time in 100 millisecond units if CQE CRD
field is 1
.IP "crdt2" 12
-Controller Retry Delay time in 100 millisecod units if CQE CRD
+Controller Retry Delay time in 100 millisecond units if CQE CRD
field is 2
.IP "crdt3" 12
-Controller Retry Delay time in 100 millisecod units if CQE CRD
+Controller Retry Delay time in 100 millisecond units if CQE CRD
field is 3
.IP "rsvd134" 12
Reserved
number of namespaces supported by the NVM subsystem.
.IP "maxdna" 12
Maximum Domain Namespace Attachments indicates the maximum
-of the sum of the numver of namespaces attached to each I/O
+of the sum of the number of namespaces attached to each I/O
controller in the Domain.
.IP "maxcna" 12
Maximum I/O Controller Namespace Attachments indicates the
-.TH "libnvme" 9 "enum nvme_id_ctrl_anacap" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_anacap" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_anacap \- This field indicates the capabilities associated with Asymmetric Namespace Access Reporting.
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ctrl_apsta" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_apsta" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_apsta \- Flags indicating the attributes of the autonomous power state transition feature.
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ctrl_avscc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_avscc" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_avscc \- Flags indicating the configuration settings for Admin Vendor Specific command handling.
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ctrl_cmic" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_cmic" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ctrl_cntrltype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_cntrltype" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_cntrltype \- Controller types
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ctrl_cqes" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_cqes" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ctrl_ctratt" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_ctratt" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_ctratt \- Controller attributes
.SH SYNOPSIS
.IP "NVME_CTRL_CTRATT_FIXED_CAP" 12
Fixed Capacity Management supported
.IP "NVME_CTRL_CTRATT_VARIABLE_CAP" 12
-Variable Capacity Managment supported
+Variable Capacity Management supported
.IP "NVME_CTRL_CTRATT_DEL_ENDURANCE_GROUPS" 12
Delete Endurance Groups supported
.IP "NVME_CTRL_CTRATT_DEL_NVM_SETS" 12
-.TH "libnvme" 9 "enum nvme_id_ctrl_dctype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_dctype" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_dctype \- Discovery Controller types
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ctrl_dsto" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_dsto" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ctrl_fcatt" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_fcatt" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ctrl_fna" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_fna" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_fna \- This field indicates attributes for the Format NVM command.
.SH SYNOPSIS
.br
.br
.BI " NVME_CTRL_FNA_CRYPTO_ERASE"
+,
+.br
+.br
+.BI " NVME_CTRL_FNA_NSID_FFFFFFFF"
};
.SH Constants
If set, then cryptographic erase is
supported. If cleared, then cryptographic
erase is not supported.
+.IP "NVME_CTRL_FNA_NSID_FFFFFFFF" 12
+If set, then format does not support
+nsid value set to FFFFFFFFh. If cleared,
+format supports nsid value set to
+FFFFFFFFh.
-.TH "libnvme" 9 "enum nvme_id_ctrl_frmw" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_frmw" "July 2022" "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
.br
.br
.BI " NVME_CTRL_FRMW_FW_ACT_NO_RESET"
+,
+.br
+.br
+.BI " NVME_CTRL_FRMW_MP_UP_DETECTION"
};
.SH Constants
.IP "NVME_CTRL_FRMW_FW_ACT_NO_RESET" 12
If set, the controller supports firmware
activation without a reset.
+.IP "NVME_CTRL_FRMW_MP_UP_DETECTION" 12
+If set, the controller is able to detect
+overlapping firmware/boot partition
+image update.
-.TH "libnvme" 9 "enum nvme_id_ctrl_fuses" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_fuses" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_fuses \- This field indicates the fused operations that the controller supports.
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ctrl_hctm" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_hctm" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_hctm \- Flags indicate the attributes of the host controlled thermal management feature
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ctrl_lpa" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_lpa" "July 2022" "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
.br
.br
.BI " NVME_CTRL_LPA_PERSETENT_EVENT"
+,
+.br
+.br
+.BI " NVME_CTRL_LPA_LI0_LI5_LI12_LI13"
+,
+.br
+.br
+.BI " NVME_CTRL_LPA_DA4_TELEMETRY"
};
.SH Constants
.IP "NVME_CTRL_LPA_SMART_PER_NS" 12
+If set, controller supports SMART/Health log
+page on a per namespace basis.
.IP "NVME_CTRL_LPA_CMD_EFFECTS" 12
+If Set, the controller supports the commands
+supported and effects log page.
.IP "NVME_CTRL_LPA_EXTENDED" 12
+If set, the controller supports extended data
+for log page command including extended number
+of dwords and log page offset fields.
.IP "NVME_CTRL_LPA_TELEMETRY" 12
+If set, the controller supports the telemetry
+host-initiated and telemetry controller-initiated
+log pages and sending telemetry log notices.
.IP "NVME_CTRL_LPA_PERSETENT_EVENT" 12
+If set, the controller supports
+persistent event log.
+.IP "NVME_CTRL_LPA_LI0_LI5_LI12_LI13" 12
+If set, the controller supports
+- log pages log page.
+- returning scope of each command in
+commands supported and effects log
+page.
+- feature identifiers supported and
+effects log page.
+- NVMe-MI commands supported and
+effects log page.
+.IP "NVME_CTRL_LPA_DA4_TELEMETRY" 12
+If set, the controller supports data
+area 4 for telemetry host-initiated and
+telemetry.
-.TH "libnvme" 9 "enum nvme_id_ctrl_mec" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_mec" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_id_ctrl_mec \- Flags indicatings the capabilities of the Management Endpoint in the Controller, &struct nvme_id_ctrl.mec.
+enum nvme_id_ctrl_mec \- Flags indicating the capabilities of the Management Endpoint in the Controller, &struct nvme_id_ctrl.mec.
.SH SYNOPSIS
enum nvme_id_ctrl_mec {
.br
-.TH "libnvme" 9 "struct nvme_id_ctrl_nvm" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_ctrl_nvm" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_ctrl_nvm \-
+struct nvme_id_ctrl_nvm \- I/O Command Set Specific Identify Controller data structure
.SH SYNOPSIS
struct nvme_id_ctrl_nvm {
.br
-.TH "libnvme" 9 "enum nvme_id_ctrl_nvmsr" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_nvmsr" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ctrl_nvscc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_nvscc" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_nvscc \- This field indicates the configuration settings for NVM Vendor Specific command handling.
.SH SYNOPSIS
.SH Constants
.IP "NVME_CTRL_NVSCC_FMT" 12
If set, all NVM Vendor Specific Commands use the
-format format with NDT and NDM fields.
+format with NDT and NDM fields.
-.TH "libnvme" 9 "enum nvme_id_ctrl_nwpc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_nwpc" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ctrl_oacs" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_oacs" "July 2022" "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
.br
.br
.BI " NVME_CTRL_OACS_LBA_STATUS"
+,
+.br
+.br
+.BI " NVME_CTRL_OACS_CMD_FEAT_LD"
};
.SH Constants
.IP "NVME_CTRL_OACS_LBA_STATUS" 12
If set, then the controller supports the Get LBA
Status capability.
+.IP "NVME_CTRL_OACS_CMD_FEAT_LD" 12
+If set, then the controller supports the command
+and feature lockdown capability.
-.TH "libnvme" 9 "enum nvme_id_ctrl_oaes" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_oaes" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_oaes \- Optional Asynchronous Events Supported
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ctrl_ofcs" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_ofcs" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_ofcs \- Indicate whether the controller supports optional fabric commands.
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ctrl_oncs" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_oncs" "July 2022" "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
.br
.br
.BI " NVME_CTRL_ONCS_VERIFY"
+,
+.br
+.br
+.BI " NVME_CTRL_ONCS_COPY"
};
.SH Constants
.IP "NVME_CTRL_ONCS_VERIFY" 12
If set, then the controller supports
the Verify command.
+.IP "NVME_CTRL_ONCS_COPY" 12
+If set, then the controller supports
+the copy command.
-.TH "libnvme" 9 "enum nvme_id_ctrl_rpmbs" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_rpmbs" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ctrl_sanicap" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_sanicap" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ctrl_sanicap \- Indicates attributes for sanitize operations.
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ctrl_sgls" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_sgls" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ctrl_sqes" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_sqes" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ctrl_vwc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_vwc" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_id_ctrl_vwc \-
+enum nvme_id_ctrl_vwc \- Volatile write cache
.SH SYNOPSIS
enum nvme_id_ctrl_vwc {
.br
-.TH "libnvme" 9 "enum nvme_id_ctrl_vwci" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_vwci" "July 2022" "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
-.TH "libnvme" 9 "struct nvme_id_directives" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_directives" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_directives \-
+struct nvme_id_directives \- Identify Directive - Return Parameters Data Structure
.SH SYNOPSIS
struct nvme_id_directives {
.br
-.TH "libnvme" 9 "struct nvme_id_domain_attr" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_domain_attr" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_id_domain_attr \- Domain Attributes Entry
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_id_domain_list" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_domain_list" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_domain_list \-
+struct nvme_id_domain_list \- Domain List
.SH SYNOPSIS
struct nvme_id_domain_list {
.br
-.TH "libnvme" 9 "struct nvme_id_endurance_group_list" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_endurance_group_list" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_endurance_group_list \-
+struct nvme_id_endurance_group_list \- Endurance Group List
.SH SYNOPSIS
struct nvme_id_endurance_group_list {
.br
-.TH "libnvme" 9 "struct nvme_id_independent_id_ns" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_independent_id_ns" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_independent_id_ns \-
+struct nvme_id_independent_id_ns \- Identify - I/O Command Set Independent Identify Namespace Data Structure
.SH SYNOPSIS
struct nvme_id_independent_id_ns {
.br
-.TH "libnvme" 9 "struct nvme_id_iocs" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_iocs" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_id_iocs \- NVMe Identify IO Command Set data structure
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_id_ns" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_ns" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_id_ns \- Identify Namespace data structure
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ns_attr" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_attr" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ns_attr \- Specifies attributes of the namespace.
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ns_dlfeat" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_dlfeat" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ns_dpc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_dpc" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ns_dps" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_dps" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ns_flbas" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_flbas" "July 2022" "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
-.TH "libnvme" 9 "struct nvme_id_ns_granularity_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_ns_granularity_desc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_ns_granularity_desc \-
+struct nvme_id_ns_granularity_desc \- Namespace Granularity Descriptor
.SH SYNOPSIS
struct nvme_id_ns_granularity_desc {
.br
-.TH "libnvme" 9 "struct nvme_id_ns_granularity_list" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_ns_granularity_list" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_ns_granularity_list \-
+struct nvme_id_ns_granularity_list \- Namespace Granularity List
.SH SYNOPSIS
struct nvme_id_ns_granularity_list {
.br
-.TH "libnvme" 9 "enum nvme_id_ns_mc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_mc" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ns_mc \- This field indicates the capabilities for metadata.
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_ns_nmic" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_nmic" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_id_ns_rescap" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_rescap" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_ns_rescap \- This field indicates the reservation capabilities of the namespace.
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_id_nsfeat" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_nsfeat" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_id_nsfeat \- This field defines features of the namespace.
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_id_nvmset_list" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_nvmset_list" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_nvmset_list \-
+struct nvme_id_nvmset_list \- NVM set list
.SH SYNOPSIS
struct nvme_id_nvmset_list {
.br
-.TH "libnvme" 9 "struct nvme_id_psd" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_psd" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_psd \-
+struct nvme_id_psd \- Power Management data structure
.SH SYNOPSIS
struct nvme_id_psd {
.br
associated with this power state relative to others. The value in
this is less than the number of supported power states.
.IP "rrl" 12
-Relative Reade Latency indicates the read latency rank associated
+Relative Read Latency indicates the read latency rank associated
with this power state relative to others. The value in this field is
less than the number of supported power states.
.IP "rwt" 12
-.TH "libnvme" 9 "enum nvme_id_uuid" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_uuid" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_id_uuid \-
+enum nvme_id_uuid \- Identifier Association
.SH SYNOPSIS
enum nvme_id_uuid {
.br
-.TH "libnvme" 9 "struct nvme_id_uuid_list" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_uuid_list" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_uuid_list \-
+struct nvme_id_uuid_list \- UUID list
.SH SYNOPSIS
struct nvme_id_uuid_list {
.br
-.TH "libnvme" 9 "struct nvme_id_uuid_list_entry" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_uuid_list_entry" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_id_uuid_list_entry \-
+struct nvme_id_uuid_list_entry \- UUID List Entry
.SH SYNOPSIS
struct nvme_id_uuid_list_entry {
.br
-.TH "nvme_identify" 9 "nvme_identify" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify" 9 "nvme_identify" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify \- Send the NVMe Identify command
.SH SYNOPSIS
-.TH "nvme_identify_active_ns_list" 9 "nvme_identify_active_ns_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_active_ns_list" 9 "nvme_identify_active_ns_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_active_ns_list \- Retrieves active namespaces id list
.SH SYNOPSIS
.IP "fd" 12
File descriptor of nvme device
.IP "nsid" 12
-Return namespaces greater than this identifer
+Return namespaces greater than this identifier
.IP "list" 12
User space destination address to transfer the data
.SH "DESCRIPTION"
-.TH "nvme_identify_active_ns_list_csi" 9 "nvme_identify_active_ns_list_csi" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_active_ns_list_csi" 9 "nvme_identify_active_ns_list_csi" "July 2022" "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
-.TH "nvme_identify_allocated_ns" 9 "nvme_identify_allocated_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_allocated_ns" 9 "nvme_identify_allocated_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_allocated_ns \- Same as nvme_identify_ns, but only for allocated namespaces
.SH SYNOPSIS
-.TH "nvme_identify_allocated_ns_list" 9 "nvme_identify_allocated_ns_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_allocated_ns_list" 9 "nvme_identify_allocated_ns_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_allocated_ns_list \- Retrieves allocated namespace id list
.SH SYNOPSIS
.IP "fd" 12
File descriptor of nvme device
.IP "nsid" 12
-Return namespaces greater than this identifer
+Return namespaces greater than this identifier
.IP "list" 12
User space destination address to transfer the data
.SH "DESCRIPTION"
-.TH "nvme_identify_allocated_ns_list_csi" 9 "nvme_identify_allocated_ns_list_csi" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_allocated_ns_list_csi" 9 "nvme_identify_allocated_ns_list_csi" "July 2022" "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
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_identify_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_identify_args \- Arguments for the NVMe Identify command
-.SH SYNOPSIS
-struct nvme_identify_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " enum nvme_identify_cns cns;"
-.br
-.BI " enum nvme_csi csi;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " __u16 cntid;"
-.br
-.BI " __u16 cns_specific_id;"
-.br
-.BI " __u8 uuidx;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "data" 12
-User space destination address to transfer the data
-.IP "args_size" 12
-Size of \fIstruct nvme_identify_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms (0 for default timeout)
-.IP "cns" 12
-The Controller or Namespace structure, see \fIenum\fP nvme_identify_cns
-.IP "csi" 12
-Command Set Identifier
-.IP "nsid" 12
-Namespace identifier, if applicable
-.IP "cntid" 12
-The Controller Identifier, if applicable
-.IP "cns_specific_id" 12
-Identifier that is required for a particular CNS value
-.IP "uuidx" 12
-UUID Index if controller supports this id selection method
-.TH "libnvme" 9 "enum nvme_identify_cns" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_identify_cns" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_identify_cns \-
+enum nvme_identify_cns \- Identify - CNS Values
.SH SYNOPSIS
enum nvme_identify_cns {
.br
.IP "NVME_IDENTIFY_CNS_NS" 12
Identify Namespace data structure
.IP "NVME_IDENTIFY_CNS_CTRL" 12
-Identify Controller data structur
+Identify Controller data structure
.IP "NVME_IDENTIFY_CNS_NS_ACTIVE_LIST" 12
Active Namespace ID list
.IP "NVME_IDENTIFY_CNS_NS_DESC_LIST" 12
with the specified I/O Command Set
.IP "NVME_IDENTIFY_CNS_CSI_INDEPENDENT_ID_NS" 12
I/O Command Set Independent Identify
-Namespace data structure
.IP "NVME_IDENTIFY_CNS_NS_USER_DATA_FORMAT" 12
--- undescribed --
+Namespace user data format
.IP "NVME_IDENTIFY_CNS_CSI_NS_USER_DATA_FORMAT" 12
--- undescribed --
+I/O Command Set specific user data
+format
+Namespace data structure
.IP "NVME_IDENTIFY_CNS_ALLOCATED_NS_LIST" 12
Allocated Namespace ID list
.IP "NVME_IDENTIFY_CNS_ALLOCATED_NS" 12
associated with the primary controller
processing the command
.IP "NVME_IDENTIFY_CNS_NS_GRANULARITY" 12
-A Namespace Granularity Lis
+A Namespace Granularity List
.IP "NVME_IDENTIFY_CNS_UUID_LIST" 12
A UUID List
.IP "NVME_IDENTIFY_CNS_DOMAIN_LIST" 12
-.TH "nvme_identify_ctrl" 9 "nvme_identify_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_ctrl" 9 "nvme_identify_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_ctrl \- Retrieves nvme identify controller
.SH SYNOPSIS
-.TH "nvme_identify_ctrl_csi" 9 "nvme_identify_ctrl_csi" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_ctrl_csi" 9 "nvme_identify_ctrl_csi" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_ctrl_csi \- I/O command set specific Identify Controller data
.SH SYNOPSIS
-.TH "nvme_identify_ctrl_list" 9 "nvme_identify_ctrl_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_ctrl_list" 9 "nvme_identify_ctrl_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_ctrl_list \- Retrieves identify controller list
.SH SYNOPSIS
-.TH "nvme_identify_domain_list" 9 "nvme_identify_domain_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_domain_list" 9 "nvme_identify_domain_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_domain_list \- Domain list data
.SH SYNOPSIS
.IP "domid" 12
Domain ID
.IP "list" 12
-User space destiantion address to transfer data
+User space destination address to transfer data
.SH "DESCRIPTION"
A list of 31 domain IDs is returned to the host containing domain
attributes in increasing order that are greater than the value
-.TH "nvme_identify_endurance_group_list" 9 "nvme_identify_endurance_group_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_endurance_group_list" 9 "nvme_identify_endurance_group_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_endurance_group_list \- Endurance group list data
.SH SYNOPSIS
-.TH "nvme_identify_independent_identify_ns" 9 "nvme_identify_independent_identify_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_independent_identify_ns" 9 "nvme_identify_independent_identify_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_independent_identify_ns \- I/O command set independent Identify namespace data
.SH SYNOPSIS
-.TH "nvme_identify_iocs" 9 "nvme_identify_iocs" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_iocs" 9 "nvme_identify_iocs" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_iocs \- I/O command set data structure
.SH SYNOPSIS
-.TH "nvme_identify_iocs_ns_csi_user_data_format" 9 "nvme_identify_iocs_ns_csi_user_data_format" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_iocs_ns_csi_user_data_format" 9 "nvme_identify_iocs_ns_csi_user_data_format" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_identify_iocs_ns_csi_user_data_format \-
+nvme_identify_iocs_ns_csi_user_data_format \- Identify I/O command set namespace data structure
.SH SYNOPSIS
.B "int" nvme_identify_iocs_ns_csi_user_data_format
.BI "(int fd " ","
.IP "csi" 12
Command Set Identifier
.IP "data" 12
--- undescribed --
+User space destination address to transfer the data
.SH "DESCRIPTION"
I/O Command Set specific Identify Namespace data structure for
the specified User Data Format index containing the namespace
-.TH "nvme_identify_ns" 9 "nvme_identify_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_ns" 9 "nvme_identify_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_ns \- Retrieves nvme identify namespace
.SH SYNOPSIS
-.TH "nvme_identify_ns_csi" 9 "nvme_identify_ns_csi" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_ns_csi" 9 "nvme_identify_ns_csi" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_ns_csi \- I/O command set specific identify namespace data
.SH SYNOPSIS
.IP "data" 12
User space destination address to transfer the data
.SH "DESCRIPTION"
-An I/O Command Set specific Identify Namespace data structre is returned
+An I/O Command Set specific Identify Namespace data structure is returned
for the namespace specified in \fInsid\fP.
.SH "RETURN"
The nvme command status if a response was received (see
-.TH "nvme_identify_ns_csi_user_data_format" 9 "nvme_identify_ns_csi_user_data_format" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_ns_csi_user_data_format" 9 "nvme_identify_ns_csi_user_data_format" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_identify_ns_csi_user_data_format \-
+nvme_identify_ns_csi_user_data_format \- Identify namespace user data format
.SH SYNOPSIS
.B "int" nvme_identify_ns_csi_user_data_format
.BI "(int fd " ","
.IP "csi" 12
Command Set Identifier
.IP "data" 12
--- undescribed --
+User space destination address to transfer the data
.SH "DESCRIPTION"
Identify Namespace data structure for the specified User Data Format
index containing the namespace capabilities for the NVM Command Set.
-.TH "nvme_identify_ns_descs" 9 "nvme_identify_ns_descs" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_ns_descs" 9 "nvme_identify_ns_descs" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_ns_descs \- Retrieves namespace descriptor list
.SH SYNOPSIS
.IP "fd" 12
File descriptor of nvme device
.IP "nsid" 12
-The namespace id to retrieve destriptors
+The namespace id to retrieve descriptors
.IP "descs" 12
User space destination address to transfer the data
.SH "DESCRIPTION"
host for the namespace specified in the Namespace Identifier (NSID) field if
it is an active NSID.
-The data returned is in the form of an arrray of 'struct nvme_ns_id_desc'.
+The data returned is in the form of an array of 'struct nvme_ns_id_desc'.
See \fIstruct nvme_ns_id_desc\fP for the definition of the returned structure.
.SH "RETURN"
-.TH "nvme_identify_ns_granularity" 9 "nvme_identify_ns_granularity" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_ns_granularity" 9 "nvme_identify_ns_granularity" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_ns_granularity \- Retrieves namespace granularity identification
.SH SYNOPSIS
-.TH "nvme_identify_nsid_ctrl_list" 9 "nvme_identify_nsid_ctrl_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_nsid_ctrl_list" 9 "nvme_identify_nsid_ctrl_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_nsid_ctrl_list \- Retrieves controller list attached to an nsid
.SH SYNOPSIS
-.TH "nvme_identify_nvmset_list" 9 "nvme_identify_nvmset_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_nvmset_list" 9 "nvme_identify_nvmset_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_nvmset_list \- Retrieves NVM Set List
.SH SYNOPSIS
Identifier supported by the NVM subsystem that is equal to or greater than
the NVM Set Identifier.
-See \fIstruct nvme_id_nvmset_list\fP for the defintion of the returned structure.
+See \fIstruct nvme_id_nvmset_list\fP for the definition of the returned structure.
.SH "RETURN"
The nvme command status if a response was received (see
\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_identify_primary_ctrl" 9 "nvme_identify_primary_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_primary_ctrl" 9 "nvme_identify_primary_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_primary_ctrl \- Retrieve NVMe Primary Controller identification
.SH SYNOPSIS
.IP "cap" 12
User space destination buffer address to transfer the data
.SH "DESCRIPTION"
-See \fIstruct nvme_primary_ctrl_cap\fP for the defintion of the returned structure, \fIcap\fP.
+See \fIstruct nvme_primary_ctrl_cap\fP for the definition of the returned structure, \fIcap\fP.
.SH "RETURN"
The nvme command status if a response was received (see
\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_identify_secondary_ctrl_list" 9 "nvme_identify_secondary_ctrl_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_secondary_ctrl_list" 9 "nvme_identify_secondary_ctrl_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_secondary_ctrl_list \- Retrieves secondary controller list
.SH SYNOPSIS
The list contains entries for controller identifiers greater than or equal
to the value specified in the Controller Identifier (cntid).
-See \fIstruct nvme_secondary_ctrls_list\fP for a defintion of the returned
+See \fIstruct nvme_secondary_ctrls_list\fP for a definition of the returned
structure.
.SH "RETURN"
The nvme command status if a response was received (see
-.TH "nvme_identify_uuid" 9 "nvme_identify_uuid" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_identify_uuid" 9 "nvme_identify_uuid" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_identify_uuid \- Retrieves device's UUIDs
.SH SYNOPSIS
-.TH "nvme_init_copy_range" 9 "nvme_init_copy_range" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_init_copy_range" 9 "nvme_init_copy_range" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_init_copy_range \- Constructs a copy range structure
.SH SYNOPSIS
-.TH "nvme_init_ctrl" 9 "nvme_init_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_init_ctrl" 9 "nvme_init_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_init_ctrl \- Initialize nvme_ctrl_t object for an existing controller.
.SH SYNOPSIS
-.TH "nvme_init_ctrl_list" 9 "nvme_init_ctrl_list" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_init_ctrl_list" 9 "nvme_init_ctrl_list" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_init_ctrl_list \- Initialize an nvme_ctrl_list structure from an array.
.SH SYNOPSIS
-.TH "nvme_init_dsm_range" 9 "nvme_init_dsm_range" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_init_dsm_range" 9 "nvme_init_dsm_range" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_init_dsm_range \- Constructs a data set range structure
.SH SYNOPSIS
-.TH "nvme_init_logging" 9 "nvme_init_logging" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_init_logging" 9 "nvme_init_logging" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_init_logging \- Initialize logging
.SH SYNOPSIS
-.TH "nvme_io" 9 "nvme_io" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_io" 9 "nvme_io" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_io \- Submit an nvme user I/O command
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_io_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_io_args \- Arguments for NVMe I/O commands
-.SH SYNOPSIS
-struct nvme_io_args {
-.br
-.BI " __u64 slba;"
-.br
-.BI " __u64 storage_tag;"
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " void *metadata;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " __u32 reftag;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " __u32 metadata_len;"
-.br
-.BI " __u16 nlb;"
-.br
-.BI " __u16 control;"
-.br
-.BI " __u16 apptag;"
-.br
-.BI " __u16 appmask;"
-.br
-.BI " __u16 dspec;"
-.br
-.BI " __u8 dsm;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "slba" 12
-Starting logical block
-.IP "storage_tag" 12
-This filed specifies Variable Sized Expected Logical Block
-Storage Tag (ELBST) and Expected Logical Block Reference
-Tag (ELBRT)
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "data" 12
-Pointer to user address of the data buffer
-.IP "metadata" 12
-Pointer to user address of the metadata buffer
-.IP "args_size" 12
-Size of \fIstruct nvme_io_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID
-.IP "reftag" 12
-This field specifies the Initial Logical Block Reference Tag
-expected value. Used only if the namespace is formatted to use
-end-to-end protection information.
-.IP "data_len" 12
-Length of user buffer, \fIdata\fP, in bytes
-.IP "metadata_len" 12
-Length of user buffer, \fImetadata\fP, in bytes
-.IP "nlb" 12
-Number of logical blocks to send (0's based value)
-.IP "control" 12
-Command control flags, see \fIenum nvme_io_control_flags\fP.
-.IP "apptag" 12
-This field specifies the Application Tag Mask expected value.
-Used only if the namespace is formatted to use end-to-end
-protection information.
-.IP "appmask" 12
-This field specifies the Application Tag expected value. Used
-only if the namespace is formatted to use end-to-end protection
-information.
-.IP "dspec" 12
-Directive specific value
-.IP "dsm" 12
-Data set management attributes, see \fIenum nvme_io_dsm_flags\fP
-.TH "libnvme" 9 "enum nvme_io_control_flags" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_io_control_flags" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_io_control_flags \-
+enum nvme_io_control_flags \- I/O control flags
.SH SYNOPSIS
enum nvme_io_control_flags {
.br
,
.br
.br
+.BI " NVME_IO_STC"
+,
+.br
+.br
.BI " NVME_IO_DEAC"
,
.br
.SH Constants
.IP "NVME_IO_DTYPE_STREAMS" 12
Directive Type Streams
+.IP "NVME_IO_STC" 12
+Storage Tag Check
.IP "NVME_IO_DEAC" 12
Deallocate
.IP "NVME_IO_ZNS_APPEND_PIREMAP" 12
-.TH "libnvme" 9 "enum nvme_io_dsm_flags" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_io_dsm_flags" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_io_dsm_flags \-
+enum nvme_io_dsm_flags \- Dataset Management flags
.SH SYNOPSIS
enum nvme_io_dsm_flags {
.br
-.TH "libnvme" 9 "enum nvme_io_opcode" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_io_opcode" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_io_opcode \-
+enum nvme_io_opcode \- Opcodes for I/O Commands
.SH SYNOPSIS
enum nvme_io_opcode {
.br
-.TH "nvme_io_passthru" 9 "nvme_io_passthru" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_io_passthru" 9 "nvme_io_passthru" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_io_passthru \- Submit an nvme io passthrough command
.SH SYNOPSIS
.IP "flags" 12
NVMe command flags (not used)
.IP "rsvd" 12
-Reserevd for future use
+Reserved for future use
.IP "nsid" 12
Namespace identifier
.IP "cdw2" 12
.IP "cdw15" 12
Command dword 15
.IP "data_len" 12
-Length of the data transfered in this command in bytes
+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 transfered in this command
+Length of metadata transferred in this command
.IP "metadata" 12
Pointer to user address of the metadata buffer
.IP "timeout_ms" 12
-.TH "libnvme" 9 "struct nvme_lba_range_type" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_range_type" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_lba_range_type \-
+struct nvme_lba_range_type \- LBA Range Type
.SH SYNOPSIS
struct nvme_lba_range_type {
.br
.SH Members
.IP "entry" 12
-LBA range type entry
+LBA range type entry. See \fIstruct\fP nvme_lba_range_type_entry
-.TH "libnvme" 9 "struct nvme_lba_range_type_entry" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_range_type_entry" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_lba_range_type_entry \-
+struct nvme_lba_range_type_entry \- LBA Range Type - Data Structure Entry
.SH SYNOPSIS
struct nvme_lba_range_type_entry {
.br
-.TH "libnvme" 9 "struct nvme_lba_rd" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_rd" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_lba_rd \-
+struct nvme_lba_rd \- LBA Range Descriptor
.SH SYNOPSIS
struct nvme_lba_rd {
.br
-.TH "libnvme" 9 "struct nvme_lba_status" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_status" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_lba_status \-
+struct nvme_lba_status \- LBA Status Descriptor List
.SH SYNOPSIS
struct nvme_lba_status {
.br
-.TH "libnvme" 9 "enum nvme_lba_status_atype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_lba_status_atype" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_lba_status_atype \-
+enum nvme_lba_status_atype \- Potentially Unrecoverable LBAs
.SH SYNOPSIS
enum nvme_lba_status_atype {
.br
};
.SH Constants
.IP "NVME_LBA_STATUS_ATYPE_SCAN_UNTRACKED" 12
+Potentially Unrecoverable LBAs
.IP "NVME_LBA_STATUS_ATYPE_SCAN_TRACKED" 12
+Potentially Unrecoverable LBAs
+associated with physical storage
-.TH "libnvme" 9 "struct nvme_lba_status_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_status_desc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_lba_status_desc \-
+struct nvme_lba_status_desc \- LBA Status Descriptor Entry
.SH SYNOPSIS
struct nvme_lba_status_desc {
.br
-.TH "libnvme" 9 "struct nvme_lba_status_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_status_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_lba_status_log \-
+struct nvme_lba_status_log \- LBA Status Information Log
.SH SYNOPSIS
struct nvme_lba_status_log {
.br
-.TH "libnvme" 9 "struct nvme_lbaf" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lbaf" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_lbaf \- LBA Format Data Structure
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_lbaf_rp" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_lbaf_rp" "July 2022" "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
-.TH "libnvme" 9 "enum nvme_lbart" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_lbart" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_lbart \-
+enum nvme_lbart \- LBA Range Type - Data Structure Entry
.SH SYNOPSIS
enum nvme_lbart {
.br
-.TH "libnvme" 9 "struct nvme_lbas_ns_element" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lbas_ns_element" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_lbas_ns_element \-
+struct nvme_lbas_ns_element \- LBA Status Log Namespace Element
.SH SYNOPSIS
struct nvme_lbas_ns_element {
.br
.IP "nlrd" 12
Number of LBA Range Descriptors
.IP "ratype" 12
-Recommended Action Type
+Recommended Action Type. see \fIenum\fP nvme_lba_status_atype
.IP "rsvd8" 12
Reserved
.IP "lba_rd" 12
-.TH "nvme_lockdown" 9 "nvme_lockdown" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_lockdown" 9 "nvme_lockdown" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_lockdown \- Issue lockdown command
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_lockdown_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_lockdown_args \- Arguments for the NVME Lockdown command
-.SH SYNOPSIS
-struct nvme_lockdown_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u8 scp;"
-.br
-.BI " __u8 prhbt;"
-.br
-.BI " __u8 ifc;"
-.br
-.BI " __u8 ofi;"
-.br
-.BI " __u8 uuidx;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "args_size" 12
-Size of \fIstruct nvme_lockdown_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms (0 for default timeout)
-.IP "scp" 12
-Scope of the command
-.IP "prhbt" 12
-Prohibit or allow the command opcode or Set Features command
-.IP "ifc" 12
-Affected interface
-.IP "ofi" 12
-Opcode or Feature Identifier
-.IP "uuidx" 12
-UUID Index if controller supports this id selection method
-.TH "libnvme" 9 "enum nvme_log_ana_lsp" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_log_ana_lsp" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_log_ana_lsp \-
+enum nvme_log_ana_lsp \- Asymmetric Namespace Access - Return Groups Only
.SH SYNOPSIS
enum nvme_log_ana_lsp {
.br
-.TH "nvme_lookup_ctrl" 9 "nvme_lookup_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_lookup_ctrl" 9 "nvme_lookup_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_lookup_ctrl \- Lookup nvme_ctrl_t object
.SH SYNOPSIS
-.TH "nvme_lookup_host" 9 "nvme_lookup_host" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_lookup_host" 9 "nvme_lookup_host" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_lookup_host \- Lookup nvme_host_t object
.SH SYNOPSIS
-.TH "nvme_lookup_subsystem" 9 "nvme_lookup_subsystem" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_lookup_subsystem" 9 "nvme_lookup_subsystem" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_lookup_subsystem \- Lookup nvme_subsystem_t object
.SH SYNOPSIS
Subsystem NQN
.SH "DESCRIPTION"
Lookup a \fInvme_subsystem_t\fP object in \fIh\fP base on \fIname\fP (if present)
-and \fIsubsystemnqn\fP or create one if not found.
+and \fIsubsysnqn\fP or create one if not found.
.SH "RETURN"
-nvme_subsystme_t object
+nvme_subsystem_t object
-.TH "libnvme" 9 "struct nvme_media_unit_config_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_media_unit_config_desc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_media_unit_config_desc \-
+struct nvme_media_unit_config_desc \- Media Unit Configuration Descriptor
.SH SYNOPSIS
struct nvme_media_unit_config_desc {
.br
.SH Members
.IP "muid" 12
Media Unit Identifier
+.IP "rsvd2" 12
+Reserved
.IP "mudl" 12
Media Unit Descriptor Length
-.SH "Description"
-Media Unit Configuration Descriptor
-Structure Definitions
-.TH "libnvme" 9 "struct nvme_media_unit_stat_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_media_unit_stat_desc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_media_unit_stat_desc \-
+struct nvme_media_unit_stat_desc \- Media Unit Status Descriptor
.SH SYNOPSIS
struct nvme_media_unit_stat_desc {
.br
-.TH "libnvme" 9 "struct nvme_media_unit_stat_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_media_unit_stat_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_media_unit_stat_log \-
+struct nvme_media_unit_stat_log \- Media Unit Status
.SH SYNOPSIS
struct nvme_media_unit_stat_log {
.br
-.TH "libnvme" 9 "struct nvme_metadata_element_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_metadata_element_desc" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_metadata_element_desc \- Metadata Element Descriptor
.SH SYNOPSIS
--- /dev/null
+.TH "nvme_mi_admin_get_log_page" 9 "nvme_mi_admin_get_log_page" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_admin_get_log_page \- Retrieve log page data from controller
+.SH SYNOPSIS
+.B "int" nvme_mi_admin_get_log_page
+.BI "(nvme_mi_ctrl_t ctrl " ","
+.BI "struct nvme_get_log_args *args " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+Controller to query
+.IP "args" 12
+Get Log Page command arguments
+.SH "DESCRIPTION"
+Performs a Get Log Page Admin command as specified by \fIargs\fP. Response data
+is stored in \fIargs->data\fP, which should be a buffer of \fIargs->data_len\fP bytes.
+Resulting data length is stored in \fIargs->data_len\fP on successful
+command completion.
+
+This request may be implemented as multiple log page commands, in order
+to fit within MI message-size limits.
+
+See: \fIstruct nvme_get_log_args\fP
+.SH "RETURN"
+0 on success, non-zero on failure
--- /dev/null
+.TH "nvme_mi_admin_identify" 9 "nvme_mi_admin_identify" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_admin_identify \- Perform an Admin identify command.
+.SH SYNOPSIS
+.B "int" nvme_mi_admin_identify
+.BI "(nvme_mi_ctrl_t ctrl " ","
+.BI "struct nvme_identify_args *args " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+Controller to process identify command
+.IP "args" 12
+Identify command arguments
+.SH "DESCRIPTION"
+Perform an Identify command, using the Identify command parameters in \fIargs\fP.
+Stores the identify data in ->data, and (if set) the result from cdw0
+into args->result.
+
+Will return an error if the length of the response data (from the
+controller) is not a full \fINVME_IDENTIFY_DATA_SIZE\fP.
+
+See: \fIstruct nvme_identify_args\fP
+.SH "RETURN"
+0 on success, non-zero on failure
--- /dev/null
+.TH "nvme_mi_admin_identify_cns_nsid" 9 "nvme_mi_admin_identify_cns_nsid" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_admin_identify_cns_nsid \- Perform an Admin identify command using specific CNS/NSID parameters.
+.SH SYNOPSIS
+.B "int" nvme_mi_admin_identify_cns_nsid
+.BI "(nvme_mi_ctrl_t ctrl " ","
+.BI "enum nvme_identify_cns cns " ","
+.BI "__u32 nsid " ","
+.BI "void *data " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+Controller to process identify command
+.IP "cns" 12
+Controller or Namespace Structure, specifying identified object
+.IP "nsid" 12
+namespace ID
+.IP "data" 12
+buffer for identify data response
+.SH "DESCRIPTION"
+Perform an Identify command, using the CNS specifier \fIcns\fP, and the
+namespace ID \fInsid\fP if required by the CNS type.
+
+Stores the identify data in \fIdata\fP, which is expected to be a buffer of
+\fINVME_IDENTIFY_DATA_SIZE\fP bytes.
+
+Will return an error if the length of the response data (from the
+controller) is not a full \fINVME_IDENTIFY_DATA_SIZE\fP.
+.SH "RETURN"
+0 on success, non-zero on failure
--- /dev/null
+.TH "nvme_mi_admin_identify_ctrl" 9 "nvme_mi_admin_identify_ctrl" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_admin_identify_ctrl \- Perform an Admin identify for a controller
+.SH SYNOPSIS
+.B "int" nvme_mi_admin_identify_ctrl
+.BI "(nvme_mi_ctrl_t ctrl " ","
+.BI "struct nvme_id_ctrl *id " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+Controller to process identify command
+.IP "id" 12
+Controller identify data to populate
+.SH "DESCRIPTION"
+Perform an Identify command, for the controller specified by \fIctrl\fP,
+writing identify data to \fIid\fP.
+
+Will return an error if the length of the response data (from the
+controller) is not a full \fINVME_IDENTIFY_DATA_SIZE\fP, so \fIid\fP will be
+fully populated on success.
+
+See: \fIstruct nvme_id_ctrl\fP
+.SH "RETURN"
+0 on success, non-zero on failure
--- /dev/null
+.TH "nvme_mi_admin_identify_ctrl_list" 9 "nvme_mi_admin_identify_ctrl_list" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_admin_identify_ctrl_list \- Perform an Admin identify for a controller list.
+.SH SYNOPSIS
+.B "int" nvme_mi_admin_identify_ctrl_list
+.BI "(nvme_mi_ctrl_t ctrl " ","
+.BI "__u16 cntid " ","
+.BI "struct nvme_ctrl_list *list " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+Controller to process identify command
+.IP "cntid" 12
+Controller ID to specify list start
+.IP "list" 12
+List data to populate
+.SH "DESCRIPTION"
+Perform an Identify command, for the controller list starting with
+IDs greater than or equal to \fIcntid\fP.
+
+Will return an error if the length of the response data (from the
+controller) is not a full \fINVME_IDENTIFY_DATA_SIZE\fP, so \fIid\fP will be
+fully populated on success.
+
+See: \fIstruct nvme_ctrl_list\fP
+.SH "RETURN"
+0 on success, non-zero on failure
--- /dev/null
+.TH "nvme_mi_admin_identify_partial" 9 "nvme_mi_admin_identify_partial" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_admin_identify_partial \- Perform an Admin identify command, and retrieve partial response data.
+.SH SYNOPSIS
+.B "int" nvme_mi_admin_identify_partial
+.BI "(nvme_mi_ctrl_t ctrl " ","
+.BI "struct nvme_identify_args *args " ","
+.BI "off_t offset " ","
+.BI "size_t size " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+Controller to process identify command
+.IP "args" 12
+Identify command arguments
+.IP "offset" 12
+offset of identify data to retrieve from response
+.IP "size" 12
+size of identify data to return
+.SH "DESCRIPTION"
+Perform an Identify command, using the Identify command parameters in \fIargs\fP.
+The \fIoffset\fP and \fIsize\fP arguments allow the caller to retrieve part of
+the identify response. See NVMe-MI section 6.2 for the semantics (and some
+handy diagrams) of the offset & size parameters.
+
+Will return an error if the length of the response data (from the controller)
+did not match \fIsize\fP.
+
+Unless you're performing a vendor-unique identify command, You'll probably
+want to use one of the identify helpers (nvme_mi_admin_identify,
+nvme_mi_admin_identify_cns_nsid, or nvme_mi_admin_identify_<type>) instead
+of this. If the type of your identify command is standardized but not
+yet supported by libnvme-mi, please contact the maintainers.
+
+See: \fIstruct nvme_identify_args\fP
+.SH "RETURN"
+0 on success, non-zero on failure
--- /dev/null
+.TH "libnvme" 9 "struct nvme_mi_admin_req_hdr" "July 2022" "API Manual" LINUX
+.SH NAME
+struct nvme_mi_admin_req_hdr \- Admin command request header.
+.SH SYNOPSIS
+struct nvme_mi_admin_req_hdr {
+.br
+.BI " struct nvme_mi_msg_hdr hdr;"
+.br
+.BI " __u8 opcode;"
+.br
+.BI " __u8 flags;"
+.br
+.BI " __le16 ctrl_id;"
+.br
+.BI " __le32 cdw1, cdw2, cdw3, cdw4, cdw5;"
+.br
+.BI " __le32 doff;"
+.br
+.BI " __le32 dlen;"
+.br
+.BI " __le32 rsvd0, rsvd1;"
+.br
+.BI " __le32 cdw10, cdw11, cdw12, cdw13, cdw14, cdw15;"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "hdr" 12
+Generic MI message header
+.IP "opcode" 12
+Admin command opcode (using enum nvme_admin_opcode)
+.IP "flags" 12
+Command Flags, indicating dlen and doff validity; Only defined in
+NVMe-MI version 1.1, no fields defined in 1.2 (where the dlen/doff
+are always considered valid).
+.IP "ctrl_id" 12
+Controller ID target of command
+.IP "cdw1" 12
+Submission Queue Entry doubleword 1
+.IP "cdw2" 12
+Submission Queue Entry doubleword 2
+.IP "cdw3" 12
+Submission Queue Entry doubleword 3
+.IP "cdw4" 12
+Submission Queue Entry doubleword 4
+.IP "cdw5" 12
+Submission Queue Entry doubleword 5
+.IP "doff" 12
+Offset of data to return from command
+.IP "dlen" 12
+Length of sent/returned data
+.IP "rsvd0" 12
+Reserved
+.IP "rsvd1" 12
+Reserved
+.IP "cdw10" 12
+Submission Queue Entry doubleword 10
+.IP "cdw11" 12
+Submission Queue Entry doubleword 11
+.IP "cdw12" 12
+Submission Queue Entry doubleword 12
+.IP "cdw13" 12
+Submission Queue Entry doubleword 13
+.IP "cdw14" 12
+Submission Queue Entry doubleword 14
+.IP "cdw15" 12
+Submission Queue Entry doubleword 15
+.SH "Description"
+Wire format for Admin command message headers, defined in section 6 of
+NVMe-MI.
--- /dev/null
+.TH "libnvme" 9 "struct nvme_mi_admin_resp_hdr" "July 2022" "API Manual" LINUX
+.SH NAME
+struct nvme_mi_admin_resp_hdr \- Admin command response header.
+.SH SYNOPSIS
+struct nvme_mi_admin_resp_hdr {
+.br
+.BI " struct nvme_mi_msg_hdr hdr;"
+.br
+.BI " __u8 status;"
+.br
+.BI " __u8 rsvd0[3];"
+.br
+.BI " __le32 cdw0, cdw1, cdw3;"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "hdr" 12
+Generic MI message header
+.IP "status" 12
+Generic response code, non-zero on failure
+.IP "rsvd0" 12
+Reserved
+.IP "cdw0" 12
+Completion Queue Entry doubleword 0
+.IP "cdw1" 12
+Completion Queue Entry doubleword 1
+.IP "cdw3" 12
+Completion Queue Entry doubleword 3
+.SH "Description"
+This is the generic response format with the three doublewords of completion
+queue data, plus optional response data.
--- /dev/null
+.TH "nvme_mi_admin_security_recv" 9 "nvme_mi_admin_security_recv" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_admin_security_recv \- Perform a Security Receive command on a controller.
+.SH SYNOPSIS
+.B "int" nvme_mi_admin_security_recv
+.BI "(nvme_mi_ctrl_t ctrl " ","
+.BI "struct nvme_security_receive_args *args " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+Controller to send command to
+.IP "args" 12
+Security Receive command arguments
+.SH "DESCRIPTION"
+Performs a Security Receive Admin command as specified by \fIargs\fP. Response
+data is stored in \fIargs->data\fP, which should be a buffer of \fIargs->data_len\fP
+bytes. Resulting data length is stored in \fIargs->data_len\fP on successful
+command completion.
+
+Security Receive data length should not be greater than 4096 bytes to
+comply with specification limits.
+
+See: \fIstruct nvme_get_log_args\fP
+.SH "RETURN"
+0 on success, non-zero on failure
--- /dev/null
+.TH "nvme_mi_admin_security_send" 9 "nvme_mi_admin_security_send" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_admin_security_send \- Perform a Security Send command on a controller.
+.SH SYNOPSIS
+.B "int" nvme_mi_admin_security_send
+.BI "(nvme_mi_ctrl_t ctrl " ","
+.BI "struct nvme_security_send_args *args " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+Controller to send command to
+.IP "args" 12
+Security Send command arguments
+.SH "DESCRIPTION"
+Performs a Security Send Admin command as specified by \fIargs\fP. Response data
+is stored in \fIargs->data\fP, which should be a buffer of \fIargs->data_len\fP bytes.
+Resulting data length is stored in \fIargs->data_len\fP on successful
+command completion.
+
+Security Send data length should not be greater than 4096 bytes to
+comply with specification limits.
+
+See: \fIstruct nvme_get_log_args\fP
+.SH "RETURN"
+0 on success, non-zero on failure
--- /dev/null
+.TH "nvme_mi_admin_xfer" 9 "nvme_mi_admin_xfer" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_admin_xfer \- Raw admin transfer interface.
+.SH SYNOPSIS
+.B "int" nvme_mi_admin_xfer
+.BI "(nvme_mi_ctrl_t ctrl " ","
+.BI "struct nvme_mi_admin_req_hdr *admin_req " ","
+.BI "size_t req_data_size " ","
+.BI "struct nvme_mi_admin_resp_hdr *admin_resp " ","
+.BI "off_t resp_data_offset " ","
+.BI "size_t *resp_data_size " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+controller to send the admin command to
+.IP "admin_req" 12
+request data
+.IP "req_data_size" 12
+size of request data payload
+.IP "admin_resp" 12
+buffer for response data
+.IP "resp_data_offset" 12
+offset into request data to retrieve from controller
+.IP "resp_data_size" 12
+size of response data buffer, updated to received size
+.SH "DESCRIPTION"
+Performs an arbitrary NVMe Admin command, using the provided request data,
+in \fIadmin_req\fP. The size of the request data *payload* is specified in
+\fIreq_data_size\fP - this does not include the standard header length (so a
+header-only request would have a size of 0).
+
+On success, response data is stored in \fIadmin_resp\fP, which has an optional
+appended payload buffer of \fIresp_data_size\fP bytes. The actual payload
+transferred will be stored in \fIresp_data_size\fP. These sizes do not include
+the Admin request header, so 0 represents no payload.
+
+As with all Admin commands, we can request partial data from the Admin
+Response payload, offset by \fIresp_data_offset\fP.
+
+See: \fIstruct nvme_mi_admin_req_hdr\fP and \fIstruct nvme_mi_admin_resp_hdr\fP.
+.SH "RETURN"
+0 on success, non-zero on failure.
--- /dev/null
+.TH "libnvme" 9 "enum nvme_mi_ccs" "July 2022" "API Manual" LINUX
+.SH NAME
+enum nvme_mi_ccs \- Get State Control Primitive Success Response Fields - Control Primitive Specific Response
+.SH SYNOPSIS
+enum nvme_mi_ccs {
+.br
+.BI " NVME_MI_CCS_RDY"
+,
+.br
+.br
+.BI " NVME_MI_CCS_CFS"
+,
+.br
+.br
+.BI " NVME_MI_CCS_SHST"
+,
+.br
+.br
+.BI " NVME_MI_CCS_NSSRO"
+,
+.br
+.br
+.BI " NVME_MI_CCS_CECO"
+,
+.br
+.br
+.BI " NVME_MI_CCS_NAC"
+,
+.br
+.br
+.BI " NVME_MI_CCS_FA"
+,
+.br
+.br
+.BI " NVME_MI_CCS_CSTS"
+,
+.br
+.br
+.BI " NVME_MI_CCS_CTEMP"
+,
+.br
+.br
+.BI " NVME_MI_CCS_PDLU"
+,
+.br
+.br
+.BI " NVME_MI_CCS_SPARE"
+,
+.br
+.br
+.BI " NVME_MI_CCS_CCWARN"
+
+};
+.SH Constants
+.IP "NVME_MI_CCS_RDY" 12
+Ready
+.IP "NVME_MI_CCS_CFS" 12
+Controller Fatal Status
+.IP "NVME_MI_CCS_SHST" 12
+Shutdown Status
+.IP "NVME_MI_CCS_NSSRO" 12
+NVM Subsystem Reset Occurred
+.IP "NVME_MI_CCS_CECO" 12
+Controller Enable Change Occurred
+.IP "NVME_MI_CCS_NAC" 12
+Namespace Attribute Changed
+.IP "NVME_MI_CCS_FA" 12
+Firmware Activated
+.IP "NVME_MI_CCS_CSTS" 12
+Controller Status Change
+.IP "NVME_MI_CCS_CTEMP" 12
+Composite Temperature Change
+.IP "NVME_MI_CCS_PDLU" 12
+Percentage Used
+.IP "NVME_MI_CCS_SPARE" 12
+Available Spare
+.IP "NVME_MI_CCS_CCWARN" 12
+Critical Warning
--- /dev/null
+.TH "nvme_mi_close" 9 "nvme_mi_close" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_close \- Close an endpoint connection and release resources, including controller objects.
+.SH SYNOPSIS
+.B "void" nvme_mi_close
+.BI "(nvme_mi_ep_t ep " ");"
+.SH ARGUMENTS
+.IP "ep" 12
+Endpoint object to close
--- /dev/null
+.TH "nvme_mi_close_ctrl" 9 "nvme_mi_close_ctrl" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_close_ctrl \- free a controller
+.SH SYNOPSIS
+.B "void" nvme_mi_close_ctrl
+.BI "(nvme_mi_ctrl_t ctrl " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+controller to free
-.TH "libnvme" 9 "enum nvme_mi_cmd_supported_effects" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_cmd_supported_effects" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_mi_cmd_supported_effects \- bit field definitions
+enum nvme_mi_cmd_supported_effects \- MI Command Supported and Effects Data Structure
.SH SYNOPSIS
enum nvme_mi_cmd_supported_effects {
.br
.IP "NVME_MI_CMD_SUPPORTED_EFFECTS_CSUPP" 12
Command Supported
.IP "NVME_MI_CMD_SUPPORTED_EFFECTS_UDCC" 12
-User Data Conttent Change
+User Data Content Change
.IP "NVME_MI_CMD_SUPPORTED_EFFECTS_NCC" 12
Namespace Capability Change
.IP "NVME_MI_CMD_SUPPORTED_EFFECTS_NIC" 12
Domain Scope
.IP "NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_NSS" 12
NVM Subsystem Scope
-.SH "Description"
-MI Command Supported and Effects Data Structure definitions
-.TH "libnvme" 9 "struct nvme_mi_cmd_supported_effects_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_cmd_supported_effects_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_cmd_supported_effects_log \-
+struct nvme_mi_cmd_supported_effects_log \- NVMe-MI Commands Supported and Effects Log
.SH SYNOPSIS
struct nvme_mi_cmd_supported_effects_log {
.br
.SH Members
.IP "mi_cmd_support" 12
NVMe-MI Commands Supported
-.SH "Description"
-NVMe-MI Commands Supported and Effects (Log Identifier 13h)
+.IP "reserved1" 12
+Reserved
--- /dev/null
+.TH "libnvme" 9 "enum nvme_mi_config_id" "July 2022" "API Manual" LINUX
+.SH NAME
+enum nvme_mi_config_id \- NVMe-MI Configuration identifier.
+.SH SYNOPSIS
+enum nvme_mi_config_id {
+.br
+.BI " NVME_MI_CONFIG_SMBUS_FREQ"
+,
+.br
+.br
+.BI " NVME_MI_CONFIG_HEALTH_STATUS_CHANGE"
+,
+.br
+.br
+.BI " NVME_MI_CONFIG_MCTP_MTU"
+
+};
+.SH Constants
+.IP "NVME_MI_CONFIG_SMBUS_FREQ" 12
+Current SMBus/I2C frequency
+.IP "NVME_MI_CONFIG_HEALTH_STATUS_CHANGE" 12
+Health Status change - used to clear
+health status bits in CCS bits of
+status poll. Only for Set ops.
+.IP "NVME_MI_CONFIG_MCTP_MTU" 12
+MCTP maximum transmission unit size of port
+specified in dw 0
+.SH "Description"
+Configuration parameters for the MI Get/Set Configuration commands.
+
+See &\fBnvme_mi_mi_config_get\fP and &\fBnvme_mi_config_set\fP.
--- /dev/null
+.TH "libnvme" 9 "enum nvme_mi_config_smbus_freq" "July 2022" "API Manual" LINUX
+.SH NAME
+enum nvme_mi_config_smbus_freq \- SMBus/I2C frequency values
+.SH SYNOPSIS
+enum nvme_mi_config_smbus_freq {
+.br
+.BI " NVME_MI_CONFIG_SMBUS_FREQ_100kHz"
+,
+.br
+.br
+.BI " NVME_MI_CONFIG_SMBUS_FREQ_400kHz"
+,
+.br
+.br
+.BI " NVME_MI_CONFIG_SMBUS_FREQ_1MHz"
+
+};
+.SH Constants
+.IP "NVME_MI_CONFIG_SMBUS_FREQ_100kHz" 12
+100kHz
+.IP "NVME_MI_CONFIG_SMBUS_FREQ_400kHz" 12
+400kHz
+.IP "NVME_MI_CONFIG_SMBUS_FREQ_1MHz" 12
+1MHz
+.SH "Description"
+Values used in the SMBus Frequency device configuration. See
+&\fBnvme_mi_mi_config_get_smbus_freq\fP and &\fBnvme_mi_mi_config_set_smbus_freq\fP.
--- /dev/null
+.TH "nvme_mi_create_root" 9 "nvme_mi_create_root" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_create_root \- Create top-level MI (root) handle.
+.SH SYNOPSIS
+.B "nvme_root_t" nvme_mi_create_root
+.BI "(FILE *fp " ","
+.BI "int log_level " ");"
+.SH ARGUMENTS
+.IP "fp" 12
+File descriptor for logging messages
+.IP "log_level" 12
+Logging level to use
+.SH "DESCRIPTION"
+Create the top-level (library) handle for creating subsequent endpoint
+objects. Similar to \fBnvme_create_root\fP, but we provide this to allow linking
+without the core libnvme.
+
+See \fInvme_create_root\fP.
+.SH "RETURN"
+new root object, or NULL on failure.
+++ /dev/null
-.TH "libnvme" 9 "enum nvme_mi_css" "April 2022" "API Manual" LINUX
-.SH NAME
-enum nvme_mi_css \-
-.SH SYNOPSIS
-enum nvme_mi_css {
-.br
-.BI " NVME_MI_CCS_RDY"
-,
-.br
-.br
-.BI " NVME_MI_CSS_CFS"
-,
-.br
-.br
-.BI " NVME_MI_CSS_SHST"
-,
-.br
-.br
-.BI " NVME_MI_CSS_NSSRO"
-,
-.br
-.br
-.BI " NVME_MI_CSS_CECO"
-,
-.br
-.br
-.BI " NVME_MI_CSS_NAC"
-,
-.br
-.br
-.BI " NVME_MI_CSS_FA"
-,
-.br
-.br
-.BI " NVME_MI_CSS_CSTS"
-,
-.br
-.br
-.BI " NVME_MI_CSS_CTEMP"
-,
-.br
-.br
-.BI " NVME_MI_CSS_PDLU"
-,
-.br
-.br
-.BI " NVME_MI_CSS_SPARE"
-,
-.br
-.br
-.BI " NVME_MI_CSS_CCWARN"
-
-};
-.SH Constants
-.IP "NVME_MI_CCS_RDY" 12
-Ready
-.IP "NVME_MI_CSS_CFS" 12
-Controller Fatal Status
-.IP "NVME_MI_CSS_SHST" 12
-Shutdown Status
-.IP "NVME_MI_CSS_NSSRO" 12
-NVM Subsystem Reset Occurred
-.IP "NVME_MI_CSS_CECO" 12
-Controller Enable Change Occurred
-.IP "NVME_MI_CSS_NAC" 12
-Namespace Attribute Changed
-.IP "NVME_MI_CSS_FA" 12
-Firmware Activated
-.IP "NVME_MI_CSS_CSTS" 12
-Controller Status Change
-.IP "NVME_MI_CSS_CTEMP" 12
-Composite Temperature Change
-.IP "NVME_MI_CSS_PDLU" 12
-Percentage Used
-.IP "NVME_MI_CSS_SPARE" 12
-Available Spare
-.IP "NVME_MI_CSS_CCWARN" 12
-Critical Warning
-.TH "libnvme" 9 "enum nvme_mi_csts" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_csts" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_mi_csts \-
+enum nvme_mi_csts \- Controller Health Data Structure (CHDS) - Controller Status (CSTS)
.SH SYNOPSIS
enum nvme_mi_csts {
.br
-.TH "libnvme" 9 "struct nvme_mi_ctrl_health_status" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_ctrl_health_status" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_ctrl_health_status \-
+struct nvme_mi_ctrl_health_status \- Controller Health Data Structure (CHDS)
.SH SYNOPSIS
struct nvme_mi_ctrl_health_status {
.br
-.TH "libnvme" 9 "enum nvme_mi_cwarn" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_cwarn" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_mi_cwarn \-
+enum nvme_mi_cwarn \- Controller Health Data Structure (CHDS) - Critical Warning (CWARN)
.SH SYNOPSIS
enum nvme_mi_cwarn {
.br
--- /dev/null
+.TH "libnvme" 9 "enum nvme_mi_dtyp" "July 2022" "API Manual" LINUX
+.SH NAME
+enum nvme_mi_dtyp \- Data Structure Type field.
+.SH SYNOPSIS
+enum nvme_mi_dtyp {
+.br
+.BI " nvme_mi_dtyp_subsys_info"
+,
+.br
+.br
+.BI " nvme_mi_dtyp_port_info"
+,
+.br
+.br
+.BI " nvme_mi_dtyp_ctrl_list"
+,
+.br
+.br
+.BI " nvme_mi_dtyp_ctrl_info"
+,
+.br
+.br
+.BI " nvme_mi_dtyp_opt_cmd_support"
+,
+.br
+.br
+.BI " nvme_mi_dtyp_meb_support"
+
+};
+.SH Constants
+.IP "nvme_mi_dtyp_subsys_info" 12
+NVM Subsystem Information
+.IP "nvme_mi_dtyp_port_info" 12
+Port information
+.IP "nvme_mi_dtyp_ctrl_list" 12
+Controller List
+.IP "nvme_mi_dtyp_ctrl_info" 12
+Controller Information
+.IP "nvme_mi_dtyp_opt_cmd_support" 12
+Optionally Supported Command List
+.IP "nvme_mi_dtyp_meb_support" 12
+Management Endpoint Buffer Command Support List
+.SH "Description"
+Data Structure Type field for Read NVMe-MI Data Structure command, used to
+indicate the particular structure to query from the endpoint.
-.TH "libnvme" 9 "enum nvme_mi_elem" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_elem" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_mi_elem \-
+enum nvme_mi_elem \- Element Descriptor Types
.SH SYNOPSIS
enum nvme_mi_elem {
.br
--- /dev/null
+.TH "nvme_mi_free_root" 9 "nvme_mi_free_root" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_free_root \- Free root object.
+.SH SYNOPSIS
+.B "void" nvme_mi_free_root
+.BI "(nvme_root_t root " ");"
+.SH ARGUMENTS
+.IP "root" 12
+root to free
--- /dev/null
+.TH "nvme_mi_init_ctrl" 9 "nvme_mi_init_ctrl" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_init_ctrl \- initialise a NVMe controller.
+.SH SYNOPSIS
+.B "nvme_mi_ctrl_t" nvme_mi_init_ctrl
+.BI "(nvme_mi_ep_t ep " ","
+.BI "__u16 ctrl_id " ");"
+.SH ARGUMENTS
+.IP "ep" 12
+Endpoint to create under
+.IP "ctrl_id" 12
+ID of controller to initialize.
+.SH "DESCRIPTION"
+Create a connection to a controller behind the endpoint specified in \fIep\fP.
+Controller IDs may be queried from the endpoint through
+\fInvme_mi_mi_read_mi_data_ctrl_list\fP.
+
+See \fInvme_mi_close_ctrl\fP
+.SH "RETURN"
+New controller object, or NULL on failure.
--- /dev/null
+.TH "libnvme" 9 "enum nvme_mi_message_type" "July 2022" "API Manual" LINUX
+.SH NAME
+enum nvme_mi_message_type \- NVMe-MI message type field.
+.SH SYNOPSIS
+enum nvme_mi_message_type {
+.br
+.BI " NVME_MI_MT_CONTROL"
+,
+.br
+.br
+.BI " NVME_MI_MT_MI"
+,
+.br
+.br
+.BI " NVME_MI_MT_ADMIN"
+,
+.br
+.br
+.BI " NVME_MI_MT_PCIE"
+
+};
+.SH Constants
+.IP "NVME_MI_MT_CONTROL" 12
+NVME-MI Control Primitive
+.IP "NVME_MI_MT_MI" 12
+NVMe-MI command
+.IP "NVME_MI_MT_ADMIN" 12
+NVMe Admin command
+.IP "NVME_MI_MT_PCIE" 12
+PCIe command
+.SH "Description"
+Used as byte 1 of both request and response messages (NMIMT bits of NMP
+byte). Not to be confused with the MCTP message type in byte 0.
--- /dev/null
+.TH "libnvme" 9 "enum nvme_mi_mi_opcode" "July 2022" "API Manual" LINUX
+.SH NAME
+enum nvme_mi_mi_opcode \- Operation code for supported NVMe-MI commands.
+.SH SYNOPSIS
+enum nvme_mi_mi_opcode {
+.br
+.BI " nvme_mi_mi_opcode_mi_data_read"
+,
+.br
+.br
+.BI " nvme_mi_mi_opcode_subsys_health_status_poll"
+,
+.br
+.br
+.BI " nvme_mi_mi_opcode_configuration_set"
+,
+.br
+.br
+.BI " nvme_mi_mi_opcode_configuration_get"
+
+};
+.SH Constants
+.IP "nvme_mi_mi_opcode_mi_data_read" 12
+Read NVMe-MI Data Structure
+.IP "nvme_mi_mi_opcode_subsys_health_status_poll" 12
+Subsystem Health Status Poll
+.IP "nvme_mi_mi_opcode_configuration_set" 12
+MI Configuration Set
+.IP "nvme_mi_mi_opcode_configuration_get" 12
+MI Configuration Get
--- /dev/null
+.TH "nvme_mi_mi_read_mi_data_ctrl" 9 "nvme_mi_mi_read_mi_data_ctrl" "July 2022" "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
+.B "int" nvme_mi_mi_read_mi_data_ctrl
+.BI "(nvme_mi_ep_t ep " ","
+.BI "__u16 ctrl_id " ","
+.BI "struct nvme_mi_read_ctrl_info *ctrl " ");"
+.SH ARGUMENTS
+.IP "ep" 12
+endpoint for MI communication
+.IP "ctrl_id" 12
+ID of controller to query
+.IP "ctrl" 12
+controller data to populate
+.SH "DESCRIPTION"
+Retrieves the Controller Information Data Structure for the attached
+controller with ID \fIctrlid\fP.
+
+See \fIstruct nvme_mi_read_ctrl_info\fP.
+.SH "RETURN"
+0 on success, non-zero on failure.
--- /dev/null
+.TH "nvme_mi_mi_read_mi_data_ctrl_list" 9 "nvme_mi_mi_read_mi_data_ctrl_list" "July 2022" "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
+.B "int" nvme_mi_mi_read_mi_data_ctrl_list
+.BI "(nvme_mi_ep_t ep " ","
+.BI "__u8 start_ctrlid " ","
+.BI "struct nvme_ctrl_list *list " ");"
+.SH ARGUMENTS
+.IP "ep" 12
+endpoint for MI communication
+.IP "start_ctrlid" 12
+starting controller ID
+.IP "list" 12
+controller list to populate
+.SH "DESCRIPTION"
+Retrieves the list of attached controllers, with IDs greater than or
+equal to \fIstart_ctrlid\fP.
+
+See \fIstruct nvme_ctrl_list\fP.
+.SH "RETURN"
+0 on success, non-zero on failure.
--- /dev/null
+.TH "nvme_mi_mi_read_mi_data_port" 9 "nvme_mi_mi_read_mi_data_port" "July 2022" "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
+.B "int" nvme_mi_mi_read_mi_data_port
+.BI "(nvme_mi_ep_t ep " ","
+.BI "__u8 portid " ","
+.BI "struct nvme_mi_read_port_info *p " ");"
+.SH ARGUMENTS
+.IP "ep" 12
+endpoint for MI communication
+.IP "portid" 12
+id of port data to retrieve
+.IP "p" 12
+port information to populate
+.SH "DESCRIPTION"
+Retrieves the Port information, for the specified port ID. The subsystem
+data (from \fInvme_mi_mi_read_mi_data_subsys\fP) nmp field contains the allowed
+range of port IDs.
+
+See \fIstruct nvme_mi_read_port_info\fP.
+.SH "RETURN"
+0 on success, non-zero on failure.
--- /dev/null
+.TH "nvme_mi_mi_read_mi_data_subsys" 9 "nvme_mi_mi_read_mi_data_subsys" "July 2022" "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
+.B "int" nvme_mi_mi_read_mi_data_subsys
+.BI "(nvme_mi_ep_t ep " ","
+.BI "struct nvme_mi_read_nvm_ss_info *s " ");"
+.SH ARGUMENTS
+.IP "ep" 12
+endpoint for MI communication
+.IP "s" 12
+subsystem information to populate
+.SH "DESCRIPTION"
+Retrieves the Subsystem information - number of external ports and
+NVMe version information. See \fIstruct nvme_mi_read_nvm_ss_info\fP.
+.SH "RETURN"
+0 on success, non-zero on failure.
--- /dev/null
+.TH "libnvme" 9 "struct nvme_mi_mi_req_hdr" "July 2022" "API Manual" LINUX
+.SH NAME
+struct nvme_mi_mi_req_hdr \- MI request message header.
+.SH SYNOPSIS
+struct nvme_mi_mi_req_hdr {
+.br
+.BI " struct nvme_mi_msg_hdr hdr;"
+.br
+.BI " __u8 opcode;"
+.br
+.BI " __u8 rsvd0[3];"
+.br
+.BI " __le32 cdw0, cdw1;"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "hdr" 12
+generic MI message header
+.IP "opcode" 12
+opcode (OPC) for the specific MI command
+.IP "rsvd0" 12
+reserved bytes
+.IP "cdw0" 12
+Management Request Doubleword 0 - command specific usage
+.IP "cdw1" 12
+Management Request Doubleword 1 - command specific usage
+.SH "Description"
+Wire format for MI request message headers, defined in section 5 of NVMe-MI.
--- /dev/null
+.TH "libnvme" 9 "struct nvme_mi_mi_resp_hdr" "July 2022" "API Manual" LINUX
+.SH NAME
+struct nvme_mi_mi_resp_hdr \- MI response message header.
+.SH SYNOPSIS
+struct nvme_mi_mi_resp_hdr {
+.br
+.BI " struct nvme_mi_msg_hdr hdr;"
+.br
+.BI " __u8 status;"
+.br
+.BI " __u8 nmresp[3];"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "hdr" 12
+generic MI message header
+.IP "status" 12
+generic response status from command; non-zero on failure.
+.IP "nmresp" 12
+NVMe Management Response: command-type-specific response data
+.SH "Description"
+Wire format for MI response message header, defined in section 5 of NVMe-MI.
--- /dev/null
+.TH "nvme_mi_mi_subsystem_health_status_poll" 9 "nvme_mi_mi_subsystem_health_status_poll" "July 2022" "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
+.B "int" nvme_mi_mi_subsystem_health_status_poll
+.BI "(nvme_mi_ep_t ep " ","
+.BI "bool clear " ","
+.BI "struct nvme_mi_nvm_ss_health_status *nshds " ");"
+.SH ARGUMENTS
+.IP "ep" 12
+endpoint for MI communication
+.IP "clear" 12
+flag to clear the Composite Controller Status state
+.IP "nshds" 12
+subsystem health status data to populate
+.SH "DESCRIPTION"
+Retrieves the Subsystem Health Data Structure into \fInshds\fP. If \fIclear\fP is
+set, requests that the Composite Controller Status bits are cleared after
+the read. See NVMe-MI section 5.6 for details on the CCS bits.
+
+See \fIstruct nvme_mi_nvm_ss_health_status\fP.
+.SH "RETURN"
+0 on success, non-zero on failure.
--- /dev/null
+.TH "libnvme" 9 "struct nvme_mi_msg_hdr" "July 2022" "API Manual" LINUX
+.SH NAME
+struct nvme_mi_msg_hdr \- General MI message header.
+.SH SYNOPSIS
+struct nvme_mi_msg_hdr {
+.br
+.BI " __u8 type;"
+.br
+.BI " __u8 nmp;"
+.br
+.BI " __u8 meb;"
+.br
+.BI " __u8 rsvd0;"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "type" 12
+MCTP message type, will always be NVME_MI_MSGTYPE_NVME
+.IP "nmp" 12
+NVMe-MI message parameters (including MI message type)
+.IP "meb" 12
+Management Endpoint Buffer flag; unused for libnvme-mi implementation
+.IP "rsvd0" 12
+currently reserved
+.SH "Description"
+Wire format shared by both request and response messages, per NVMe-MI
+section 3.1. This is used for all message types, MI and Admin.
--- /dev/null
+.TH "libnvme" 9 "struct nvme_mi_msg_resp" "July 2022" "API Manual" LINUX
+.SH NAME
+struct nvme_mi_msg_resp \- Generic response type.
+.SH SYNOPSIS
+struct nvme_mi_msg_resp {
+.br
+.BI " struct nvme_mi_msg_hdr hdr;"
+.br
+.BI " __u8 status;"
+.br
+.BI " __u8 rsvd0[3];"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "hdr" 12
+the general request/response message header
+.IP "status" 12
+response status value (see \fIenum nvme_mi_resp_status\fP)
+.IP "rsvd0" 12
+reserved data, may be defined by specific response
+.SH "Description"
+Every response will start with one of these; command-specific responses
+will define parts of the reserved data, and may add further fields.
-.TH "libnvme" 9 "struct nvme_mi_nvm_ss_health_status" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_nvm_ss_health_status" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_nvm_ss_health_status \-
+struct nvme_mi_nvm_ss_health_status \- Subsystem Management Data Structure
.SH SYNOPSIS
struct nvme_mi_nvm_ss_health_status {
.br
--- /dev/null
+.TH "nvme_mi_open_mctp" 9 "nvme_mi_open_mctp" "July 2022" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_open_mctp \- Create an endpoint using a MCTP connection.
+.SH SYNOPSIS
+.B "nvme_mi_ep_t" nvme_mi_open_mctp
+.BI "(nvme_root_t root " ","
+.BI "unsigned int netid " ","
+.BI "uint8_t eid " ");"
+.SH ARGUMENTS
+.IP "root" 12
+root object to create under
+.IP "netid" 12
+MCTP network ID on this system
+.IP "eid" 12
+MCTP endpoint ID
+.SH "DESCRIPTION"
+Transport-specific endpoint initialization for MI-connected endpoints. Once
+an endpoint is created, the rest of the API is transport-independent.
+
+See \fInvme_mi_close\fP
+.SH "RETURN"
+New endpoint object for \fInetid\fP & \fIeid\fP, or NULL on failure.
-.TH "libnvme" 9 "struct nvme_mi_osc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_osc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_osc \-
+struct nvme_mi_osc \- Optionally Supported Command Data Structure
.SH SYNOPSIS
struct nvme_mi_osc {
.br
-.TH "libnvme" 9 "struct nvme_mi_port_pcie" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_port_pcie" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_port_pcie \-
+struct nvme_mi_port_pcie \- PCIe Port Specific Data
.SH SYNOPSIS
struct nvme_mi_port_pcie {
.br
-.TH "libnvme" 9 "struct nvme_mi_port_smb" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_port_smb" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_port_smb \-
+struct nvme_mi_port_smb \- SMBus Port Specific Data
.SH SYNOPSIS
struct nvme_mi_port_smb {
.br
-.TH "libnvme" 9 "struct nvme_mi_read_ctrl_info" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_read_ctrl_info" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_read_ctrl_info \-
+struct nvme_mi_read_ctrl_info \- Controller Information Data Structure
.SH SYNOPSIS
struct nvme_mi_read_ctrl_info {
.br
-.TH "libnvme" 9 "struct nvme_mi_read_nvm_ss_info" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_read_nvm_ss_info" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_read_nvm_ss_info \-
+struct nvme_mi_read_nvm_ss_info \- NVM Subsystem Information Data Structure
.SH SYNOPSIS
struct nvme_mi_read_nvm_ss_info {
.br
-.TH "libnvme" 9 "struct nvme_mi_read_port_info" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_read_port_info" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_read_port_info \-
+struct nvme_mi_read_port_info \- Port Information Data Structure
.SH SYNOPSIS
struct nvme_mi_read_port_info {
.br
-.TH "libnvme" 9 "struct nvme_mi_read_sc_list" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_read_sc_list" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_read_sc_list \-
+struct nvme_mi_read_sc_list \- Management Endpoint Buffer Supported Command List Data Structure
.SH SYNOPSIS
struct nvme_mi_read_sc_list {
.br
.IP "numcmd" 12
Number of Commands
.IP "cmds" 12
-MEB supported Command Data Structure
+MEB supported Command Data Structure.
+See \fIstruct\fP nvme_mi_osc
--- /dev/null
+.TH "libnvme" 9 "enum nvme_mi_resp_status" "July 2022" "API Manual" LINUX
+.SH NAME
+enum nvme_mi_resp_status \- values for the response status field
+.SH SYNOPSIS
+enum nvme_mi_resp_status {
+.br
+.BI " NVME_MI_RESP_SUCCESS"
+,
+.br
+.br
+.BI " NVME_MI_RESP_MPR"
+,
+.br
+.br
+.BI " NVME_MI_RESP_INTERNAL_ERR"
+,
+.br
+.br
+.BI " NVME_MI_RESP_INVALID_OPCODE"
+,
+.br
+.br
+.BI " NVME_MI_RESP_INVALID_PARAM"
+,
+.br
+.br
+.BI " NVME_MI_RESP_INVALID_CMD_SIZE"
+,
+.br
+.br
+.BI " NVME_MI_RESP_INVALID_INPUT_SIZE"
+,
+.br
+.br
+.BI " NVME_MI_RESP_ACCESS_DENIED"
+,
+.br
+.br
+.BI " NVME_MI_RESP_VPD_UPDATES_EXCEEDED"
+,
+.br
+.br
+.BI " NVME_MI_RESP_PCIE_INACCESSIBLE"
+,
+.br
+.br
+.BI " NVME_MI_RESP_MEB_SANITIZED"
+,
+.br
+.br
+.BI " NVME_MI_RESP_ENC_SERV_FAILURE"
+,
+.br
+.br
+.BI " NVME_MI_RESP_ENC_SERV_XFER_FAILURE"
+,
+.br
+.br
+.BI " NVME_MI_RESP_ENC_FAILURE"
+,
+.br
+.br
+.BI " NVME_MI_RESP_ENC_XFER_REFUSED"
+,
+.br
+.br
+.BI " NVME_MI_RESP_ENC_FUNC_UNSUP"
+,
+.br
+.br
+.BI " NVME_MI_RESP_ENC_SERV_UNAVAIL"
+,
+.br
+.br
+.BI " NVME_MI_RESP_ENC_DEGRADED"
+,
+.br
+.br
+.BI " NVME_MI_RESP_SANITIZE_IN_PROGRESS"
+
+};
+.SH Constants
+.IP "NVME_MI_RESP_SUCCESS" 12
+success
+.IP "NVME_MI_RESP_MPR" 12
+More Processing Required
+.IP "NVME_MI_RESP_INTERNAL_ERR" 12
+Internal Error
+.IP "NVME_MI_RESP_INVALID_OPCODE" 12
+Invalid command opcode
+.IP "NVME_MI_RESP_INVALID_PARAM" 12
+Invalid command parameter
+.IP "NVME_MI_RESP_INVALID_CMD_SIZE" 12
+Invalid command size
+.IP "NVME_MI_RESP_INVALID_INPUT_SIZE" 12
+Invalid command input data size
+.IP "NVME_MI_RESP_ACCESS_DENIED" 12
+Access Denied
+.IP "NVME_MI_RESP_VPD_UPDATES_EXCEEDED" 12
+More VPD updates than allowed
+.IP "NVME_MI_RESP_PCIE_INACCESSIBLE" 12
+PCIe functionality currently unavailable
+.IP "NVME_MI_RESP_MEB_SANITIZED" 12
+MEB has been cleared due to sanitize
+.IP "NVME_MI_RESP_ENC_SERV_FAILURE" 12
+Enclosure services process failed
+.IP "NVME_MI_RESP_ENC_SERV_XFER_FAILURE" 12
+Transfer with enclosure services failed
+.IP "NVME_MI_RESP_ENC_FAILURE" 12
+Unreoverable enclosure failure
+.IP "NVME_MI_RESP_ENC_XFER_REFUSED" 12
+Enclosure services transfer refused
+.IP "NVME_MI_RESP_ENC_FUNC_UNSUP" 12
+Unsupported enclosure services function
+.IP "NVME_MI_RESP_ENC_SERV_UNAVAIL" 12
+Enclosure services unavailable
+.IP "NVME_MI_RESP_ENC_DEGRADED" 12
+Noncritical failure detected by enc. services
+.IP "NVME_MI_RESP_SANITIZE_IN_PROGRESS" 12
+Command prohibited during sanitize
-.TH "libnvme" 9 "struct nvme_mi_vpd_hdr" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_hdr" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_vpd_hdr \-
+struct nvme_mi_vpd_hdr \- Vital Product Data Common Header
.SH SYNOPSIS
struct nvme_mi_vpd_hdr {
.br
-.TH "libnvme" 9 "struct nvme_mi_vpd_mr_common" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_mr_common" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_vpd_mr_common \-
+struct nvme_mi_vpd_mr_common \- NVMe MultiRecord Area
.SH SYNOPSIS
struct nvme_mi_vpd_mr_common {
.br
-.TH "libnvme" 9 "struct nvme_mi_vpd_mra" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_mra" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_vpd_mra \-
+struct nvme_mi_vpd_mra \- NVMe MultiRecord Area
.SH SYNOPSIS
struct nvme_mi_vpd_mra {
.br
.IP "rsvd17" 12
Reserved
.IP "m33vapsr" 12
-Maximum 3.3 V aux Power Supply Requirements
+Maximum 3.3 Vi aux Power Supply Requirements
.IP "i5vapsr" 12
Initial 5 V Power Supply Requirements
.IP "m5vapsr" 12
-.TH "libnvme" 9 "struct nvme_mi_vpd_ppmra" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_ppmra" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_vpd_ppmra \-
+struct nvme_mi_vpd_ppmra \- NVMe PCIe Port MultiRecord Area
.SH SYNOPSIS
struct nvme_mi_vpd_ppmra {
.br
-.TH "libnvme" 9 "struct nvme_mi_vpd_telem" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_telem" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_vpd_telem \-
+struct nvme_mi_vpd_telem \- Vital Product Data Element Descriptor
.SH SYNOPSIS
struct nvme_mi_vpd_telem {
.br
-.TH "libnvme" 9 "struct nvme_mi_vpd_tra" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_tra" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_mi_vpd_tra \-
+struct nvme_mi_vpd_tra \- Vital Product Data Topology MultiRecord
.SH SYNOPSIS
struct nvme_mi_vpd_tra {
.br
-.TH "nvme_namespace_attach_ctrls" 9 "nvme_namespace_attach_ctrls" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_namespace_attach_ctrls" 9 "nvme_namespace_attach_ctrls" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_namespace_attach_ctrls \- Attach namespace to controller(s)
.SH SYNOPSIS
-.TH "nvme_namespace_detach_ctrls" 9 "nvme_namespace_detach_ctrls" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_namespace_detach_ctrls" 9 "nvme_namespace_detach_ctrls" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_namespace_detach_ctrls \- Detach namespace from controller(s)
.SH SYNOPSIS
-.TH "nvme_namespace_filter" 9 "nvme_namespace_filter" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_namespace_filter" 9 "nvme_namespace_filter" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_namespace_filter \- Filter for namespaces
.SH SYNOPSIS
-.TH "nvme_namespace_first_path" 9 "nvme_namespace_first_path" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_namespace_first_path" 9 "nvme_namespace_first_path" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_namespace_first_path \- Start path iterator
.SH SYNOPSIS
-.TH "nvme_namespace_for_each_path" 9 "nvme_namespace_for_each_path" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_namespace_for_each_path" 9 "nvme_namespace_for_each_path" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_namespace_for_each_path \- Traverse paths
.SH SYNOPSIS
.B "nvme_namespace_for_each_path
-.BI "(c " ","
+.BI "(n " ","
.BI "p " ");"
.SH ARGUMENTS
-.IP "c" 12
--- undescribed --
+.IP "n" 12
+Namespace instance
.IP "p" 12
\fInvme_path_t\fP object
-.TH "nvme_namespace_for_each_path_safe" 9 "nvme_namespace_for_each_path_safe" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_namespace_for_each_path_safe" 9 "nvme_namespace_for_each_path_safe" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_namespace_for_each_path_safe \- Traverse paths
.SH SYNOPSIS
.BI "_p " ");"
.SH ARGUMENTS
.IP "n" 12
--- undescribed --
+Namespace instance
.IP "p" 12
\fInvme_path_t\fP object
.IP "_p" 12
-.TH "nvme_namespace_next_path" 9 "nvme_namespace_next_path" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_namespace_next_path" 9 "nvme_namespace_next_path" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_namespace_next_path \- Next path iterator
.SH SYNOPSIS
.B "nvme_path_t" nvme_namespace_next_path
-.BI "(nvme_ns_t c " ","
+.BI "(nvme_ns_t ns " ","
.BI "nvme_path_t p " ");"
.SH ARGUMENTS
-.IP "c" 12
--- undescribed --
+.IP "ns" 12
+Namespace instance
.IP "p" 12
Previous \fInvme_path_t\fP object of an \fIns\fP iterator
.SH "RETURN"
-.TH "libnvme" 9 "enum nvme_nd_ns_fpi" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_nd_ns_fpi" "July 2022" "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
-.TH "nvme_next_host" 9 "nvme_next_host" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_next_host" 9 "nvme_next_host" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_next_host \- Next host iterator
.SH SYNOPSIS
-.TH "nvme_next_subsystem" 9 "nvme_next_subsystem" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_next_subsystem" 9 "nvme_next_subsystem" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_next_subsystem \- Next subsystem iterator
.SH SYNOPSIS
-.TH "nvme_ns_attach" 9 "nvme_ns_attach" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_attach" 9 "nvme_ns_attach" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_attach \- Attach or detach namespace to controller(s)
.SH SYNOPSIS
.SH ARGUMENTS
.IP "args" 12
\fIstruct nvme_ns_attach_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.
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_ns_attach_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_ns_attach_args \- Arguments for Nvme Namespace Management command
-.SH SYNOPSIS
-struct nvme_ns_attach_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " struct nvme_ctrl_list *ctrlist;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_ns_attach_sel sel;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-NVMe command result
-.IP "ctrlist" 12
-Controller list to modify attachment state of nsid
-.IP "args_size" 12
-Size of \fIstruct nvme_ns_attach_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID to execute attach selection
-.IP "sel" 12
-Attachment selection, see \fIenum nvme_ns_attach_sel\fP
-.TH "nvme_ns_attach_ctrls" 9 "nvme_ns_attach_ctrls" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_attach_ctrls" 9 "nvme_ns_attach_ctrls" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_ns_attach_ctrls \-
+nvme_ns_attach_ctrls \- Attach namespace to controllers
.SH SYNOPSIS
.B "int" nvme_ns_attach_ctrls
.BI "(int fd " ","
Namespace ID to attach
.IP "ctrlist" 12
Controller list to modify attachment state of nsid
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "libnvme" 9 "enum nvme_ns_attach_sel" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ns_attach_sel" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_ns_attach_sel \-
+enum nvme_ns_attach_sel \- Namespace Attachment - Select
.SH SYNOPSIS
enum nvme_ns_attach_sel {
.br
-.TH "nvme_ns_compare" 9 "nvme_ns_compare" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_compare" 9 "nvme_ns_compare" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_compare \- Compare data on a namespace
.SH SYNOPSIS
-.TH "nvme_ns_detach_ctrls" 9 "nvme_ns_detach_ctrls" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_detach_ctrls" 9 "nvme_ns_detach_ctrls" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_ns_detach_ctrls \-
+nvme_ns_detach_ctrls \- Detach namespace from controllers
.SH SYNOPSIS
.B "int" nvme_ns_detach_ctrls
.BI "(int fd " ","
Namespace ID to detach
.IP "ctrlist" 12
Controller list to modify attachment state of nsid
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_ns_flush" 9 "nvme_ns_flush" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_flush" 9 "nvme_ns_flush" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_flush \- Flush data to a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_csi" 9 "nvme_ns_get_csi" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_csi" 9 "nvme_ns_get_csi" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_csi \- Command set identifier of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_ctrl" 9 "nvme_ns_get_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_ctrl" 9 "nvme_ns_get_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_ctrl \- &nvme_ctrl_t of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_fd" 9 "nvme_ns_get_fd" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_fd" 9 "nvme_ns_get_fd" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_ns_get_fd \- Get associated filedescriptor
+nvme_ns_get_fd \- Get associated file descriptor
.SH SYNOPSIS
.B "int" nvme_ns_get_fd
.BI "(nvme_ns_t n " ");"
-.TH "nvme_ns_get_firmware" 9 "nvme_ns_get_firmware" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_firmware" 9 "nvme_ns_get_firmware" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_firmware \- Firmware string of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_generic_name" 9 "nvme_ns_get_generic_name" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_generic_name" 9 "nvme_ns_get_generic_name" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_generic_name \- Returns name of generic namespace chardev.
.SH SYNOPSIS
-.TH "nvme_ns_get_lba_count" 9 "nvme_ns_get_lba_count" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_lba_count" 9 "nvme_ns_get_lba_count" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_lba_count \- LBA count of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_lba_size" 9 "nvme_ns_get_lba_size" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_lba_size" 9 "nvme_ns_get_lba_size" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_lba_size \- LBA size of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_lba_util" 9 "nvme_ns_get_lba_util" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_lba_util" 9 "nvme_ns_get_lba_util" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_ns_get_lba_util \- LBA utilisation of a namespace
+nvme_ns_get_lba_util \- LBA utilization of a namespace
.SH SYNOPSIS
.B "uint64_t" nvme_ns_get_lba_util
.BI "(nvme_ns_t n " ");"
.IP "n" 12
Namespace instance
.SH "RETURN"
-LBA utilisation of \fIn\fP
+LBA utilization of \fIn\fP
-.TH "nvme_ns_get_meta_size" 9 "nvme_ns_get_meta_size" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_meta_size" 9 "nvme_ns_get_meta_size" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_meta_size \- Metadata size of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_model" 9 "nvme_ns_get_model" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_model" 9 "nvme_ns_get_model" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_model \- Model of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_name" 9 "nvme_ns_get_name" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_name" 9 "nvme_ns_get_name" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_name \- sysfs name of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_nguid" 9 "nvme_ns_get_nguid" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_nguid" 9 "nvme_ns_get_nguid" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_nguid \- 128-bit nguid of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_nsid" 9 "nvme_ns_get_nsid" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_nsid" 9 "nvme_ns_get_nsid" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_nsid \- NSID of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_serial" 9 "nvme_ns_get_serial" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_serial" 9 "nvme_ns_get_serial" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_serial \- Serial number of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_subsystem" 9 "nvme_ns_get_subsystem" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_subsystem" 9 "nvme_ns_get_subsystem" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_subsystem \- &nvme_subsystem_t of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_sysfs_dir" 9 "nvme_ns_get_sysfs_dir" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_sysfs_dir" 9 "nvme_ns_get_sysfs_dir" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_sysfs_dir \- sysfs directory of a namespace
.SH SYNOPSIS
-.TH "nvme_ns_get_uuid" 9 "nvme_ns_get_uuid" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_get_uuid" 9 "nvme_ns_get_uuid" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_uuid \- UUID of a namespace
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_ns_id_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ns_id_desc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_ns_id_desc \-
+struct nvme_ns_id_desc \- Namespace identifier type descriptor
.SH SYNOPSIS
struct nvme_ns_id_desc {
.br
-.TH "libnvme" 9 "enum nvme_ns_id_desc_nidt" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ns_id_desc_nidt" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_ns_id_desc_nidt \- Known namespace identifier types
.SH SYNOPSIS
The NID field contains a 128-bit Universally Unique
Identifier (UUID) as specified in RFC 4122.
.IP "NVME_NIDT_CSI" 12
-The NID field contains the command set indentifier.
+The NID field contains the command set identifier.
-.TH "nvme_ns_identify" 9 "nvme_ns_identify" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_identify" 9 "nvme_ns_identify" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_identify \- Issue an 'identify namespace' command
.SH SYNOPSIS
-.TH "nvme_ns_identify_descs" 9 "nvme_ns_identify_descs" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_identify_descs" 9 "nvme_ns_identify_descs" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_identify_descs \- Issue an 'identify descriptors' command
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_ns_list" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ns_list" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_ns_list \-
+struct nvme_ns_list \- Namespace List
.SH SYNOPSIS
struct nvme_ns_list {
.br
-.TH "libnvme" 9 "enum nvme_ns_metadata_type" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ns_metadata_type" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_ns_metadata_type \- Namespace Metadata Element Types
.SH SYNOPSIS
};
.SH Constants
.IP "NVME_NS_METADATA_OS_NS_NAME" 12
-Name of the namespace in the the
+Name of the namespace in the
operating system
.IP "NVME_NS_METADATA_PRE_BOOT_NS_NAME" 12
Name of the namespace in the pre-boot
-.TH "nvme_ns_mgmt" 9 "nvme_ns_mgmt" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_mgmt" 9 "nvme_ns_mgmt" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_mgmt \- Issue a Namespace management command
.SH SYNOPSIS
.SH ARGUMENTS
.IP "args" 12
\fIstruct nvme_ns_mgmt_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.
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_ns_mgmt_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_ns_mgmt_args \- Arguments for NVMe Namespace Management command
-.SH SYNOPSIS
-struct nvme_ns_mgmt_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " struct nvme_id_ns *ns;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_ns_mgmt_sel sel;"
-.br
-.BI " __u8 csi;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-NVMe command result
-.IP "ns" 12
-Namespace identication descriptors
-.IP "args_size" 12
-Size of \fIstruct nvme_ns_mgmt_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace identifier
-.IP "sel" 12
-Type of management operation to perform
-.IP "csi" 12
-Command Set Identifier
-.TH "nvme_ns_mgmt_create" 9 "nvme_ns_mgmt_create" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_mgmt_create" 9 "nvme_ns_mgmt_create" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_ns_mgmt_create \-
+nvme_ns_mgmt_create \- Create a non attached namespace
.SH SYNOPSIS
.B "int" nvme_ns_mgmt_create
.BI "(int fd " ","
.IP "nsid" 12
On success, set to the namespace id that was created
.IP "timeout" 12
-Overide the default timeout to this value in milliseconds;
+Override the default timeout to this value in milliseconds;
set to 0 to use the system default.
.IP "csi" 12
Command Set Identifier
-.TH "nvme_ns_mgmt_delete" 9 "nvme_ns_mgmt_delete" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_mgmt_delete" 9 "nvme_ns_mgmt_delete" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_ns_mgmt_delete \-
+nvme_ns_mgmt_delete \- Delete a non attached namespace
.SH SYNOPSIS
.B "int" nvme_ns_mgmt_delete
.BI "(int fd " ","
-.TH "libnvme" 9 "enum nvme_ns_mgmt_sel" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ns_mgmt_sel" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_ns_mgmt_sel \-
+enum nvme_ns_mgmt_sel \- Namespace Management - Select
.SH SYNOPSIS
enum nvme_ns_mgmt_sel {
.br
-.TH "nvme_ns_read" 9 "nvme_ns_read" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_read" 9 "nvme_ns_read" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_read \- Read from a namespace
.SH SYNOPSIS
-.TH "nvme_ns_rescan" 9 "nvme_ns_rescan" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_rescan" 9 "nvme_ns_rescan" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_rescan \- Initiate a controller rescan
.SH SYNOPSIS
-.TH "nvme_ns_verify" 9 "nvme_ns_verify" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_verify" 9 "nvme_ns_verify" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_verify \- Verify data on a namespace
.SH SYNOPSIS
-.TH "nvme_ns_write" 9 "nvme_ns_write" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_write" 9 "nvme_ns_write" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_write \- Write to a namespace
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_ns_write_protect_cfg" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ns_write_protect_cfg" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_ns_write_protect_cfg \-
+enum nvme_ns_write_protect_cfg \- Write Protection - Write Protection State
.SH SYNOPSIS
enum nvme_ns_write_protect_cfg {
.br
-.TH "nvme_ns_write_uncorrectable" 9 "nvme_ns_write_uncorrectable" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_write_uncorrectable" 9 "nvme_ns_write_uncorrectable" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_write_uncorrectable \- Issus a 'write uncorrectable' command
.SH SYNOPSIS
-.TH "nvme_ns_write_zeros" 9 "nvme_ns_write_zeros" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_ns_write_zeros" 9 "nvme_ns_write_zeros" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_ns_write_zeros \- Write zeros to a namespace
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_nss_hw_err_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_nss_hw_err_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_nss_hw_err_event \-
+struct nvme_nss_hw_err_event \- NVM Subsystem Hardware Error Event
.SH SYNOPSIS
struct nvme_nss_hw_err_event {
.br
-.TH "libnvme" 9 "struct nvme_nvm_id_ns" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_nvm_id_ns" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_nvm_id_ns \-
+struct nvme_nvm_id_ns \- NVME Command Set I/O Command Set Specific Identify Namespace Data Structure
.SH SYNOPSIS
struct nvme_nvm_id_ns {
.br
--- /dev/null
+.TH "libnvme" 9 "enum nvme_nvm_id_ns_elbaf" "July 2022" "API Manual" LINUX
+.SH NAME
+enum nvme_nvm_id_ns_elbaf \- This field indicates the extended LBA format
+.SH SYNOPSIS
+enum nvme_nvm_id_ns_elbaf {
+.br
+.BI " NVME_NVM_ELBAF_STS_MASK"
+,
+.br
+.br
+.BI " NVME_NVM_ELBAF_PIF_MASK"
+
+};
+.SH Constants
+.IP "NVME_NVM_ELBAF_STS_MASK" 12
+Mask to get the storage tag size used to determine
+the variable-sized storage tag/reference tag fields
+.IP "NVME_NVM_ELBAF_PIF_MASK" 12
+Mask to get the protection information format for
+the extended LBA format.
-.TH "nvme_nvm_identify_ctrl" 9 "nvme_nvm_identify_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_nvm_identify_ctrl" 9 "nvme_nvm_identify_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_nvm_identify_ctrl \- Identify controller data
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_nvmeset_pl_status" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_nvmeset_pl_status" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_nvmeset_pl_status \-
+enum nvme_nvmeset_pl_status \- Predictable Latency Per NVM Set Log - Status
.SH SYNOPSIS
enum nvme_nvmeset_pl_status {
.br
};
.SH Constants
.IP "NVME_NVMSET_PL_STATUS_DISABLED" 12
+Not used (Predictable Latency Mode not enabled)
.IP "NVME_NVMSET_PL_STATUS_DTWIN" 12
+Deterministic Window (DTWIN)
.IP "NVME_NVMSET_PL_STATUS_NDWIN" 12
+Non-Deterministic Window (NDWIN)
-.TH "libnvme" 9 "struct nvme_nvmset_attr" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_nvmset_attr" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_nvmset_attr \- NVM Set Attributes Entry
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_nvmset_pl_events" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_nvmset_pl_events" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_nvmset_pl_events \-
+enum nvme_nvmset_pl_events \- Predictable Latency Per NVM Set Log - Event Type
.SH SYNOPSIS
enum nvme_nvmset_pl_events {
.br
};
.SH Constants
.IP "NVME_NVMSET_PL_EVENT_DTWIN_READ_WARN" 12
+DTWIN Reads Warning
.IP "NVME_NVMSET_PL_EVENT_DTWIN_WRITE_WARN" 12
+DTWIN Writes Warning
.IP "NVME_NVMSET_PL_EVENT_DTWIN_TIME_WARN" 12
+DTWIN Time Warning
.IP "NVME_NVMSET_PL_EVENT_DTWIN_EXCEEDED" 12
+Autonomous transition from DTWIN
+to NDWIN due to typical or
+maximum value exceeded
.IP "NVME_NVMSET_PL_EVENT_DTWIN_EXCURSION" 12
+Autonomous transition from DTWIN
+to NDWIN due to Deterministic
+Excursion
-.TH "libnvme" 9 "struct nvme_nvmset_predictable_lat_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_nvmset_predictable_lat_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_nvmset_predictable_lat_log \-
+struct nvme_nvmset_predictable_lat_log \- Predictable Latency Mode - Deterministic Threshold Configuration Data
.SH SYNOPSIS
struct nvme_nvmset_predictable_lat_log {
.br
-.TH "nvme_open" 9 "nvme_open" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_open" 9 "nvme_open" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_open \- Open an nvme controller or namespace device
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_passthru_cmd" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_passthru_cmd" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_passthru_cmd \- nvme passthrough command structure
.SH SYNOPSIS
-.TH "nvme_path_get_ana_state" 9 "nvme_path_get_ana_state" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_path_get_ana_state" 9 "nvme_path_get_ana_state" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_path_get_ana_state \- ANA state of an nvme_path_t object
.SH SYNOPSIS
-.TH "nvme_path_get_ctrl" 9 "nvme_path_get_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_path_get_ctrl" 9 "nvme_path_get_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_path_get_ctrl \- Parent controller of an nvme_path_t object
.SH SYNOPSIS
-.TH "nvme_path_get_name" 9 "nvme_path_get_name" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_path_get_name" 9 "nvme_path_get_name" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_path_get_name \- sysfs name of an &nvme_path_t object
.SH SYNOPSIS
-.TH "nvme_path_get_ns" 9 "nvme_path_get_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_path_get_ns" 9 "nvme_path_get_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_path_get_ns \- Parent namespace of an nvme_path_t object
.SH SYNOPSIS
-.TH "nvme_path_get_sysfs_dir" 9 "nvme_path_get_sysfs_dir" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_path_get_sysfs_dir" 9 "nvme_path_get_sysfs_dir" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_path_get_sysfs_dir \- sysfs directory of an nvme_path_t object
.SH SYNOPSIS
-.TH "nvme_paths_filter" 9 "nvme_paths_filter" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_paths_filter" 9 "nvme_paths_filter" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_paths_filter \- Filter for paths
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_persistent_event_entry" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_persistent_event_entry" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_persistent_event_entry \-
+struct nvme_persistent_event_entry \- Persistent Event
.SH SYNOPSIS
struct nvme_persistent_event_entry {
.br
-.TH "libnvme" 9 "struct nvme_persistent_event_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_persistent_event_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_persistent_event_log \-
+struct nvme_persistent_event_log \- Persistent Event Log
.SH SYNOPSIS
struct nvme_persistent_event_log {
.br
-.TH "libnvme" 9 "enum nvme_persistent_event_types" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_persistent_event_types" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_persistent_event_types \-
+enum nvme_persistent_event_types \- Persistent event log events
.SH SYNOPSIS
enum nvme_persistent_event_types {
.br
};
.SH Constants
.IP "NVME_PEL_SMART_HEALTH_EVENT" 12
+SMART / Health Log Snapshot Event
.IP "NVME_PEL_FW_COMMIT_EVENT" 12
+Firmware Commit Event
.IP "NVME_PEL_TIMESTAMP_EVENT" 12
+Timestamp Change Event
.IP "NVME_PEL_POWER_ON_RESET_EVENT" 12
+Power-on or Reset Event
.IP "NVME_PEL_NSS_HW_ERROR_EVENT" 12
+NVM Subsystem Hardware Error Event
.IP "NVME_PEL_CHANGE_NS_EVENT" 12
+Change Namespace Event
.IP "NVME_PEL_FORMAT_START_EVENT" 12
+Format NVM Start Event
.IP "NVME_PEL_FORMAT_COMPLETION_EVENT" 12
+Format NVM Completion Event
.IP "NVME_PEL_SANITIZE_START_EVENT" 12
+Sanitize Start Event
.IP "NVME_PEL_SANITIZE_COMPLETION_EVENT" 12
+Sanitize Completion Event
.IP "NVME_PEL_SET_FEATURE_EVENT" 12
+Set Feature Event
.IP "NVME_PEL_TELEMETRY_CRT" 12
+Telemetry Log Create Event
.IP "NVME_PEL_THERMAL_EXCURSION_EVENT" 12
+Thermal Excursion Event
-.TH "libnvme" 9 "enum nvme_pevent_log_action" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_pevent_log_action" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_pevent_log_action \-
+enum nvme_pevent_log_action \- Persistent Event Log - Action
.SH SYNOPSIS
enum nvme_pevent_log_action {
.br
-.TH "libnvme" 9 "struct nvme_plm_config" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_plm_config" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_plm_config \-
+struct nvme_plm_config \- Predictable Latency Mode - Deterministic Threshold Configuration Data Structure
.SH SYNOPSIS
struct nvme_plm_config {
.br
-.TH "nvme_pmr_size" 9 "nvme_pmr_size" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_pmr_size" 9 "nvme_pmr_size" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_pmr_size \- Calculate size of persistent memory region elasticity buffer
.SH SYNOPSIS
.SH ARGUMENTS
.IP "pmrebs" 12
Value from controller register NVME_REG_PMREBS
-.SH "DESCRIPTION"
-Returns size of controller persistent memory buffer in bytes
+.SH "RETURN"
+size of controller persistent memory buffer in bytes
-.TH "nvme_pmr_throughput" 9 "nvme_pmr_throughput" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_pmr_throughput" 9 "nvme_pmr_throughput" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_pmr_throughput \- Calculate throughput of persistent memory buffer
.SH SYNOPSIS
.SH ARGUMENTS
.IP "pmrswtp" 12
Value from controller register NVME_REG_PMRSWTP
-.SH "DESCRIPTION"
-Returns throughput of controller persistent memory buffer in bytes/second
+.SH "RETURN"
+throughput of controller persistent memory buffer in bytes/second
-.TH "libnvme" 9 "struct nvme_power_on_reset_info_list" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_power_on_reset_info_list" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_power_on_reset_info_list \-
+struct nvme_power_on_reset_info_list \- Controller Reset Information
.SH SYNOPSIS
struct nvme_power_on_reset_info_list {
.br
-.TH "libnvme" 9 "struct nvme_primary_ctrl_cap" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_primary_ctrl_cap" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_primary_ctrl_cap \-
+struct nvme_primary_ctrl_cap \- Identify - Controller Capabilities Structure
.SH SYNOPSIS
struct nvme_primary_ctrl_cap {
.br
-.TH "libnvme" 9 "enum nvme_psd_flags" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_psd_flags" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_psd_flags \- Possible flag values in nvme power state descriptor
.SH SYNOPSIS
-.TH "nvme_psd_power_scale" 9 "nvme_psd_power_scale" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_psd_power_scale" 9 "nvme_psd_power_scale" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_psd_power_scale \- power scale occupies the upper 3 bits
.SH SYNOPSIS
.SH ARGUMENTS
.IP "ps" 12
power scale value
+.SH "RETURN"
+power scale value
-.TH "libnvme" 9 "enum nvme_psd_ps" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_psd_ps" "July 2022" "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
enum nvme_psd_ps {
.br
+.BI " NVME_PSD_PS_NOT_REPORTED"
+,
+.br
+.br
.BI " NVME_PSD_PS_100_MICRO_WATT"
,
.br
};
.SH Constants
+.IP "NVME_PSD_PS_NOT_REPORTED" 12
+Not reported
.IP "NVME_PSD_PS_100_MICRO_WATT" 12
0.0001 watt scale
.IP "NVME_PSD_PS_10_MILLI_WATT" 12
-.TH "libnvme" 9 "enum nvme_psd_workload" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_psd_workload" "July 2022" "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
enum nvme_psd_workload {
.br
+.BI " NVME_PSD_WORKLOAD_NP"
+,
+.br
+.br
.BI " NVME_PSD_WORKLOAD_1"
,
.br
};
.SH Constants
+.IP "NVME_PSD_WORKLOAD_NP" 12
+The workload is unknown or not provided.
.IP "NVME_PSD_WORKLOAD_1" 12
Extended Idle Period with a Burst of Random Write
consists of five minutes of idle followed by
-.TH "nvme_read" 9 "nvme_read" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_read" 9 "nvme_read" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_read \- Submit an nvme user read command
.SH SYNOPSIS
-.TH "nvme_read_config" 9 "nvme_read_config" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_read_config" 9 "nvme_read_config" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_read_config \- Read NVMe JSON configuration file
.SH SYNOPSIS
-.TH "nvme_refresh_topology" 9 "nvme_refresh_topology" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_refresh_topology" 9 "nvme_refresh_topology" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_refresh_topology \- Refresh nvme_root_t object contents
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_register_offsets" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_register_offsets" "July 2022" "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
,
.br
.br
+.BI " NVME_REG_CRTO"
+,
+.br
+.br
.BI " NVME_REG_PMRCAP"
,
.br
Controller Memory Buffer Memory Space Control
.IP "NVME_REG_CMBSTS" 12
Controller Memory Buffer Status
+.IP "NVME_REG_CRTO" 12
+Controller Ready Timeouts
.IP "NVME_REG_PMRCAP" 12
Persistent Memory Capabilities
.IP "NVME_REG_PMRCTL" 12
-.TH "libnvme" 9 "struct nvme_registered_ctrl" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_registered_ctrl" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_registered_ctrl \-
+struct nvme_registered_ctrl \- Registered Controller Data Structure
.SH SYNOPSIS
struct nvme_registered_ctrl {
.br
-.TH "libnvme" 9 "struct nvme_registered_ctrl_ext" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_registered_ctrl_ext" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_registered_ctrl_ext \-
+struct nvme_registered_ctrl_ext \- Registered Controller Extended Data Structure
.SH SYNOPSIS
struct nvme_registered_ctrl_ext {
.br
-.TH "nvme_rescan_ctrl" 9 "nvme_rescan_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_rescan_ctrl" 9 "nvme_rescan_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_rescan_ctrl \- Rescan an existing controller
.SH SYNOPSIS
-.TH "nvme_resv_acquire" 9 "nvme_resv_acquire" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_resv_acquire" 9 "nvme_resv_acquire" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_resv_acquire \- Send an nvme reservation acquire
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_resv_acquire_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_resv_acquire_args \- Arguments for the NVMe Reservation Acquire Comand
-.SH SYNOPSIS
-struct nvme_resv_acquire_args {
-.br
-.BI " __u64 crkey;"
-.br
-.BI " __u64 nrkey;"
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_resv_rtype rtype;"
-.br
-.BI " enum nvme_resv_racqa racqa;"
-.br
-.BI " bool iekey;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "crkey" 12
-The current reservation key associated with the host
-.IP "nrkey" 12
-The reservation key to be unregistered from the namespace if
-the action is preempt
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "args_size" 12
-Size of \fIstruct nvme_resv_acquire_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace identifier
-.IP "rtype" 12
-The type of reservation to be create, see \fIenum nvme_resv_rtype\fP
-.IP "racqa" 12
-The action that is performed by the command, see \fIenum nvme_resv_racqa\fP
-.IP "iekey" 12
-Set to ignore the existing key
-.TH "libnvme" 9 "enum nvme_resv_cptpl" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_cptpl" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_resv_cptpl \-
+enum nvme_resv_cptpl \- Reservation Register - Change Persist Through Power Loss State
.SH SYNOPSIS
enum nvme_resv_cptpl {
.br
-.TH "libnvme" 9 "struct nvme_resv_notification_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_resv_notification_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_resv_notification_log \-
+struct nvme_resv_notification_log \- Reservation Notification Log
.SH SYNOPSIS
struct nvme_resv_notification_log {
.br
-.TH "libnvme" 9 "enum nvme_resv_notify_rnlpt" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_notify_rnlpt" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_resv_notify_rnlpt \-
+enum nvme_resv_notify_rnlpt \- Reservation Notification Log - Reservation Notification Log Page Type
.SH SYNOPSIS
enum nvme_resv_notify_rnlpt {
.br
};
.SH Constants
.IP "NVME_RESV_NOTIFY_RNLPT_EMPTY" 12
+Empty Log Page
.IP "NVME_RESV_NOTIFY_RNLPT_REGISTRATION_PREEMPTED" 12
+Registration Preempted
.IP "NVME_RESV_NOTIFY_RNLPT_RESERVATION_RELEASED" 12
+Reservation Released
.IP "NVME_RESV_NOTIFY_RNLPT_RESERVATION_PREEMPTED" 12
+Reservation Preempted
-.TH "libnvme" 9 "enum nvme_resv_racqa" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_racqa" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_resv_racqa \-
+enum nvme_resv_racqa \- Reservation Acquire - Reservation Acquire Action
.SH SYNOPSIS
enum nvme_resv_racqa {
.br
-.TH "nvme_resv_register" 9 "nvme_resv_register" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_resv_register" 9 "nvme_resv_register" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_resv_register \- Send an nvme reservation register
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_resv_register_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_resv_register_args \- Arguments for the NVMe Reservation Register command
-.SH SYNOPSIS
-struct nvme_resv_register_args {
-.br
-.BI " __u64 crkey;"
-.br
-.BI " __u64 nrkey;"
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_resv_rrega rrega;"
-.br
-.BI " enum nvme_resv_cptpl cptpl;"
-.br
-.BI " bool iekey;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "crkey" 12
-The current reservation key associated with the host
-.IP "nrkey" 12
-The new reservation key to be register if action is register or
-replace
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "args_size" 12
-Size of \fIstruct nvme_resv_register_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace identifier
-.IP "rrega" 12
-The registration action, see \fIenum nvme_resv_rrega\fP
-.IP "cptpl" 12
-Change persist through power loss, see \fIenum nvme_resv_cptpl\fP
-.IP "iekey" 12
-Set to ignore the existing key
-.TH "nvme_resv_release" 9 "nvme_resv_release" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_resv_release" 9 "nvme_resv_release" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_resv_release \- Send an nvme reservation release
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_resv_release_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_resv_release_args \- Arguments for the NVMe Reservation Release Command
-.SH SYNOPSIS
-struct nvme_resv_release_args {
-.br
-.BI " __u64 crkey;"
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_resv_rtype rtype;"
-.br
-.BI " enum nvme_resv_rrela rrela;"
-.br
-.BI " bool iekey;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "crkey" 12
-The current reservation key to release
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "args_size" 12
-Size of \fIstruct nvme_resv_release_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace identifier
-.IP "rtype" 12
-The type of reservation to be create, see \fIenum nvme_resv_rtype\fP
-.IP "rrela" 12
-Reservation releast action, see \fIenum nvme_resv_rrela\fP
-.IP "iekey" 12
-Set to ignore the existing key
-.TH "nvme_resv_report" 9 "nvme_resv_report" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_resv_report" 9 "nvme_resv_report" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_resv_report \- Send an nvme reservation report
.SH SYNOPSIS
struct nvme_resv_report_args argument structure
.SH "DESCRIPTION"
Returns a Reservation Status data structure to memory that describes the
-registration and reservation status of a namespace. See the defintion for
+registration and reservation status of a namespace. See the definition for
the returned structure, \fIstruct nvme_reservation_status\fP, for more details.
.SH "RETURN"
The nvme command status if a response was received (see
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_resv_report_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_resv_report_args \- Arguments for the NVMe Reservation Report command
-.SH SYNOPSIS
-struct nvme_resv_report_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " struct nvme_resv_status *report;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " __u32 len;"
-.br
-.BI " bool eds;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "report" 12
-The user space destination address to store the reservation
-report
-.IP "args_size" 12
-Size of \fIstruct nvme_resv_report_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace identifier
-.IP "len" 12
-Number of bytes to request transfered with this command
-.IP "eds" 12
-Request extended Data Structure
-.TH "libnvme" 9 "enum nvme_resv_rrega" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_rrega" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_resv_rrega \-
+enum nvme_resv_rrega \- Reservation Register - Reservation Register Action
.SH SYNOPSIS
enum nvme_resv_rrega {
.br
-.TH "libnvme" 9 "enum nvme_resv_rrela" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_rrela" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_resv_rrela \-
+enum nvme_resv_rrela \- Reservation Release - Reservation Release Action
.SH SYNOPSIS
enum nvme_resv_rrela {
.br
-.TH "libnvme" 9 "enum nvme_resv_rtype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_rtype" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_resv_rtype \-
+enum nvme_resv_rtype \- Reservation Type Encoding
.SH SYNOPSIS
enum nvme_resv_rtype {
.br
-.TH "libnvme" 9 "struct nvme_resv_status" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_resv_status" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_resv_status \-
+struct nvme_resv_status \- Reservation Status Data Structure
.SH SYNOPSIS
struct nvme_resv_status {
.br
-.TH "libnvme" 9 "struct nvme_sanitize_compln_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_sanitize_compln_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_sanitize_compln_event \-
+struct nvme_sanitize_compln_event \- Sanitize Completion Event Data
.SH SYNOPSIS
struct nvme_sanitize_compln_event {
.br
-.TH "libnvme" 9 "struct nvme_sanitize_log_page" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_sanitize_log_page" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_sanitize_log_page \- Sanitize Status (Log Identifier 81h)
.SH SYNOPSIS
-.TH "nvme_sanitize_nvm" 9 "nvme_sanitize_nvm" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_sanitize_nvm" 9 "nvme_sanitize_nvm" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_sanitize_nvm \- Start a sanitize operation
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_sanitize_nvm_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_sanitize_nvm_args \- Arguments for the NVMe Sanitize NVM command
-.SH SYNOPSIS
-struct nvme_sanitize_nvm_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " enum nvme_sanitize_sanact sanact;"
-.br
-.BI " __u32 ovrpat;"
-.br
-.BI " bool ause;"
-.br
-.BI " __u8 owpass;"
-.br
-.BI " bool oipbp;"
-.br
-.BI " bool nodas;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "args_size" 12
-Size of \fIstruct nvme_sanitize_nvm_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "sanact" 12
-Sanitize action, see \fIenum nvme_sanitize_sanact\fP
-.IP "ovrpat" 12
-Overwrite pattern
-.IP "ause" 12
-Set to allow unrestriced sanitize exit
-.IP "owpass" 12
-Overwrite pass count
-.IP "oipbp" 12
-Set to overwrite invert pattern between passes
-.IP "nodas" 12
-Set to not deallocate blocks after sanitizing
-.TH "libnvme" 9 "enum nvme_sanitize_sanact" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_sanitize_sanact" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_sanitize_sanact \- Sanitize Action
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_sanitize_sstat" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_sanitize_sstat" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_sanitize_sstat \- Sanitize Status (SSTAT)
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_sanitize_start_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_sanitize_start_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_sanitize_start_event \-
+struct nvme_sanitize_start_event \- Sanitize Start Event Data
.SH SYNOPSIS
struct nvme_sanitize_start_event {
.br
-.TH "nvme_scan" 9 "nvme_scan" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_scan" 9 "nvme_scan" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_scan \- Scan NVMe topology
.SH SYNOPSIS
-.TH "nvme_scan_ctrl" 9 "nvme_scan_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_scan_ctrl" 9 "nvme_scan_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_scan_ctrl \- Scan on a controller
.SH SYNOPSIS
-.TH "nvme_scan_ctrl_namespace_paths" 9 "nvme_scan_ctrl_namespace_paths" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_scan_ctrl_namespace_paths" 9 "nvme_scan_ctrl_namespace_paths" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_scan_ctrl_namespace_paths \- Scan for namespace paths in a controller
.SH SYNOPSIS
-.TH "nvme_scan_ctrl_namespaces" 9 "nvme_scan_ctrl_namespaces" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_scan_ctrl_namespaces" 9 "nvme_scan_ctrl_namespaces" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_scan_ctrl_namespaces \- Scan for namespaces in a controller
.SH SYNOPSIS
-.TH "nvme_scan_ctrls" 9 "nvme_scan_ctrls" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_scan_ctrls" 9 "nvme_scan_ctrls" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_scan_ctrls \- Scan for controllers
.SH SYNOPSIS
-.TH "nvme_scan_namespace" 9 "nvme_scan_namespace" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_scan_namespace" 9 "nvme_scan_namespace" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_scan_namespace \- scan namespace based on sysfs name
.SH SYNOPSIS
-.TH "nvme_scan_subsystem_namespaces" 9 "nvme_scan_subsystem_namespaces" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_scan_subsystem_namespaces" 9 "nvme_scan_subsystem_namespaces" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_scan_subsystem_namespaces \- Scan for namespaces in a subsystem
.SH SYNOPSIS
-.TH "nvme_scan_subsystems" 9 "nvme_scan_subsystems" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_scan_subsystems" 9 "nvme_scan_subsystems" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_scan_subsystems \- Scan for subsystems
.SH SYNOPSIS
-.TH "nvme_scan_topology" 9 "nvme_scan_topology" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_scan_topology" 9 "nvme_scan_topology" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_scan_topology \- Scan NVMe topology and apply filter
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_secondary_ctrl" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_secondary_ctrl" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_secondary_ctrl \-
+struct nvme_secondary_ctrl \- Secondary Controller Entry
.SH SYNOPSIS
struct nvme_secondary_ctrl {
.br
-.TH "libnvme" 9 "struct nvme_secondary_ctrl_list" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_secondary_ctrl_list" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_secondary_ctrl_list \-
+struct nvme_secondary_ctrl_list \- Secondary Controller List
.SH SYNOPSIS
struct nvme_secondary_ctrl_list {
.br
-.TH "nvme_security_receive" 9 "nvme_security_receive" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_security_receive" 9 "nvme_security_receive" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_security_receive \-
+nvme_security_receive \- Security Receive command
.SH SYNOPSIS
.B "int" nvme_security_receive
.BI "(struct nvme_security_receive_args *args " ");"
.SH ARGUMENTS
.IP "args" 12
-\fIstruct nvme_security_recevice\fP argument structure
+\fIstruct nvme_security_receive\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.
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_security_receive_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_security_receive_args \- Arguments for the NVMe Security Receive command
-.SH SYNOPSIS
-struct nvme_security_receive_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " __u32 al;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " __u8 nssf;"
-.br
-.BI " __u8 spsp0;"
-.br
-.BI " __u8 spsp1;"
-.br
-.BI " __u8 secp;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "data" 12
-Security data payload to send
-.IP "args_size" 12
-Size of \fIstruct nvme_security_receive_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID to issue security command on
-.IP "al" 12
-Protocol specific allocation length
-.IP "data_len" 12
-Data length of the payload in bytes
-.IP "nssf" 12
-NVMe Security Specific field
-.IP "spsp0" 12
-Security Protocol Specific field
-.IP "spsp1" 12
-Security Protocol Specific field
-.IP "secp" 12
-Security Protocol
-.TH "nvme_security_send" 9 "nvme_security_send" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_security_send" 9 "nvme_security_send" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_security_send \-
+nvme_security_send \- Security Send command
.SH SYNOPSIS
.B "int" nvme_security_send
.BI "(struct nvme_security_send_args *args " ");"
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_security_send_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_security_send_args \- Arguments for the NVMe Security Send command
-.SH SYNOPSIS
-struct nvme_security_send_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " __u32 tl;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " __u8 nssf;"
-.br
-.BI " __u8 spsp0;"
-.br
-.BI " __u8 spsp1;"
-.br
-.BI " __u8 secp;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "data" 12
-Security data payload to send
-.IP "args_size" 12
-Size of \fIstruct nvme_security_send_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID to issue security command on
-.IP "tl" 12
-Protocol specific transfer length
-.IP "data_len" 12
-Data length of the payload in bytes
-.IP "nssf" 12
-NVMe Security Specific field
-.IP "spsp0" 12
-Security Protocol Specific field
-.IP "spsp1" 12
-Security Protocol Specific field
-.IP "secp" 12
-Security Protocol
-.TH "libnvme" 9 "struct nvme_self_test_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_self_test_log" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_self_test_log \- Device Self-test (Log Identifier 06h)
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_set_feature_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_set_feature_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_set_feature_event \-
+struct nvme_set_feature_event \- Set Feature Event Data
.SH SYNOPSIS
struct nvme_set_feature_event {
.br
-.TH "nvme_set_features" 9 "nvme_set_features" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features" 9 "nvme_set_features" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_set_features \- Set a feature attribute
.SH SYNOPSIS
-.TH "nvme_set_features_arbitration" 9 "nvme_set_features_arbitration" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_arbitration" 9 "nvme_set_features_arbitration" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_arbitration \-
+nvme_set_features_arbitration \- Set arbitration features
.SH SYNOPSIS
.B "int" nvme_set_features_arbitration
.BI "(int fd " ","
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_set_features_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_set_features_args \- Arguments for the NVMe Admin Set Feature command
-.SH SYNOPSIS
-struct nvme_set_features_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " __u32 cdw11;"
-.br
-.BI " __u32 cdw12;"
-.br
-.BI " __u32 cdw13;"
-.br
-.BI " __u32 cdw15;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " bool save;"
-.br
-.BI " __u8 uuidx;"
-.br
-.BI " __u8 fid;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "data" 12
-User address of feature data, if applicable
-.IP "args_size" 12
-Size of \fIstruct nvme_set_features_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID, if applicable
-.IP "cdw11" 12
-Value to set the feature to
-.IP "cdw12" 12
-Feature specific command dword12 field
-.IP "cdw15" 12
-Feature specific command dword15 field
-.IP "data_len" 12
-Length of feature data, if applicable, in bytes
-.IP "save" 12
-Save value across power states
-.IP "uuidx" 12
-UUID Index for differentiating vendor specific encoding
-.IP "fid" 12
-Feature identifier
-.TH "nvme_set_features_async_event" 9 "nvme_set_features_async_event" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_async_event" 9 "nvme_set_features_async_event" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_async_event \-
+nvme_set_features_async_event \- Set asynchronous event feature
.SH SYNOPSIS
.B "int" nvme_set_features_async_event
.BI "(int fd " ","
-.TH "nvme_set_features_auto_pst" 9 "nvme_set_features_auto_pst" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_auto_pst" 9 "nvme_set_features_auto_pst" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_auto_pst \-
+nvme_set_features_auto_pst \- Set autonomous power state feature
.SH SYNOPSIS
.B "int" nvme_set_features_auto_pst
.BI "(int fd " ","
-.TH "nvme_set_features_data" 9 "nvme_set_features_data" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_data" 9 "nvme_set_features_data" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_set_features_data \- Helper function for @nvme_set_features()
.SH SYNOPSIS
User address of feature data, if applicable
.IP "result" 12
The command completion result from CQE dword0
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_set_features_endurance_evt_cfg" 9 "nvme_set_features_endurance_evt_cfg" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_endurance_evt_cfg" 9 "nvme_set_features_endurance_evt_cfg" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_endurance_evt_cfg \-
+nvme_set_features_endurance_evt_cfg \- Set endurance event config feature
.SH SYNOPSIS
.B "int" nvme_set_features_endurance_evt_cfg
.BI "(int fd " ","
-.TH "nvme_set_features_err_recovery" 9 "nvme_set_features_err_recovery" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_err_recovery" 9 "nvme_set_features_err_recovery" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_err_recovery \-
+nvme_set_features_err_recovery \- Set error recovery feature
.SH SYNOPSIS
.B "int" nvme_set_features_err_recovery
.BI "(int fd " ","
-.TH "nvme_set_features_hctm" 9 "nvme_set_features_hctm" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_hctm" 9 "nvme_set_features_hctm" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_hctm \-
+nvme_set_features_hctm \- Set thermal management feature
.SH SYNOPSIS
.B "int" nvme_set_features_hctm
.BI "(int fd " ","
-.TH "nvme_set_features_host_behavior" 9 "nvme_set_features_host_behavior" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_host_behavior" 9 "nvme_set_features_host_behavior" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_host_behavior \-
+nvme_set_features_host_behavior \- Set host behavior feature
.SH SYNOPSIS
.B "int" nvme_set_features_host_behavior
.BI "(int fd " ","
-.TH "nvme_set_features_host_id" 9 "nvme_set_features_host_id" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_host_id" 9 "nvme_set_features_host_id" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_host_id \-
+nvme_set_features_host_id \- Set enable extended host identifers feature
.SH SYNOPSIS
.B "int" nvme_set_features_host_id
.BI "(int fd " ","
-.TH "nvme_set_features_irq_coalesce" 9 "nvme_set_features_irq_coalesce" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_irq_coalesce" 9 "nvme_set_features_irq_coalesce" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_irq_coalesce \-
+nvme_set_features_irq_coalesce \- Set IRQ coalesce feature
.SH SYNOPSIS
.B "int" nvme_set_features_irq_coalesce
.BI "(int fd " ","
-.TH "nvme_set_features_irq_config" 9 "nvme_set_features_irq_config" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_irq_config" 9 "nvme_set_features_irq_config" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_irq_config \-
+nvme_set_features_irq_config \- Set IRQ config feature
.SH SYNOPSIS
.B "int" nvme_set_features_irq_config
.BI "(int fd " ","
-.TH "nvme_set_features_lba_range" 9 "nvme_set_features_lba_range" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_lba_range" 9 "nvme_set_features_lba_range" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_lba_range \-
+nvme_set_features_lba_range \- Set LBA range feature
.SH SYNOPSIS
.B "int" nvme_set_features_lba_range
.BI "(int fd " ","
-.TH "nvme_set_features_lba_sts_interval" 9 "nvme_set_features_lba_sts_interval" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_lba_sts_interval" 9 "nvme_set_features_lba_sts_interval" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_lba_sts_interval \-
+nvme_set_features_lba_sts_interval \- Set LBA status information feature
.SH SYNOPSIS
.B "int" nvme_set_features_lba_sts_interval
.BI "(int fd " ","
-.TH "nvme_set_features_nopsc" 9 "nvme_set_features_nopsc" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_nopsc" 9 "nvme_set_features_nopsc" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_nopsc \-
+nvme_set_features_nopsc \- Set non-operational power state feature
.SH SYNOPSIS
.B "int" nvme_set_features_nopsc
.BI "(int fd " ","
-.TH "nvme_set_features_plm_config" 9 "nvme_set_features_plm_config" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_plm_config" 9 "nvme_set_features_plm_config" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_plm_config \-
+nvme_set_features_plm_config \- Set predictable latency feature
.SH SYNOPSIS
.B "int" nvme_set_features_plm_config
.BI "(int fd " ","
.BI "__u16 nvmsetid " ","
.BI "bool save " ","
.BI "struct nvme_plm_config *data " ","
-.BI "__u32*result " ");"
+.BI "__u32 *result " ");"
.SH ARGUMENTS
.IP "fd" 12
File descriptor of nvme device
-.TH "nvme_set_features_plm_window" 9 "nvme_set_features_plm_window" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_plm_window" 9 "nvme_set_features_plm_window" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_plm_window \-
+nvme_set_features_plm_window \- Set window select feature
.SH SYNOPSIS
.B "int" nvme_set_features_plm_window
.BI "(int fd " ","
-.TH "nvme_set_features_power_mgmt" 9 "nvme_set_features_power_mgmt" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_power_mgmt" 9 "nvme_set_features_power_mgmt" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_power_mgmt \-
+nvme_set_features_power_mgmt \- Set power management feature
.SH SYNOPSIS
.B "int" nvme_set_features_power_mgmt
.BI "(int fd " ","
-.TH "nvme_set_features_resv_mask" 9 "nvme_set_features_resv_mask" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_resv_mask" 9 "nvme_set_features_resv_mask" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_resv_mask \-
+nvme_set_features_resv_mask \- Set reservation notification mask feature
.SH SYNOPSIS
.B "int" nvme_set_features_resv_mask
.BI "(int fd " ","
-.TH "nvme_set_features_resv_persist" 9 "nvme_set_features_resv_persist" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_resv_persist" 9 "nvme_set_features_resv_persist" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_resv_persist \-
+nvme_set_features_resv_persist \- Set persist through power loss feature
.SH SYNOPSIS
.B "int" nvme_set_features_resv_persist
.BI "(int fd " ","
-.TH "nvme_set_features_rrl" 9 "nvme_set_features_rrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_rrl" 9 "nvme_set_features_rrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_rrl \-
+nvme_set_features_rrl \- Set read recovery level feature
.SH SYNOPSIS
.B "int" nvme_set_features_rrl
.BI "(int fd " ","
-.TH "nvme_set_features_sanitize" 9 "nvme_set_features_sanitize" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_sanitize" 9 "nvme_set_features_sanitize" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_sanitize \-
+nvme_set_features_sanitize \- Set sanitize feature
.SH SYNOPSIS
.B "int" nvme_set_features_sanitize
.BI "(int fd " ","
-.TH "nvme_set_features_simple" 9 "nvme_set_features_simple" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_simple" 9 "nvme_set_features_simple" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_simple \- Helper functionn for @nvme_set_features()
+nvme_set_features_simple \- Helper function for @nvme_set_features()
.SH SYNOPSIS
.B "int" nvme_set_features_simple
.BI "(int fd " ","
Save value across power states
.IP "result" 12
The command completion result from CQE dword0
+.SH "RETURN"
+The nvme command status if a response was received (see
+\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_set_features_sw_progress" 9 "nvme_set_features_sw_progress" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_sw_progress" 9 "nvme_set_features_sw_progress" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_sw_progress \-
+nvme_set_features_sw_progress \- Set pre-boot software load count feature
.SH SYNOPSIS
.B "int" nvme_set_features_sw_progress
.BI "(int fd " ","
-.TH "nvme_set_features_temp_thresh" 9 "nvme_set_features_temp_thresh" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_temp_thresh" 9 "nvme_set_features_temp_thresh" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_temp_thresh \-
+nvme_set_features_temp_thresh \- Set temperature threshold feature
.SH SYNOPSIS
.B "int" nvme_set_features_temp_thresh
.BI "(int fd " ","
-.TH "nvme_set_features_timestamp" 9 "nvme_set_features_timestamp" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_timestamp" 9 "nvme_set_features_timestamp" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_timestamp \-
+nvme_set_features_timestamp \- Set timestamp feature
.SH SYNOPSIS
.B "int" nvme_set_features_timestamp
.BI "(int fd " ","
.IP "save" 12
Save value across power states
.IP "timestamp" 12
-The current timestamp value to assign to this this feature
+The current timestamp value to assign to this feature
.SH "RETURN"
The nvme command status if a response was received (see
\fIenum nvme_status_field\fP) or -1 with errno set otherwise.
-.TH "nvme_set_features_volatile_wc" 9 "nvme_set_features_volatile_wc" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_volatile_wc" 9 "nvme_set_features_volatile_wc" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_volatile_wc \-
+nvme_set_features_volatile_wc \- Set volatile write cache feature
.SH SYNOPSIS
.B "int" nvme_set_features_volatile_wc
.BI "(int fd " ","
-.TH "nvme_set_features_write_atomic" 9 "nvme_set_features_write_atomic" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_write_atomic" 9 "nvme_set_features_write_atomic" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_write_atomic \-
+nvme_set_features_write_atomic \- Set write atomic feature
.SH SYNOPSIS
.B "int" nvme_set_features_write_atomic
.BI "(int fd " ","
-.TH "nvme_set_features_write_protect" 9 "nvme_set_features_write_protect" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_features_write_protect" 9 "nvme_set_features_write_protect" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_set_features_write_protect \-
+nvme_set_features_write_protect \- Set write protect feature
.SH SYNOPSIS
.B "int" nvme_set_features_write_protect
.BI "(int fd " ","
-.TH "nvme_set_property" 9 "nvme_set_property" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_set_property" 9 "nvme_set_property" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_set_property \- Set controller property
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_set_property_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_set_property_args \- Arguments for NVMe Set Property command
-.SH SYNOPSIS
-struct nvme_set_property_args {
-.br
-.BI " __u64 value;"
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " int offset;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "value" 12
-The value to set the property
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "args_size" 12
-Size of \fIstruct nvme_set_property_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "offset" 12
-Property offset from the base to set
-.TH "libnvme" 9 "enum nvme_smart_crit" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_smart_crit" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_smart_crit \- Critical Warning
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_smart_egcw" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_smart_egcw" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_smart_egcw \- Endurance Group Critical Warning Summary
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_smart_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_smart_log" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_smart_log \- SMART / Health Information Log (Log Identifier 02h)
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_st_code" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_st_code" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_st_code \- Self-test Code value
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_st_curr_op" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_st_curr_op" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_st_curr_op \- Current Device Self-Test Operation
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_st_result" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_st_result" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_st_result \- Self-test Result
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_st_valid_diag_info" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_st_valid_diag_info" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_st_valid_diag_info \- Valid Diagnostic Information
.SH SYNOPSIS
-.TH "nvme_status_code" 9 "nvme_status_code" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_status_code" 9 "nvme_status_code" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_status_code \- Returns the NVMe Status Code
.SH SYNOPSIS
.SH ARGUMENTS
.IP "status_field" 12
The NVMe Completion Queue Entry's Status Field
-.SH "DESCRIPTION"
See \fIenum nvme_status_field\fP
+.SH "RETURN"
+status code
-.TH "nvme_status_code_type" 9 "nvme_status_code_type" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_status_code_type" 9 "nvme_status_code_type" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_status_code_type \- Returns the NVMe Status Code Type
.SH SYNOPSIS
.SH ARGUMENTS
.IP "status_field" 12
The NVMe Completion Queue Entry's Status Field
-.SH "DESCRIPTION"
See \fIenum nvme_status_field\fP
+.SH "RETURN"
+status code type
-.TH "libnvme" 9 "enum nvme_status_field" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_status_field" "July 2022" "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
.IP "NVME_SCT_MASK" 12
Mask to get the value of the Status Code Type
.IP "NVME_SCT_SHIFT" 12
--- undescribed --
+Shift value to get the value of the Status
+Code Type
.IP "NVME_SC_MASK" 12
Mask to get the value of the status code.
.IP "NVME_SC_SHIFT" 12
--- undescribed --
+Shift value to get the value of the status
+code.
.IP "NVME_SC_SUCCESS" 12
Successful Completion: The command
completed without error.
Fabric Zoning is not enabled on the
CDC
.IP "NVME_SC_ZONEGRP_ORIGINATOR_INVLD" 12
--- undescribed --
+The NQN contained in the ZoneGroup
+Originator field does not match the
+Host NQN used by the DDC to connect
+to the CDC.
.IP "NVME_SC_BAD_ATTRIBUTES" 12
Conflicting Dataset Management Attributes
.IP "NVME_SC_INVALID_PI" 12
-.TH "libnvme" 9 "enum nvme_status_result" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_status_result" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_status_result \- Result of the device self-test operation
.SH SYNOPSIS
-.TH "nvme_status_to_errno" 9 "nvme_status_to_errno" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_status_to_errno" 9 "nvme_status_to_errno" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_status_to_errno \- Converts nvme return status to errno
.SH SYNOPSIS
.BI "bool fabrics " ");"
.SH ARGUMENTS
.IP "status" 12
-Return status from an nvme passthrough commmand
+Return status from an nvme passthrough command
.IP "fabrics" 12
Set to true if \fIstatus\fP is to a fabrics target.
.SH "RETURN"
-.TH "nvme_status_to_string" 9 "nvme_status_to_string" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_status_to_string" 9 "nvme_status_to_string" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_status_to_string \- Returns string describing nvme return status.
.SH SYNOPSIS
.BI "bool fabrics " ");"
.SH ARGUMENTS
.IP "status" 12
-Return status from an nvme passthrough commmand
+Return status from an nvme passthrough command
.IP "fabrics" 12
Set to true if \fIstatus\fP is to a fabrics target.
.SH "RETURN"
-.TH "libnvme" 9 "struct nvme_streams_directive_params" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_streams_directive_params" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_streams_directive_params \-
+struct nvme_streams_directive_params \- Streams Directive - Return Parameters Data Structure
.SH SYNOPSIS
struct nvme_streams_directive_params {
.br
-.TH "libnvme" 9 "struct nvme_streams_directive_status" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_streams_directive_status" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_streams_directive_status \-
+struct nvme_streams_directive_status \- Streams Directive - Get Status Data Structure
.SH SYNOPSIS
struct nvme_streams_directive_status {
.br
-.TH "nvme_submit_admin_passthru" 9 "nvme_submit_admin_passthru" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_submit_admin_passthru" 9 "nvme_submit_admin_passthru" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_submit_admin_passthru \- Submit an nvme passthrough admin command
.SH SYNOPSIS
-.TH "nvme_submit_io_passthru" 9 "nvme_submit_io_passthru" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_submit_io_passthru" 9 "nvme_submit_io_passthru" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_submit_io_passthru \- Submit an nvme passthrough command
.SH SYNOPSIS
-.TH "nvme_subsys_filter" 9 "nvme_subsys_filter" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsys_filter" 9 "nvme_subsys_filter" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsys_filter \- Filter for subsystems
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_subsys_type" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_subsys_type" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_subsys_type \- Type of the NVM subsystem.
.SH SYNOPSIS
-.TH "nvme_subsystem_first_ctrl" 9 "nvme_subsystem_first_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_first_ctrl" 9 "nvme_subsystem_first_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_first_ctrl \- First ctrl iterator
.SH SYNOPSIS
-.TH "nvme_subsystem_first_ns" 9 "nvme_subsystem_first_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_first_ns" 9 "nvme_subsystem_first_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_first_ns \- Start namespace iterator
.SH SYNOPSIS
-.TH "nvme_subsystem_for_each_ctrl" 9 "nvme_subsystem_for_each_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_for_each_ctrl" 9 "nvme_subsystem_for_each_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_for_each_ctrl \- Traverse controllers
.SH SYNOPSIS
-.TH "nvme_subsystem_for_each_ctrl_safe" 9 "nvme_subsystem_for_each_ctrl_safe" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_for_each_ctrl_safe" 9 "nvme_subsystem_for_each_ctrl_safe" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_for_each_ctrl_safe \- Traverse controllers
.SH SYNOPSIS
-.TH "nvme_subsystem_for_each_ns" 9 "nvme_subsystem_for_each_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_for_each_ns" 9 "nvme_subsystem_for_each_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_for_each_ns \- Traverse namespaces
.SH SYNOPSIS
-.TH "nvme_subsystem_for_each_ns_safe" 9 "nvme_subsystem_for_each_ns_safe" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_for_each_ns_safe" 9 "nvme_subsystem_for_each_ns_safe" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_for_each_ns_safe \- Traverse namespaces
.SH SYNOPSIS
-.TH "nvme_subsystem_get_host" 9 "nvme_subsystem_get_host" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_host" 9 "nvme_subsystem_get_host" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_get_host \- Returns nvme_host_t object
.SH SYNOPSIS
-.TH "nvme_subsystem_get_name" 9 "nvme_subsystem_get_name" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_name" 9 "nvme_subsystem_get_name" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_get_name \- sysfs name of an nvme_subsystem_t object
.SH SYNOPSIS
-.TH "nvme_subsystem_get_nqn" 9 "nvme_subsystem_get_nqn" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_nqn" 9 "nvme_subsystem_get_nqn" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_get_nqn \- Retrieve NQN from subsystem
.SH SYNOPSIS
.IP "s" 12
nvme_subsystem_t object
.SH "RETURN"
-NQN of systemstem
+NQN of subsystem
-.TH "nvme_subsystem_get_sysfs_dir" 9 "nvme_subsystem_get_sysfs_dir" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_sysfs_dir" 9 "nvme_subsystem_get_sysfs_dir" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_get_sysfs_dir \- sysfs directory of an nvme_subsystem_t object
.SH SYNOPSIS
-.TH "nvme_subsystem_get_type" 9 "nvme_subsystem_get_type" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_type" 9 "nvme_subsystem_get_type" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_get_type \- Returns the type of a subsystem
.SH SYNOPSIS
-.TH "nvme_subsystem_lookup_namespace" 9 "nvme_subsystem_lookup_namespace" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_lookup_namespace" 9 "nvme_subsystem_lookup_namespace" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_lookup_namespace \- lookup namespace by NSID
.SH SYNOPSIS
-.TH "nvme_subsystem_next_ctrl" 9 "nvme_subsystem_next_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_next_ctrl" 9 "nvme_subsystem_next_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_next_ctrl \- Next ctrl iterator
.SH SYNOPSIS
-.TH "nvme_subsystem_next_ns" 9 "nvme_subsystem_next_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_next_ns" 9 "nvme_subsystem_next_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_next_ns \- Next namespace iterator
.SH SYNOPSIS
-.TH "nvme_subsystem_reset" 9 "nvme_subsystem_reset" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_subsystem_reset" 9 "nvme_subsystem_reset" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_subsystem_reset \- Initiate a subsystem reset
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_supported_cap_config_list_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_supported_cap_config_list_log" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_supported_cap_config_list_log \-
+struct nvme_supported_cap_config_list_log \- Supported Capacity Configuration list log page
.SH SYNOPSIS
struct nvme_supported_cap_config_list_log {
.br
.SH Members
.IP "sccn" 12
-number of capacity configuration
-.SH "Description"
-Supported Capacity Configuration list log page
-structure definitions
+Number of capacity configuration
+.IP "rsvd1" 12
+Reserved
+.IP "cap_config_desc" 12
+Capacity configuration descriptor.
+See \fIstruct\fP nvme_capacity_config_desc
-.TH "libnvme" 9 "struct nvme_supported_log_pages" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_supported_log_pages" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_supported_log_pages \-
+struct nvme_supported_log_pages \- Supported Log Pages - Log
.SH SYNOPSIS
struct nvme_supported_log_pages {
.br
-.TH "libnvme" 9 "enum nvme_telemetry_da" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_telemetry_da" "July 2022" "API Manual" LINUX
.SH NAME
enum nvme_telemetry_da \- Telemetry Log Data Area
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_telemetry_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_telemetry_log" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_telemetry_log \- Retrieve internal data specific to the manufacturer.
.SH SYNOPSIS
a value that is incremented each time the controller initiates a
capture of its internal controller state in the controller .
.IP "rsnident" 12
-Reason Identifieris a vendor specific identifier that describes
+Reason Identifiers a vendor specific identifier that describes
the operating conditions of the controller at the time of
capture.
.IP "data_area" 12
-.TH "libnvme" 9 "struct nvme_thermal_exc_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_thermal_exc_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_thermal_exc_event \-
+struct nvme_thermal_exc_event \- Thermal Excursion Event Data
.SH SYNOPSIS
struct nvme_thermal_exc_event {
.br
-.TH "libnvme" 9 "struct nvme_time_stamp_change_event" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_time_stamp_change_event" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_time_stamp_change_event \-
+struct nvme_time_stamp_change_event \- Timestamp Change Event
.SH SYNOPSIS
struct nvme_time_stamp_change_event {
.br
-.TH "libnvme" 9 "struct nvme_timestamp" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_timestamp" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_timestamp \-
+struct nvme_timestamp \- Timestamp - Data Structure for Get Features
.SH SYNOPSIS
struct nvme_timestamp {
.br
-.TH "nvme_unlink_ctrl" 9 "nvme_unlink_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_unlink_ctrl" 9 "nvme_unlink_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_unlink_ctrl \- Unlink controller
.SH SYNOPSIS
-.TH "nvme_update_config" 9 "nvme_update_config" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_update_config" 9 "nvme_update_config" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_update_config \- Update JSON configuration
.SH SYNOPSIS
--- /dev/null
+.TH "libnvme" 9 "struct nvme_uring_cmd" "July 2022" "API Manual" LINUX
+.SH NAME
+struct nvme_uring_cmd \- nvme uring command structure
+.SH SYNOPSIS
+struct nvme_uring_cmd {
+.br
+.BI " __u8 opcode;"
+.br
+.BI " __u8 flags;"
+.br
+.BI " __u16 rsvd1;"
+.br
+.BI " __u32 nsid;"
+.br
+.BI " __u32 cdw2;"
+.br
+.BI " __u32 cdw3;"
+.br
+.BI " __u64 metadata;"
+.br
+.BI " __u64 addr;"
+.br
+.BI " __u32 metadata_len;"
+.br
+.BI " __u32 data_len;"
+.br
+.BI " __u32 cdw10;"
+.br
+.BI " __u32 cdw11;"
+.br
+.BI " __u32 cdw12;"
+.br
+.BI " __u32 cdw13;"
+.br
+.BI " __u32 cdw14;"
+.br
+.BI " __u32 cdw15;"
+.br
+.BI " __u32 timeout_ms;"
+.br
+.BI " __u32 rsvd2;"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "opcode" 12
+Operation code, see \fIenum nvme_io_opcodes\fP and \fIenum nvme_admin_opcodes\fP
+.IP "flags" 12
+Not supported: intended for command flags (eg: SGL, FUSE)
+.IP "rsvd1" 12
+Reserved for future use
+.IP "nsid" 12
+Namespace Identifier, or Fabrics type
+.IP "cdw2" 12
+Command Dword 2 (no spec defined use)
+.IP "cdw3" 12
+Command Dword 3 (no spec defined use)
+.IP "metadata" 12
+User space address to metadata buffer (NULL if not used)
+.IP "addr" 12
+User space address to data buffer (NULL if not used)
+.IP "metadata_len" 12
+Metadata buffer transfer length
+.IP "data_len" 12
+Data buffer transfer length
+.IP "cdw10" 12
+Command Dword 10 (command specific)
+.IP "cdw11" 12
+Command Dword 11 (command specific)
+.IP "cdw12" 12
+Command Dword 12 (command specific)
+.IP "cdw13" 12
+Command Dword 13 (command specific)
+.IP "cdw14" 12
+Command Dword 14 (command specific)
+.IP "cdw15" 12
+Command Dword 15 (command specific)
+.IP "timeout_ms" 12
+If non-zero, overrides system default timeout in milliseconds
+.IP "rsvd2" 12
+Reserved for future use (and fills an implicit struct pad
-.TH "nvme_verify" 9 "nvme_verify" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_verify" 9 "nvme_verify" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_verify \- Send an nvme verify command
.SH SYNOPSIS
--- /dev/null
+.TH "libnvme" 9 "enum nvme_version" "July 2022" "API Manual" LINUX
+.SH NAME
+enum nvme_version \- Selector for version to be returned by @nvme_get_version
+.SH SYNOPSIS
+enum nvme_version {
+.br
+.BI " NVME_VERSION_PROJECT"
+,
+.br
+.br
+.BI " NVME_VERSION_GIT"
+
+};
+.SH Constants
+.IP "NVME_VERSION_PROJECT" 12
+Project release version
+.IP "NVME_VERSION_GIT" 12
+Git reference
-.TH "libnvme" 9 "enum nvme_virt_mgmt_act" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_virt_mgmt_act" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_virt_mgmt_act \-
+enum nvme_virt_mgmt_act \- Virtualization Management - Action
.SH SYNOPSIS
enum nvme_virt_mgmt_act {
.br
-.TH "libnvme" 9 "enum nvme_virt_mgmt_rt" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_virt_mgmt_rt" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_virt_mgmt_rt \-
+enum nvme_virt_mgmt_rt \- Virtualization Management - Resource Type
.SH SYNOPSIS
enum nvme_virt_mgmt_rt {
.br
-.TH "nvme_virtual_mgmt" 9 "nvme_virtual_mgmt" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_virtual_mgmt" 9 "nvme_virtual_mgmt" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_virtual_mgmt \- Virtualization resource management
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_virtual_mgmt_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_virtual_mgmt_args \- Arguments for the NVMe Virtualization resource management command
-.SH SYNOPSIS
-struct nvme_virtual_mgmt_args {
-.br
-.BI " __u32 *result;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " enum nvme_virt_mgmt_act act;"
-.br
-.BI " enum nvme_virt_mgmt_rt rt;"
-.br
-.BI " __u16 cntlid;"
-.br
-.BI " __u16 nr;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "result" 12
-If successful, the CQE dword0
-.IP "args_size" 12
-Size of \fIstruct nvme_virtual_mgmt_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "act" 12
-Virtual resource action, see \fIenum nvme_virt_mgmt_act\fP
-.IP "rt" 12
-Resource type to modify, see \fIenum nvme_virt_mgmt_rt\fP
-.IP "cntlid" 12
-Controller id for which resources are bing modified
-.IP "nr" 12
-Number of resources being allocated or assigned
-.TH "nvme_write" 9 "nvme_write" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_write" 9 "nvme_write" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_write \- Submit an nvme user write command
.SH SYNOPSIS
-.TH "nvme_write_uncorrectable" 9 "nvme_write_uncorrectable" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_write_uncorrectable" 9 "nvme_write_uncorrectable" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_write_uncorrectable \- Submit an nvme write uncorrectable command
.SH SYNOPSIS
-.TH "nvme_write_zeros" 9 "nvme_write_zeros" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_write_zeros" 9 "nvme_write_zeros" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_write_zeros \- Submit an nvme write zeroes command
.SH SYNOPSIS
-.TH "nvme_zns_append" 9 "nvme_zns_append" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_zns_append" 9 "nvme_zns_append" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_zns_append \- Append data to a zone
.SH SYNOPSIS
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_zns_append_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_zns_append_args \- Arguments for the NVMe ZNS Append command
-.SH SYNOPSIS
-struct nvme_zns_append_args {
-.br
-.BI " __u64 zslba;"
-.br
-.BI " __u64 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " void *metadata;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " __u32 ilbrt;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " __u32 metadata_len;"
-.br
-.BI " __u16 nlb;"
-.br
-.BI " __u16 control;"
-.br
-.BI " __u16 lbat;"
-.br
-.BI " __u16 lbatm;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "zslba" 12
-Zone start logical block address
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "data" 12
-Userspace address of the data
-.IP "metadata" 12
-Userspace address of the metadata
-.IP "args_size" 12
-Size of \fIstruct nvme_zns_append_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-Timeout in ms
-.IP "nsid" 12
-Namespace ID
-.IP "ilbrt" 12
-Initial logical block reference tag
-.IP "data_len" 12
-Length of \fIdata\fP
-.IP "metadata_len" 12
-Length of \fImetadata\fP
-.IP "nlb" 12
-Number of logical blocks
-.IP "control" 12
-.IP "lbat" 12
-Logical block application tag
-.IP "lbatm" 12
-Logical block application tag mask
-.TH "libnvme" 9 "struct nvme_zns_changed_zone_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zns_changed_zone_log" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_zns_changed_zone_log \- ZNS Changed Zone List log
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_zns_desc" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zns_desc" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_zns_desc \-
+struct nvme_zns_desc \- Zone Descriptor Data Structure
.SH SYNOPSIS
struct nvme_zns_desc {
.br
-.TH "libnvme" 9 "struct nvme_zns_id_ctrl" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zns_id_ctrl" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_zns_id_ctrl \-
+struct nvme_zns_id_ctrl \- I/O Command Set Specific Identify Controller Data Structure for the Zoned Namespace Command Set
.SH SYNOPSIS
struct nvme_zns_id_ctrl {
.br
.SH Members
.IP "zasl" 12
+Zone Append Size Limit
.IP "rsvd1" 12
Reserved
-.TH "libnvme" 9 "struct nvme_zns_id_ns" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zns_id_ns" "July 2022" "API Manual" LINUX
.SH NAME
struct nvme_zns_id_ns \- Zoned Namespace Command Set Specific Identify Namespace Data Structure
.SH SYNOPSIS
-.TH "nvme_zns_identify_ctrl" 9 "nvme_zns_identify_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_zns_identify_ctrl" 9 "nvme_zns_identify_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_zns_identify_ctrl \- ZNS identify controller data
.SH SYNOPSIS
-.TH "nvme_zns_identify_ns" 9 "nvme_zns_identify_ns" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_zns_identify_ns" 9 "nvme_zns_identify_ns" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_zns_identify_ns \- ZNS identify namespace data
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvme_zns_lbafe" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zns_lbafe" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_zns_lbafe \-
+struct nvme_zns_lbafe \- LBA Format Extension Data Structure
.SH SYNOPSIS
struct nvme_zns_lbafe {
.br
-.TH "nvme_zns_mgmt_recv" 9 "nvme_zns_mgmt_recv" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_zns_mgmt_recv" 9 "nvme_zns_mgmt_recv" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_zns_mgmt_recv \-
+nvme_zns_mgmt_recv \- ZNS management receive command
.SH SYNOPSIS
.B "int" nvme_zns_mgmt_recv
.BI "(struct nvme_zns_mgmt_recv_args *args " ");"
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_zns_mgmt_recv_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_zns_mgmt_recv_args \- Arguments for the NVMe ZNS Management Receive command
-.SH SYNOPSIS
-struct nvme_zns_mgmt_recv_args {
-.br
-.BI " __u64 slba;"
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_zns_recv_action zra;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " __u16 zrasf;"
-.br
-.BI " bool zras_feat;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "slba" 12
-Starting logical block address
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "data" 12
-Userspace address of the data
-.IP "args_size" 12
-Size of \fIstruct nvme_zns_mgmt_recv_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-timeout in ms
-.IP "nsid" 12
-Namespace ID
-.IP "zra" 12
-zone receive action
-.IP "data_len" 12
-Length of \fIdata\fP
-.IP "zrasf" 12
-Zone receive action specific field
-.IP "zras_feat" 12
-Zone receive action specific features
-.TH "nvme_zns_mgmt_send" 9 "nvme_zns_mgmt_send" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_zns_mgmt_send" 9 "nvme_zns_mgmt_send" "July 2022" "libnvme API manual" LINUX
.SH NAME
-nvme_zns_mgmt_send \-
+nvme_zns_mgmt_send \- ZNS management send command
.SH SYNOPSIS
.B "int" nvme_zns_mgmt_send
.BI "(struct nvme_zns_mgmt_send_args *args " ");"
+++ /dev/null
-.TH "libnvme" 9 "struct nvme_zns_mgmt_send_args" "April 2022" "API Manual" LINUX
-.SH NAME
-struct nvme_zns_mgmt_send_args \- Arguments for the NVMe ZNS Management Send command
-.SH SYNOPSIS
-struct nvme_zns_mgmt_send_args {
-.br
-.BI " __u64 slba;"
-.br
-.BI " __u32 *result;"
-.br
-.BI " void *data;"
-.br
-.BI " int args_size;"
-.br
-.BI " int fd;"
-.br
-.BI " __u32 timeout;"
-.br
-.BI " __u32 nsid;"
-.br
-.BI " enum nvme_zns_send_action zsa;"
-.br
-.BI " __u32 data_len;"
-.br
-.BI " bool select_all;"
-.br
-.BI " __u8 zsaso;"
-.br
-.BI "
-};
-.br
-
-.SH Members
-.IP "slba" 12
-Starting logical block address
-.IP "result" 12
-The command completion result from CQE dword0
-.IP "data" 12
-Userspace address of the data
-.IP "args_size" 12
-Size of \fIstruct nvme_zns_mgmt_send_args\fP
-.IP "fd" 12
-File descriptor of nvme device
-.IP "timeout" 12
-timeout in ms
-.IP "nsid" 12
-Namespace ID
-.IP "zsa" 12
-Zone send action
-.IP "data_len" 12
-Length of \fIdata\fP
-.IP "select_all" 12
-Select all flag
-.IP "zsaso" 12
-Zone Send Action Specific Option
-.TH "libnvme" 9 "enum nvme_zns_recv_action" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_recv_action" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_zns_recv_action \-
+enum nvme_zns_recv_action \- Zone Management Receive - Zone Receive Action Specific Features
.SH SYNOPSIS
enum nvme_zns_recv_action {
.br
-.TH "libnvme" 9 "enum nvme_zns_report_options" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_report_options" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_zns_report_options \-
+enum nvme_zns_report_options \- Zone Management Receive - Zone Receive Action Specific Field
.SH SYNOPSIS
enum nvme_zns_report_options {
.br
-.TH "nvme_zns_report_zones" 9 "nvme_zns_report_zones" "April 2022" "libnvme API manual" LINUX
+.TH "nvme_zns_report_zones" 9 "nvme_zns_report_zones" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvme_zns_report_zones \- Return the list of zones
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvme_zns_send_action" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_send_action" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_zns_send_action \-
+enum nvme_zns_send_action \- Zone Management Send - Zone Send Action
.SH SYNOPSIS
enum nvme_zns_send_action {
.br
-.TH "libnvme" 9 "enum nvme_zns_za" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_za" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_zns_za \-
+enum nvme_zns_za \- Zone Descriptor Data Structure
.SH SYNOPSIS
enum nvme_zns_za {
.br
-.TH "libnvme" 9 "enum nvme_zns_zs" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_zs" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_zns_zs \-
+enum nvme_zns_zs \- Zone Descriptor Data Structure - Zone State
.SH SYNOPSIS
enum nvme_zns_zs {
.br
-.TH "libnvme" 9 "enum nvme_zns_zt" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_zt" "July 2022" "API Manual" LINUX
.SH NAME
-enum nvme_zns_zt \-
+enum nvme_zns_zt \- Zone Descriptor Data Structure - Zone Type
.SH SYNOPSIS
enum nvme_zns_zt {
.br
};
.SH Constants
.IP "NVME_ZONE_TYPE_SEQWRITE_REQ" 12
+Sequential Write Required
-.TH "libnvme" 9 "struct nvme_zone_report" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zone_report" "July 2022" "API Manual" LINUX
.SH NAME
-struct nvme_zone_report \-
+struct nvme_zone_report \- Report Zones Data Structure
.SH SYNOPSIS
struct nvme_zone_report {
.br
-.TH "nvmf_add_ctrl" 9 "nvmf_add_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_add_ctrl" 9 "nvmf_add_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_add_ctrl \- Connect a controller and update topology
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_addr_family" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_addr_family" "July 2022" "API Manual" LINUX
.SH NAME
enum nvmf_addr_family \- Address Family codes for Discovery Log Page entry ADRFAM field
.SH SYNOPSIS
-.TH "nvmf_adrfam_str" 9 "nvmf_adrfam_str" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_adrfam_str" 9 "nvmf_adrfam_str" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_adrfam_str \- Decode ADRFAM field
.SH SYNOPSIS
-.TH "nvmf_cms_str" 9 "nvmf_cms_str" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_cms_str" 9 "nvmf_cms_str" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_cms_str \- Decode RDMA connection management service field
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvmf_connect_data" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_connect_data" "July 2022" "API Manual" LINUX
.SH NAME
struct nvmf_connect_data \- Data payload for the 'connect' command
.SH SYNOPSIS
-.TH "nvmf_connect_disc_entry" 9 "nvmf_connect_disc_entry" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_connect_disc_entry" 9 "nvmf_connect_disc_entry" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_connect_disc_entry \- Connect controller based on the discovery log page entry
.SH SYNOPSIS
.IP "e" 12
Discovery log page entry
.IP "defcfg" 12
-Default configurationn to be used for the new controller
+Default configuration to be used for the new controller
.IP "discover" 12
Set to 'true' if the new controller is a discovery controller
.SH "RETURN"
-.TH "nvmf_default_config" 9 "nvmf_default_config" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_default_config" 9 "nvmf_default_config" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_default_config \- Default values for fabrics configuration
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvmf_dim_data" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_dim_data" "July 2022" "API Manual" LINUX
.SH NAME
struct nvmf_dim_data \- Discovery Information Management (DIM) - Data
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_dim_entfmt" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_dim_entfmt" "July 2022" "API Manual" LINUX
.SH NAME
enum nvmf_dim_entfmt \- Discovery Information Management Entry Format
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_dim_etype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_dim_etype" "July 2022" "API Manual" LINUX
.SH NAME
enum nvmf_dim_etype \- Discovery Information Management Entity Type
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_dim_tas" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_dim_tas" "July 2022" "API Manual" LINUX
.SH NAME
enum nvmf_dim_tas \- Discovery Information Management Task
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_disc_eflags" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_disc_eflags" "July 2022" "API Manual" LINUX
.SH NAME
enum nvmf_disc_eflags \- Discovery Log Page entry flags.
.SH SYNOPSIS
,
.br
.br
-.BI " NVMF_DISC_EFLAGS_BOTH"
+.BI " NVMF_DISC_EFLAGS_NCC"
};
.SH Constants
Explicit Persistent Connection Support for Discovery (EPCSD):
Indicates that Explicit Persistent Connections are
supported for the Discovery controller.
-.IP "NVMF_DISC_EFLAGS_BOTH" 12
-Indicates that both the DUPRETINFO and EPCSD
-features are supported.
+.IP "NVMF_DISC_EFLAGS_NCC" 12
+No CDC Connectivity (NCC): If set to
+'1', then no DDC that describes this entry
+is currently connected to the CDC. If
+cleared to '0', then at least one DDC that
+describes this entry is currently
+connected to the CDC. If the Discovery
+controller returning this log page is not
+a CDC, then this bit shall be cleared to
+'0' and should be ignored by the host.
-.TH "libnvme" 9 "struct nvmf_disc_log_entry" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_disc_log_entry" "July 2022" "API Manual" LINUX
.SH NAME
struct nvmf_disc_log_entry \- Discovery Log Page entry
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvmf_discovery_log" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_discovery_log" "July 2022" "API Manual" LINUX
.SH NAME
struct nvmf_discovery_log \- Discovery Log Page (Log Identifier 70h)
.SH SYNOPSIS
-.TH "nvmf_eflags_str" 9 "nvmf_eflags_str" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_eflags_str" 9 "nvmf_eflags_str" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_eflags_str \- Decode EFLAGS field
.SH SYNOPSIS
-.TH "nvmf_exat_len" 9 "nvmf_exat_len" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_exat_len" 9 "nvmf_exat_len" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_exat_len \- Return length rounded up by 4
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_exattype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_exattype" "July 2022" "API Manual" LINUX
.SH NAME
enum nvmf_exattype \- Extended Attribute Type
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvmf_ext_attr" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_ext_attr" "July 2022" "API Manual" LINUX
.SH NAME
struct nvmf_ext_attr \- Extended Attribute (EXAT)
.SH SYNOPSIS
-.TH "libnvme" 9 "struct nvmf_ext_die" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_ext_die" "July 2022" "API Manual" LINUX
.SH NAME
struct nvmf_ext_die \- Extended Discovery Information Entry (DIE)
.SH SYNOPSIS
.IP "resv1030" 12
Reserved
.IP "exat" 12
-Extented Attributes 0 (\fIstruct nvmf_ext_attr\fP)
+Extended Attributes 0 (\fIstruct nvmf_ext_attr\fP)
-.TH "nvmf_get_discovery_log" 9 "nvmf_get_discovery_log" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_get_discovery_log" 9 "nvmf_get_discovery_log" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_get_discovery_log \- Return the discovery log page
.SH SYNOPSIS
.BI "int max_retries " ");"
.SH ARGUMENTS
.IP "c" 12
-Discover controller to use
+Discover controller to use
.IP "logp" 12
Pointer to the log page to be returned
.IP "max_retries" 12
-.TH "nvmf_hostid_from_file" 9 "nvmf_hostid_from_file" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_hostid_from_file" 9 "nvmf_hostid_from_file" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_hostid_from_file \- Reads the host identifier from the config default location in /etc/nvme/.
.SH SYNOPSIS
-.TH "nvmf_hostnqn_from_file" 9 "nvmf_hostnqn_from_file" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_hostnqn_from_file" 9 "nvmf_hostnqn_from_file" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_hostnqn_from_file \- Reads the host nvm qualified name from the config default location in /etc/nvme/
.SH SYNOPSIS
-.TH "nvmf_hostnqn_generate" 9 "nvmf_hostnqn_generate" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_hostnqn_generate" 9 "nvmf_hostnqn_generate" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_hostnqn_generate \- Generate a machine specific host nqn
.SH SYNOPSIS
-.TH "nvmf_prtype_str" 9 "nvmf_prtype_str" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_prtype_str" 9 "nvmf_prtype_str" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_prtype_str \- Decode RDMA Provider type field
.SH SYNOPSIS
-.TH "nvmf_qptype_str" 9 "nvmf_qptype_str" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_qptype_str" 9 "nvmf_qptype_str" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_qptype_str \- Decode RDMA QP Service type field
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_rdma_cms" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_rdma_cms" "July 2022" "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
-.TH "libnvme" 9 "enum nvmf_rdma_prtype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_rdma_prtype" "July 2022" "API Manual" LINUX
.SH NAME
enum nvmf_rdma_prtype \- RDMA Provider Type codes for Discovery Log Page entry TSAS RDMA_PRTYPE field
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_rdma_qptype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_rdma_qptype" "July 2022" "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
-.TH "nvmf_register_ctrl" 9 "nvmf_register_ctrl" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_register_ctrl" 9 "nvmf_register_ctrl" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_register_ctrl \- Perform registration task with a DC
.SH SYNOPSIS
-.TH "nvmf_sectype_str" 9 "nvmf_sectype_str" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_sectype_str" 9 "nvmf_sectype_str" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_sectype_str \- Decode SECTYPE field
.SH SYNOPSIS
-.TH "nvmf_subtype_str" 9 "nvmf_subtype_str" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_subtype_str" 9 "nvmf_subtype_str" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_subtype_str \- Decode SUBTYPE field
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_tcp_sectype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_tcp_sectype" "July 2022" "API Manual" LINUX
.SH NAME
enum nvmf_tcp_sectype \- Transport Specific Address Subtype Definition for NVMe/TCP Transport
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_treq" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_treq" "July 2022" "API Manual" LINUX
.SH NAME
enum nvmf_treq \- Transport Requirements codes for Discovery Log Page entry TREQ field
.SH SYNOPSIS
-.TH "nvmf_treq_str" 9 "nvmf_treq_str" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_treq_str" 9 "nvmf_treq_str" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_treq_str \- Decode TREQ field
.SH SYNOPSIS
-.TH "libnvme" 9 "enum nvmf_trtype" "April 2022" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_trtype" "July 2022" "API Manual" LINUX
.SH NAME
enum nvmf_trtype \- Transport Type codes for Discovery Log Page entry TRTYPE field
.SH SYNOPSIS
-.TH "nvmf_trtype_str" 9 "nvmf_trtype_str" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_trtype_str" 9 "nvmf_trtype_str" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_trtype_str \- Decode TRTYPE field
.SH SYNOPSIS
-.TH "nvmf_update_config" 9 "nvmf_update_config" "April 2022" "libnvme API manual" LINUX
+.TH "nvmf_update_config" 9 "nvmf_update_config" "July 2022" "libnvme API manual" LINUX
.SH NAME
nvmf_update_config \- Update fabrics configuration values
.SH SYNOPSIS
**Parameters**
``nvme_ctrl_t c``
- Discover controller to use
+ Discover controller to use
``struct nvmf_discovery_log **logp``
Pointer to the log page to be returned
Discovery log page entry
``const struct nvme_fabrics_config *defcfg``
- Default configurationn to be used for the new controller
+ Default configuration to be used for the new controller
``bool *discover``
Set to 'true' if the new controller is a discovery controller
If non-zero, overrides system default timeout in milliseconds
``rsvd2``
- Reserved for future use (and fills an impicit struct pad
+ Reserved for future use (and fills an implicit struct pad
``result``
Set on completion to the command's CQE DWORD 0-1 controller response
+
+
+.. c:struct:: nvme_uring_cmd
+
+ nvme uring command structure
+
+**Definition**
+
+::
+
+ struct nvme_uring_cmd {
+ __u8 opcode;
+ __u8 flags;
+ __u16 rsvd1;
+ __u32 nsid;
+ __u32 cdw2;
+ __u32 cdw3;
+ __u64 metadata;
+ __u64 addr;
+ __u32 metadata_len;
+ __u32 data_len;
+ __u32 cdw10;
+ __u32 cdw11;
+ __u32 cdw12;
+ __u32 cdw13;
+ __u32 cdw14;
+ __u32 cdw15;
+ __u32 timeout_ms;
+ __u32 rsvd2;
+ };
+
+**Members**
+
+``opcode``
+ Operation code, see :c:type:`enum nvme_io_opcodes <nvme_io_opcodes>` and :c:type:`enum nvme_admin_opcodes <nvme_admin_opcodes>`
+
+``flags``
+ Not supported: intended for command flags (eg: SGL, FUSE)
+
+``rsvd1``
+ Reserved for future use
+
+``nsid``
+ Namespace Identifier, or Fabrics type
+
+``cdw2``
+ Command Dword 2 (no spec defined use)
+
+``cdw3``
+ Command Dword 3 (no spec defined use)
+
+``metadata``
+ User space address to metadata buffer (NULL if not used)
+
+``addr``
+ User space address to data buffer (NULL if not used)
+
+``metadata_len``
+ Metadata buffer transfer length
+
+``data_len``
+ Data buffer transfer length
+
+``cdw10``
+ Command Dword 10 (command specific)
+
+``cdw11``
+ Command Dword 11 (command specific)
+
+``cdw12``
+ Command Dword 12 (command specific)
+
+``cdw13``
+ Command Dword 13 (command specific)
+
+``cdw14``
+ Command Dword 14 (command specific)
+
+``cdw15``
+ Command Dword 15 (command specific)
+
+``timeout_ms``
+ If non-zero, overrides system default timeout in milliseconds
+
+``rsvd2``
+ Reserved for future use (and fills an implicit struct pad
+
+
+
+.. c:macro:: sizeof_args
+
+``sizeof_args (type, member, align)``
+
+ Helper function used to determine structure sizes
+
+**Parameters**
+
+``type``
+ Argument structure type
+
+``member``
+ Member inside the type
+
+``align``
+ Alignment information
+
+
.. c:function:: int nvme_submit_admin_passthru64 (int fd, struct nvme_passthru_cmd64 *cmd, __u64 *result)
Submit a 64-bit nvme passthrough admin command
NVMe command flags (not used)
``__u16 rsvd``
- Reserevd for future use
+ Reserved for future use
``__u32 nsid``
Namespace identifier
Command dword 15
``__u32 data_len``
- Length of the data transfered in this command in bytes
+ 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 transfered in this command
+ Length of metadata transferred in this command
``void *metadata``
Pointer to user address of the metadata buffer
NVMe command flags (not used)
``__u16 rsvd``
- Reserevd for future use
+ Reserved for future use
``__u32 nsid``
Namespace identifier
Command dword 15
``__u32 data_len``
- Length of the data transfered in this command in bytes
+ 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 transfered in this command
+ Length of metadata transferred in this command
``void *metadata``
Pointer to user address of the metadata buffer
NVMe command flags (not used)
``__u16 rsvd``
- Reserevd for future use
+ Reserved for future use
``__u32 nsid``
Namespace identifier
Command dword 15
``__u32 data_len``
- Length of the data transfered in this command in bytes
+ 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 transfered in this command
+ Length of metadata transferred in this command
``void *metadata``
Pointer to user address of the metadata buffer
NVMe command flags (not used)
``__u16 rsvd``
- Reserevd for future use
+ Reserved for future use
``__u32 nsid``
Namespace identifier
Command dword 15
``__u32 data_len``
- Length of the data transfered in this command in bytes
+ 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 transfered in this command
+ Length of metadata transferred in this command
``void *metadata``
Pointer to user address of the metadata buffer
0 if **nsid** was set successfully or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_identify_args
-
- Arguments for the NVMe Identify command
-
-**Definition**
-
-::
-
- struct nvme_identify_args {
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- enum nvme_identify_cns cns;
- enum nvme_csi csi;
- __u32 nsid;
- __u16 cntid;
- __u16 cns_specific_id;
- __u8 uuidx;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``data``
- User space destination address to transfer the data
-
-``args_size``
- Size of :c:type:`struct nvme_identify_args <nvme_identify_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms (0 for default timeout)
-
-``cns``
- The Controller or Namespace structure, see **enum** nvme_identify_cns
-
-``csi``
- Command Set Identifier
-
-``nsid``
- Namespace identifier, if applicable
-
-``cntid``
- The Controller Identifier, if applicable
-
-``cns_specific_id``
- Identifier that is required for a particular CNS value
-
-``uuidx``
- UUID Index if controller supports this id selection method
-
-
-
.. c:function:: int nvme_identify (struct nvme_identify_args *args)
Send the NVMe Identify command
File descriptor of nvme device
``__u32 nsid``
- Return namespaces greater than this identifer
+ Return namespaces greater than this identifier
``struct nvme_ns_list *list``
User space destination address to transfer the data
File descriptor of nvme device
``__u32 nsid``
- Return namespaces greater than this identifer
+ Return namespaces greater than this identifier
``struct nvme_ns_list *list``
User space destination address to transfer the data
File descriptor of nvme device
``__u32 nsid``
- The namespace id to retrieve destriptors
+ The namespace id to retrieve descriptors
``struct nvme_ns_id_desc *descs``
User space destination address to transfer the data
host for the namespace specified in the Namespace Identifier (NSID) field if
it is an active NSID.
-The data returned is in the form of an arrray of 'struct nvme_ns_id_desc'.
+The data returned is in the form of an array of 'struct nvme_ns_id_desc'.
See :c:type:`struct nvme_ns_id_desc <nvme_ns_id_desc>` for the definition of the returned structure.
Identifier supported by the NVM subsystem that is equal to or greater than
the NVM Set Identifier.
-See :c:type:`struct nvme_id_nvmset_list <nvme_id_nvmset_list>` for the defintion of the returned structure.
+See :c:type:`struct nvme_id_nvmset_list <nvme_id_nvmset_list>` for the definition of the returned structure.
**Return**
**Description**
-See :c:type:`struct nvme_primary_ctrl_cap <nvme_primary_ctrl_cap>` for the defintion of the returned structure, **cap**.
+See :c:type:`struct nvme_primary_ctrl_cap <nvme_primary_ctrl_cap>` for the definition of the returned structure, **cap**.
**Return**
The list contains entries for controller identifiers greater than or equal
to the value specified in the Controller Identifier (cntid).
-See :c:type:`struct nvme_secondary_ctrls_list <nvme_secondary_ctrls_list>` for a defintion of the returned
+See :c:type:`struct nvme_secondary_ctrls_list <nvme_secondary_ctrls_list>` for a definition of the returned
structure.
**Return**
**Description**
-An I/O Command Set specific Identify Namespace data structre is returned
+An I/O Command Set specific Identify Namespace data structure is returned
for the namespace specified in **nsid**.
**Return**
.. c:function:: int nvme_identify_ns_csi_user_data_format (int fd, __u16 user_data_format, __u8 uuidx, enum nvme_csi csi, void *data)
+ Identify namespace user data format
**Parameters**
Command Set Identifier
``void *data``
- *undescribed*
+ User space destination address to transfer the data
**Description**
.. c:function:: int nvme_identify_iocs_ns_csi_user_data_format (int fd, __u16 user_data_format, __u8 uuidx, enum nvme_csi csi, void *data)
+ Identify I/O command set namespace data structure
**Parameters**
Command Set Identifier
``void *data``
- *undescribed*
+ User space destination address to transfer the data
**Description**
Domain ID
``struct nvme_id_domain_list *list``
- User space destiantion address to transfer data
+ User space destination address to transfer data
**Description**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_get_log_args
-
- Arguments for the NVMe Admin Get Log command
-
-**Definition**
-
-::
-
- struct nvme_get_log_args {
- __u64 lpo;
- __u32 *result;
- void *log;
- int args_size;
- int fd;
- __u32 timeout;
- enum nvme_cmd_get_log_lid lid;
- __u32 len;
- __u32 nsid;
- enum nvme_csi csi;
- __u16 lsi;
- __u8 lsp;
- __u8 uuidx;
- bool rae;
- bool ot;
- };
-
-**Members**
-
-``lpo``
- Log page offset for partial log transfers
-
-``result``
- The command completion result from CQE dword0
-
-``log``
- User space destination address to transfer the data
-
-``args_size``
- Length of the structure
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``lid``
- Log page identifier, see :c:type:`enum nvme_cmd_get_log_lid <nvme_cmd_get_log_lid>` for known
- values
-
-``len``
- Length of provided user buffer to hold the log data in bytes
-
-``nsid``
- Namespace identifier, if applicable
-
-``csi``
- Command set identifier, see :c:type:`enum nvme_csi <nvme_csi>` for known values
-
-``lsi``
- Log Specific Identifier
-
-``lsp``
- Log specific field
-
-``uuidx``
- UUID selection, if supported
-
-``rae``
- Retain asynchronous events
-
-``ot``
- Offset Type; if set **lpo** specifies the index into the list
- of data structures, otherwise **lpo** specifies the byte offset
- into the log page.
-
-
-
.. c:function:: int nvme_get_log (struct nvme_get_log_args *args)
NVMe Admin Get Log command
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-.. c:function:: int nvme_get_log_error (int fd, unsigned nr_entries, bool rae, struct nvme_error_log_page *err_log)
+.. c:function:: int nvme_get_log_error (int fd, unsigned int nr_entries, bool rae, struct nvme_error_log_page *err_log)
Retrieve nvme error log
``int fd``
File descriptor of nvme device
-``unsigned nr_entries``
+``unsigned int nr_entries``
Number of error log entries allocated
``bool rae``
``struct nvme_telemetry_log *log``
Userspace address of the log payload
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
.. c:function:: int nvme_get_log_telemetry_host (int fd, __u64 offset, __u32 len, void *log)
+ Get Telemetry Host-Initiated log page
**Parameters**
**Description**
-Retreives the Telemetry Host-Initiated log page at the requested offset
+Retrieves the Telemetry Host-Initiated log page at the requested offset
using the previously existing capture.
**Return**
.. c:function:: int nvme_get_log_telemetry_ctrl (int fd, bool rae, __u64 offset, __u32 len, void *log)
+ Get Telemetry Controller-Initiated log page
**Parameters**
``void *log``
User address for log page data
+**Description**
+
+Retrieves the Telemetry Controller-Initiated log page at the requested offset
+using the previously existing capture.
+
+**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_endurance_group (int fd, __u16 endgid, struct nvme_endurance_group_log *log)
+ Get Endurance Group log
**Parameters**
.. c:function:: int nvme_get_log_predictable_lat_nvmset (int fd, __u16 nvmsetid, struct nvme_nvmset_predictable_lat_log *log)
+ Predictable Latency Per NVM Set
**Parameters**
.. c:function:: int nvme_get_log_predictable_lat_event (int fd, bool rae, __u32 offset, __u32 len, void *log)
+ Retrieve Predictable Latency Event Aggregate Log Page
**Parameters**
``void *log``
User address for log page data
+**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_ana (int fd, enum nvme_log_ana_lsp lsp, bool rae, __u64 offset, __u32 len, void *log)
+ Retrieve Asymmetric Namespace Access log page
**Parameters**
the asymmetric namespace access information for ANA Groups that contain
namespaces that are attached to the controller processing the command.
-See :c:type:`struct nvme_ana_rsp_hdr <nvme_ana_rsp_hdr>` for the defintion of the returned structure.
+See :c:type:`struct nvme_ana_rsp_hdr <nvme_ana_rsp_hdr>` for the definition of the returned structure.
**Return**
.. c:function:: int nvme_get_log_ana_groups (int fd, bool rae, __u32 len, struct nvme_ana_group_desc *log)
+ Retrieve Asymmetric Namespace Access groups only log page
**Parameters**
**Description**
-See :c:type:`struct nvme_ana_group_desc <nvme_ana_group_desc>` for the defintion of the returned structure.
+See :c:type:`struct nvme_ana_group_desc <nvme_ana_group_desc>` for the definition of the returned 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_lba_status (int fd, bool rae, __u64 offset, __u32 len, void *log)
+ Retrieve LBA Status
**Parameters**
``void *log``
User address to store the log page
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
.. c:function:: int nvme_get_log_endurance_grp_evt (int fd, bool rae, __u32 offset, __u32 len, void *log)
+ Retrieve Rotational Media Information
**Parameters**
``void *log``
User address to store the log page
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
.. c:function:: int nvme_get_log_fid_supported_effects (int fd, bool rae, struct nvme_fid_supported_effects_log *log)
+ Retrieve Feature Identifiers Supported and Effects
**Parameters**
.. c:function:: int nvme_get_log_mi_cmd_supported_effects (int fd, bool rae, struct nvme_mi_cmd_supported_effects_log *log)
- displays the MI Commands Supported byt the controller
+ displays the MI Commands Supported by the controller
**Parameters**
.. c:function:: int nvme_get_log_boot_partition (int fd, bool rae, __u8 lsp, __u32 len, struct nvme_boot_partition *part)
+ Retrieve Boot Partition
**Parameters**
.. c:function:: int nvme_get_log_discovery (int fd, bool rae, __u32 offset, __u32 len, void *log)
+ Retrieve Discovery log page
**Parameters**
.. c:function:: int nvme_get_log_media_unit_stat (int fd, __u16 domid, struct nvme_media_unit_stat_log *mus)
+ Retrieve Media Unit Status
**Parameters**
.. c:function:: int nvme_get_log_support_cap_config_list (int fd, __u16 domid, struct nvme_supported_cap_config_list_log *cap)
+ Retrieve Supported Capacity Configuration List
**Parameters**
Domain Identifier selection, if supported
``struct nvme_supported_cap_config_list_log *cap``
- *undescribed*
+ User address to store supported capabilities config list
**Return**
.. c:function:: int nvme_get_log_reservation (int fd, bool rae, struct nvme_resv_notification_log *log)
+ Retrieve Reservation Notification
**Parameters**
``struct nvme_resv_notification_log *log``
User address to store the reservation log
+**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_sanitize (int fd, bool rae, struct nvme_sanitize_log_page *log)
+ Retrieve Sanitize Status
**Parameters**
.. c:function:: int nvme_get_log_zns_changed_zones (int fd, __u32 nsid, bool rae, struct nvme_zns_changed_zone_log *log)
+ Retrieve list of zones that have changed
**Parameters**
.. c:function:: int nvme_get_log_persistent_event (int fd, enum nvme_pevent_log_action action, __u32 size, void *pevent_log)
+ Retrieve Persistent Event Log
**Parameters**
``void *pevent_log``
User address to store the persistent event log
+**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:struct:: nvme_set_features_args
+.. c:function:: int nvme_set_features (struct nvme_set_features_args *args)
- Arguments for the NVMe Admin Set Feature command
+ Set a feature attribute
-**Definition**
+**Parameters**
-::
+``struct nvme_set_features_args *args``
+ :c:type:`struct nvme_set_features_args <nvme_set_features_args>` argument structure
- struct nvme_set_features_args {
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- __u32 cdw11;
- __u32 cdw12;
- __u32 cdw13;
- __u32 cdw15;
- __u32 data_len;
- bool save;
- __u8 uuidx;
- __u8 fid;
- };
+**Return**
-**Members**
+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.
-``result``
- The command completion result from CQE dword0
-``data``
- User address of feature data, if applicable
+.. c:function:: int nvme_set_features_data (int fd, __u8 fid, __u32 nsid, __u32 cdw11, bool save, __u32 data_len, void *data, __u32 *result)
-``args_size``
- Size of :c:type:`struct nvme_set_features_args <nvme_set_features_args>`
+ Helper function for **nvme_set_features\(\)**
+
+**Parameters**
-``fd``
+``int fd``
File descriptor of nvme device
-``timeout``
- Timeout in ms
+``__u8 fid``
+ Feature identifier
-``nsid``
+``__u32 nsid``
Namespace ID, if applicable
-``cdw11``
+``__u32 cdw11``
Value to set the feature to
-``cdw12``
- Feature specific command dword12 field
-
-``cdw15``
- Feature specific command dword15 field
+``bool save``
+ Save value across power states
-``data_len``
+``__u32 data_len``
Length of feature data, if applicable, in bytes
-``save``
- Save value across power states
+``void *data``
+ User address of feature data, if applicable
-``uuidx``
- UUID Index for differentiating vendor specific encoding
-
-``fid``
- Feature identifier
-
-
-
-.. c:function:: int nvme_set_features (struct nvme_set_features_args *args)
-
- Set a feature attribute
-
-**Parameters**
-
-``struct nvme_set_features_args *args``
- :c:type:`struct nvme_set_features_args <nvme_set_features_args>` argument structure
+``__u32 *result``
+ The command completion result from CQE dword0
**Return**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-.. c:function:: int nvme_set_features_data (int fd, __u8 fid, __u32 nsid, __u32 cdw11, bool save, __u32 data_len, void *data, __u32 *result)
+.. c:function:: int nvme_set_features_simple (int fd, __u8 fid, __u32 nsid, __u32 cdw11, bool save, __u32 *result)
Helper function for **nvme_set_features\(\)**
``bool save``
Save value across power states
-``__u32 data_len``
- Length of feature data, if applicable, in bytes
-
-``void *data``
- User address of feature data, if applicable
-
``__u32 *result``
The command completion result from CQE dword0
+**Return**
-.. c:function:: int nvme_set_features_simple (int fd, __u8 fid, __u32 nsid, __u32 cdw11, bool save, __u32 *result)
-
- Helper functionn for **nvme_set_features\(\)**
-
-**Parameters**
-
-``int fd``
- File descriptor of nvme device
-
-``__u8 fid``
- Feature identifier
-
-``__u32 nsid``
- Namespace ID, if applicable
-
-``__u32 cdw11``
- Value to set the feature to
-
-``bool save``
- Save value across power states
-
-``__u32 *result``
- The command completion result from CQE dword0
+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_set_features_arbitration (int fd, __u8 ab, __u8 lpw, __u8 mpw, __u8 hpw, bool save, __u32 *result)
+ Set arbitration features
**Parameters**
.. c:function:: int nvme_set_features_power_mgmt (int fd, __u8 ps, __u8 wh, bool save, __u32 *result)
+ Set power management feature
**Parameters**
.. c:function:: int nvme_set_features_lba_range (int fd, __u32 nsid, __u32 nr_ranges, bool save, struct nvme_lba_range_type *data, __u32 *result)
+ Set LBA range feature
**Parameters**
.. c:function:: int nvme_set_features_temp_thresh (int fd, __u16 tmpth, __u8 tmpsel, enum nvme_feat_tmpthresh_thsel thsel, bool save, __u32 *result)
+ Set temperature threshold feature
**Parameters**
.. c:function:: int nvme_set_features_err_recovery (int fd, __u32 nsid, __u16 tler, bool dulbe, bool save, __u32 *result)
+ Set error recovery feature
**Parameters**
.. c:function:: int nvme_set_features_volatile_wc (int fd, bool wce, bool save, __u32 *result)
+ Set volatile write cache feature
**Parameters**
.. c:function:: int nvme_set_features_irq_coalesce (int fd, __u8 thr, __u8 time, bool save, __u32 *result)
+ Set IRQ coalesce feature
**Parameters**
.. c:function:: int nvme_set_features_irq_config (int fd, __u16 iv, bool cd, bool save, __u32 *result)
+ Set IRQ config feature
**Parameters**
.. c:function:: int nvme_set_features_write_atomic (int fd, bool dn, bool save, __u32 *result)
+ Set write atomic feature
**Parameters**
.. c:function:: int nvme_set_features_async_event (int fd, __u32 events, bool save, __u32 *result)
+ Set asynchronous event feature
**Parameters**
.. c:function:: int nvme_set_features_auto_pst (int fd, bool apste, bool save, struct nvme_feat_auto_pst *apst, __u32 *result)
+ Set autonomous power state feature
**Parameters**
.. c:function:: int nvme_set_features_timestamp (int fd, bool save, __u64 timestamp)
+ Set timestamp feature
**Parameters**
Save value across power states
``__u64 timestamp``
- The current timestamp value to assign to this this feature
+ The current timestamp value to assign to this feature
**Return**
.. c:function:: int nvme_set_features_hctm (int fd, __u16 tmt2, __u16 tmt1, bool save, __u32 *result)
+ Set thermal management feature
**Parameters**
.. c:function:: int nvme_set_features_nopsc (int fd, bool noppme, bool save, __u32 *result)
+ Set non-operational power state feature
**Parameters**
.. c:function:: int nvme_set_features_rrl (int fd, __u8 rrl, __u16 nvmsetid, bool save, __u32 *result)
+ Set read recovery level feature
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-.. c:function:: int nvme_set_features_plm_config (int fd, bool enable, __u16 nvmsetid, bool save, struct nvme_plm_config *data, __u32*result)
+.. c:function:: int nvme_set_features_plm_config (int fd, bool enable, __u16 nvmsetid, bool save, struct nvme_plm_config *data, __u32 *result)
+ Set predictable latency feature
**Parameters**
``struct nvme_plm_config *data``
Pointer to structure nvme_plm_config
-``__u32*result``
+``__u32 *result``
The command completion result from CQE dword0
**Return**
.. c:function:: int nvme_set_features_plm_window (int fd, enum nvme_feat_plm_window_select sel, __u16 nvmsetid, bool save, __u32 *result)
+ Set window select feature
**Parameters**
.. c:function:: int nvme_set_features_lba_sts_interval (int fd, __u16 lsiri, __u16 lsipi, bool save, __u32 *result)
+ Set LBA status information feature
**Parameters**
.. c:function:: int nvme_set_features_host_behavior (int fd, bool save, struct nvme_feat_host_behavior *data)
+ Set host behavior feature
**Parameters**
.. c:function:: int nvme_set_features_sanitize (int fd, bool nodrm, bool save, __u32 *result)
+ Set sanitize feature
**Parameters**
.. c:function:: int nvme_set_features_endurance_evt_cfg (int fd, __u16 endgid, __u8 egwarn, bool save, __u32 *result)
+ Set endurance event config feature
**Parameters**
.. c:function:: int nvme_set_features_sw_progress (int fd, __u8 pbslc, bool save, __u32 *result)
+ Set pre-boot software load count feature
**Parameters**
.. c:function:: int nvme_set_features_host_id (int fd, bool exhid, bool save, __u8 *hostid)
+ Set enable extended host identifers feature
**Parameters**
.. c:function:: int nvme_set_features_resv_mask (int fd, __u32 mask, bool save, __u32 *result)
+ Set reservation notification mask feature
**Parameters**
.. c:function:: int nvme_set_features_resv_persist (int fd, bool ptpl, bool save, __u32 *result)
+ Set persist through power loss feature
**Parameters**
.. c:function:: int nvme_set_features_write_protect (int fd, enum nvme_feat_nswpcfg_state state, bool save, __u32 *result)
+ Set write protect feature
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_get_features_args
-
- Arguments for the NVMe Admin Get Feature command
-
-**Definition**
-
-::
-
- struct nvme_get_features_args {
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_get_features_sel sel;
- __u32 cdw11;
- __u32 data_len;
- __u8 fid;
- __u8 uuidx;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``data``
- User address of feature data, if applicable
-
-``args_size``
- Size of :c:type:`struct nvme_get_features_args <nvme_get_features_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace ID, if applicable
-
-``sel``
- Select which type of attribute to return,
- see :c:type:`enum nvme_get_features_sel <nvme_get_features_sel>`
-
-``cdw11``
- Feature specific command dword11 field
-
-``data_len``
- Length of feature data, if applicable, in bytes
-
-``fid``
- Feature identifier, see :c:type:`enum nvme_features_id <nvme_features_id>`
-
-``uuidx``
- UUID Index for differentiating vendor specific encoding
-
-
-
.. c:function:: int nvme_get_features (struct nvme_get_features_args *args)
Retrieve a feature attribute
``__u32 *result``
The command completion result from CQE dword0
+**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_features_simple (int fd, enum nvme_features_id fid, __u32 nsid, __u32 *result)
``__u32 *result``
The command completion result from CQE dword0
+**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_features_arbitration (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get arbitration feature
**Parameters**
.. c:function:: int nvme_get_features_power_mgmt (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get power management feature
**Parameters**
.. c:function:: int nvme_get_features_lba_range (int fd, enum nvme_get_features_sel sel, struct nvme_lba_range_type *data, __u32 *result)
+ Get LBA range feature
**Parameters**
.. c:function:: int nvme_get_features_temp_thresh (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get temperature threshold feature
**Parameters**
.. c:function:: int nvme_get_features_err_recovery (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get error recovery feature
**Parameters**
.. c:function:: int nvme_get_features_volatile_wc (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get volatile write cache feature
**Parameters**
.. c:function:: int nvme_get_features_num_queues (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get number of queues feature
**Parameters**
.. c:function:: int nvme_get_features_irq_coalesce (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get IRQ coalesce feature
**Parameters**
.. c:function:: int nvme_get_features_irq_config (int fd, enum nvme_get_features_sel sel, __u16 iv, __u32 *result)
+ Get IRQ config feature
**Parameters**
.. c:function:: int nvme_get_features_write_atomic (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get write atomic feature
**Parameters**
.. c:function:: int nvme_get_features_async_event (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get asynchronous event feature
**Parameters**
.. c:function:: int nvme_get_features_auto_pst (int fd, enum nvme_get_features_sel sel, struct nvme_feat_auto_pst *apst, __u32 *result)
+ Get autonomous power state feature
**Parameters**
.. c:function:: int nvme_get_features_host_mem_buf (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get host memory buffer feature
**Parameters**
.. c:function:: int nvme_get_features_timestamp (int fd, enum nvme_get_features_sel sel, struct nvme_timestamp *ts)
+ Get timestamp feature
**Parameters**
.. c:function:: int nvme_get_features_kato (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get keep alive timeout feature
**Parameters**
.. c:function:: int nvme_get_features_hctm (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get thermal management feature
**Parameters**
.. c:function:: int nvme_get_features_nopsc (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get non-operational power state feature
**Parameters**
.. c:function:: int nvme_get_features_rrl (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get read recovery level feature
**Parameters**
.. c:function:: int nvme_get_features_plm_config (int fd, enum nvme_get_features_sel sel, __u16 nvmsetid, struct nvme_plm_config *data, __u32 *result)
+ Get predictable latency feature
**Parameters**
.. c:function:: int nvme_get_features_plm_window (int fd, enum nvme_get_features_sel sel, __u16 nvmsetid, __u32 *result)
+ Get window select feature
**Parameters**
.. c:function:: int nvme_get_features_lba_sts_interval (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get LBA status information feature
**Parameters**
.. c:function:: int nvme_get_features_host_behavior (int fd, enum nvme_get_features_sel sel, struct nvme_feat_host_behavior *data, __u32 *result)
+ Get host behavior feature
**Parameters**
Select which type of attribute to return, see :c:type:`enum nvme_get_features_sel <nvme_get_features_sel>`
``struct nvme_feat_host_behavior *data``
- Poniter to structure nvme_feat_host_behavior
+ Pointer to structure nvme_feat_host_behavior
``__u32 *result``
The command completion result from CQE dword0
.. c:function:: int nvme_get_features_sanitize (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get sanitize feature
**Parameters**
.. c:function:: int nvme_get_features_endurance_event_cfg (int fd, enum nvme_get_features_sel sel, __u16 endgid, __u32 *result)
+ Get endurance event config feature
**Parameters**
.. c:function:: int nvme_get_features_sw_progress (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get software progress feature
**Parameters**
.. c:function:: int nvme_get_features_host_id (int fd, enum nvme_get_features_sel sel, bool exhid, __u32 len, __u8 *hostid)
+ Get host id feature
**Parameters**
.. c:function:: int nvme_get_features_resv_mask (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get reservation mask feature
**Parameters**
.. c:function:: int nvme_get_features_resv_persist (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get reservation persist feature
**Parameters**
.. c:function:: int nvme_get_features_write_protect (int fd, __u32 nsid, enum nvme_get_features_sel sel, __u32 *result)
+ Get write protect feature
**Parameters**
.. c:function:: int nvme_get_features_iocs_profile (int fd, enum nvme_get_features_sel sel, __u32 *result)
+ Get IOCS profile feature
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_format_nvm_args
-
- Arguments for the Format Nvme Namespace command
-
-**Definition**
-
-::
-
- struct nvme_format_nvm_args {
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_cmd_format_mset mset;
- enum nvme_cmd_format_pi pi;
- enum nvme_cmd_format_pil pil;
- enum nvme_cmd_format_ses ses;
- __u8 lbaf;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``args_size``
- Size of :c:type:`struct nvme_format_nvm_args <nvme_format_nvm_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Set to override default timeout to this value in milliseconds;
- useful for long running formats. 0 will use system default.
-
-``nsid``
- Namespace ID to format
-
-``mset``
- Metadata settings (extended or separated), true if extended
-
-``pi``
- Protection information type
-
-``pil``
- Protection information location (beginning or end), true if end
-
-``ses``
- Secure erase settings
-
-``lbaf``
- Logical block address format
-
-
-
.. c:function:: int nvme_format_nvm (struct nvme_format_nvm_args *args)
Format nvme namespace(s)
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_ns_mgmt_args
-
- Arguments for NVMe Namespace Management command
-
-**Definition**
-
-::
-
- struct nvme_ns_mgmt_args {
- __u32 *result;
- struct nvme_id_ns *ns;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_ns_mgmt_sel sel;
- __u8 csi;
- };
-
-**Members**
-
-``result``
- NVMe command result
-
-``ns``
- Namespace identication descriptors
-
-``args_size``
- Size of :c:type:`struct nvme_ns_mgmt_args <nvme_ns_mgmt_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace identifier
-
-``sel``
- Type of management operation to perform
-
-``csi``
- Command Set Identifier
-
-
-
.. c:function:: int nvme_ns_mgmt (struct nvme_ns_mgmt_args *args)
Issue a Namespace management command
``struct nvme_ns_mgmt_args *args``
:c:type:`struct nvme_ns_mgmt_args <nvme_ns_mgmt_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_ns_mgmt_create (int fd, struct nvme_id_ns *ns, __u32 *nsid, __u32 timeout, __u8 csi)
+ Create a non attached namespace
**Parameters**
On success, set to the namespace id that was created
``__u32 timeout``
- Overide the default timeout to this value in milliseconds;
+ Override the default timeout to this value in milliseconds;
set to 0 to use the system default.
``__u8 csi``
.. c:function:: int nvme_ns_mgmt_delete (int fd, __u32 nsid)
+ Delete a non attached namespace
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_ns_attach_args
-
- Arguments for Nvme Namespace Management command
-
-**Definition**
-
-::
-
- struct nvme_ns_attach_args {
- __u32 *result;
- struct nvme_ctrl_list *ctrlist;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_ns_attach_sel sel;
- };
-
-**Members**
-
-``result``
- NVMe command result
-
-``ctrlist``
- Controller list to modify attachment state of nsid
-
-``args_size``
- Size of :c:type:`struct nvme_ns_attach_args <nvme_ns_attach_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace ID to execute attach selection
-
-``sel``
- Attachment selection, see :c:type:`enum nvme_ns_attach_sel <nvme_ns_attach_sel>`
-
-
-
.. c:function:: int nvme_ns_attach (struct nvme_ns_attach_args *args)
Attach or detach namespace to controller(s)
``struct nvme_ns_attach_args *args``
:c:type:`struct nvme_ns_attach_args <nvme_ns_attach_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_ns_attach_ctrls (int fd, __u32 nsid, struct nvme_ctrl_list *ctrlist)
+ Attach namespace to controllers
**Parameters**
``struct nvme_ctrl_list *ctrlist``
Controller list to modify attachment state of nsid
+**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_ns_detach_ctrls (int fd, __u32 nsid, struct nvme_ctrl_list *ctrlist)
+ Detach namespace from controllers
**Parameters**
``struct nvme_ctrl_list *ctrlist``
Controller list to modify attachment state of nsid
+**Return**
-
-
-.. c:struct:: nvme_fw_download_args
-
- Arguments for the NVMe Firmware Download command
-
-**Definition**
-
-::
-
- struct nvme_fw_download_args {
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 offset;
- __u32 data_len;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``data``
- Userspace address of the firmware data
-
-``args_size``
- Size of :c:type:`struct nvme_fw_download_args <nvme_fw_download_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``offset``
- Offset in the firmware data
-
-``data_len``
- Length of data in this command in bytes
-
+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_fw_download (struct nvme_fw_download_args *args)
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_fw_commit_args
-
- Arguments for the NVMe Firmware Commit command
-
-**Definition**
-
-::
-
- struct nvme_fw_commit_args {
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- enum nvme_fw_commit_ca action;
- __u8 slot;
- bool bpid;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``args_size``
- Size of :c:type:`struct nvme_fw_commit_args <nvme_fw_commit_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``action``
- Action to use for the firmware image, see :c:type:`enum nvme_fw_commit_ca <nvme_fw_commit_ca>`
-
-``slot``
- Firmware slot to commit the downloaded image
-
-``bpid``
- Set to true to select the boot partition id
-
-
-
.. c:function:: int nvme_fw_commit (struct nvme_fw_commit_args *args)
Commit firmware using the specified action
the commit process.
+.. c:function:: int nvme_security_send (struct nvme_security_send_args *args)
+ Security Send command
-.. c:struct:: nvme_security_send_args
-
- Arguments for the NVMe Security Send command
+**Parameters**
-**Definition**
+``struct nvme_security_send_args *args``
+ :c:type:`struct nvme_security_send <nvme_security_send>` argument structure
-::
-
- struct nvme_security_send_args {
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- __u32 tl;
- __u32 data_len;
- __u8 nssf;
- __u8 spsp0;
- __u8 spsp1;
- __u8 secp;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``data``
- Security data payload to send
-
-``args_size``
- Size of :c:type:`struct nvme_security_send_args <nvme_security_send_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace ID to issue security command on
-
-``tl``
- Protocol specific transfer length
-
-``data_len``
- Data length of the payload in bytes
-
-``nssf``
- NVMe Security Specific field
-
-``spsp0``
- Security Protocol Specific field
-
-``spsp1``
- Security Protocol Specific field
-
-``secp``
- Security Protocol
-
-
-
-.. c:function:: int nvme_security_send (struct nvme_security_send_args *args)
-
-
-**Parameters**
-
-``struct nvme_security_send_args *args``
- :c:type:`struct nvme_security_send <nvme_security_send>` argument structure
-
-**Description**
+**Description**
The Security Send command transfers security protocol data to the
controller. The data structure transferred to the controller as part of this
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_security_receive_args
-
- Arguments for the NVMe Security Receive command
-
-**Definition**
-
-::
-
- struct nvme_security_receive_args {
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- __u32 al;
- __u32 data_len;
- __u8 nssf;
- __u8 spsp0;
- __u8 spsp1;
- __u8 secp;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``data``
- Security data payload to send
-
-``args_size``
- Size of :c:type:`struct nvme_security_receive_args <nvme_security_receive_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace ID to issue security command on
-
-``al``
- Protocol specific allocation length
-
-``data_len``
- Data length of the payload in bytes
-
-``nssf``
- NVMe Security Specific field
-
-``spsp0``
- Security Protocol Specific field
-
-``spsp1``
- Security Protocol Specific field
-
-``secp``
- Security Protocol
-
-
-
.. c:function:: int nvme_security_receive (struct nvme_security_receive_args *args)
+ Security Receive command
**Parameters**
``struct nvme_security_receive_args *args``
- :c:type:`struct nvme_security_recevice <nvme_security_recevice>` argument structure
+ :c:type:`struct nvme_security_receive <nvme_security_receive>` argument structure
**Return**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_get_lba_status_args
-
- Arguments for the NVMe Get LBA Status command
-
-**Definition**
-
-::
-
- struct nvme_get_lba_status_args {
- __u64 slba;
- __u32 *result;
- struct nvme_lba_status *lbas;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- __u32 mndw;
- enum nvme_lba_status_atype atype;
- __u16 rl;
- };
-
-**Members**
-
-``slba``
- Starting logical block address to check statuses
-
-``result``
- The command completion result from CQE dword0
-
-``lbas``
- Data payload to return status descriptors
-
-``args_size``
- Size of :c:type:`struct nvme_get_lba_status_args <nvme_get_lba_status_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace ID to retrieve LBA status
-
-``mndw``
- Maximum number of dwords to return
-
-``atype``
- Action type mechanism to determine LBA status desctriptors to
- return, see :c:type:`enum nvme_lba_status_atype <nvme_lba_status_atype>`
-
-``rl``
- Range length from slba to perform the action
-
-
-
.. c:function:: int nvme_get_lba_status (struct nvme_get_lba_status_args *args)
Retrieve information on possibly unrecoverable LBAs
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_directive_send_args
-
- Arguments for the NVMe Directive Send command
-
-**Definition**
-
-::
-
- struct nvme_directive_send_args {
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_directive_send_doper doper;
- enum nvme_directive_dtype dtype;
- __u32 cdw12;
- __u32 data_len;
- __u16 dspec;
- };
-
-**Members**
-
-``result``
- If successful, the CQE dword0 value
-
-``data``
- Data payload to to be send
-
-``args_size``
- Size of :c:type:`struct nvme_directive_send_args <nvme_directive_send_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace ID, if applicable
-
-``doper``
- Directive send operation, see :c:type:`enum nvme_directive_send_doper <nvme_directive_send_doper>`
-
-``dtype``
- Directive type, see :c:type:`enum nvme_directive_dtype <nvme_directive_dtype>`
-
-``cdw12``
- Directive specific command dword12
-
-``data_len``
- Length of data payload in bytes
-
-``dspec``
- Directive specific field
-
-
-
.. c:function:: int nvme_directive_send (struct nvme_directive_send_args *args)
Send directive command
.. c:function:: int nvme_directive_send_id_endir (int fd, __u32 nsid, bool endir, enum nvme_directive_dtype dtype, struct nvme_id_directives *id)
+ Directive Send Enable Directive
**Parameters**
.. c:function:: int nvme_directive_send_stream_release_identifier (int fd, __u32 nsid, __u16 stream_id)
+ Directive Send Stream release
**Parameters**
.. c:function:: int nvme_directive_send_stream_release_resource (int fd, __u32 nsid)
+ Directive Send Stream release resources
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_directive_recv_args
-
- Arguments for the NVMe Directive Receive command
-
-**Definition**
-
-::
-
- struct nvme_directive_recv_args {
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_directive_receive_doper doper;
- enum nvme_directive_dtype dtype;
- __u32 cdw12;
- __u32 data_len;
- __u16 dspec;
- };
-
-**Members**
-
-``result``
- If successful, the CQE dword0 value
-
-``data``
- Usespace address of data payload
-
-``args_size``
- Size of :c:type:`struct nvme_directive_recv_args <nvme_directive_recv_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace ID, if applicable
-
-``doper``
- Directive send operation, see :c:type:`enum nvme_directive_send_doper <nvme_directive_send_doper>`
-
-``dtype``
- Directive type, see :c:type:`enum nvme_directive_dtype <nvme_directive_dtype>`
-
-``cdw12``
- Directive specific command dword12
-
-``data_len``
- Length of data payload in bytes
-
-``dspec``
- Directive specific field
-
-
-
.. c:function:: int nvme_directive_recv (struct nvme_directive_recv_args *args)
Receive directive specific data
.. c:function:: int nvme_directive_recv_identify_parameters (int fd, __u32 nsid, struct nvme_id_directives *id)
+ Directive receive identifier parameters
**Parameters**
.. c:function:: int nvme_directive_recv_stream_parameters (int fd, __u32 nsid, struct nvme_streams_directive_params *parms)
+ Directive receive stream parameters
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-.. c:function:: int nvme_directive_recv_stream_status (int fd, __u32 nsid, unsigned nr_entries, struct nvme_streams_directive_status *id)
+.. c:function:: int nvme_directive_recv_stream_status (int fd, __u32 nsid, unsigned int nr_entries, struct nvme_streams_directive_status *id)
+ Directive receive stream status
**Parameters**
``__u32 nsid``
Namespace ID
-``unsigned nr_entries``
+``unsigned int nr_entries``
Number of streams to receive
``struct nvme_streams_directive_status *id``
.. c:function:: int nvme_directive_recv_stream_allocate (int fd, __u32 nsid, __u16 nsr, __u32 *result)
+ Directive receive stream allocate
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_capacity_mgmt_args
-
- Arguments for the NVMe Capacity Management command
-
-**Definition**
-
-::
-
- struct nvme_capacity_mgmt_args {
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 cdw11;
- __u32 cdw12;
- __u16 element_id;
- __u8 op;
- };
-
-**Members**
-
-``result``
- If successful, the CQE dword0 value
-
-``args_size``
- Size of :c:type:`struct nvme_capacity_mgmt_args <nvme_capacity_mgmt_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``cdw11``
- Least significant 32 bits of the capacity in bytes of the
- Endurance Group or NVM Set to be created
-
-``cdw12``
- Most significant 32 bits of the capacity in bytes of the
- Endurance Group or NVM Set to be created
-
-``element_id``
- Value specific to the value of the Operation field
-
-``op``
- Operation to be performed by the controller
-
-
-
.. c:function:: int nvme_capacity_mgmt (struct nvme_capacity_mgmt_args *args)
+ Capacity management command
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_lockdown_args
-
- Arguments for the NVME Lockdown command
-
-**Definition**
-
-::
-
- struct nvme_lockdown_args {
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- __u8 scp;
- __u8 prhbt;
- __u8 ifc;
- __u8 ofi;
- __u8 uuidx;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``args_size``
- Size of :c:type:`struct nvme_lockdown_args <nvme_lockdown_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms (0 for default timeout)
-
-``scp``
- Scope of the command
-
-``prhbt``
- Prohibit or allow the command opcode or Set Features command
-
-``ifc``
- Affected interface
-
-``ofi``
- Opcode or Feature Identifier
-
-``uuidx``
- UUID Index if controller supports this id selection method
-
-
-
.. c:function:: int nvme_lockdown (struct nvme_lockdown_args *args)
Issue lockdown command
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_set_property_args
-
- Arguments for NVMe Set Property command
-
-**Definition**
-
-::
-
- struct nvme_set_property_args {
- __u64 value;
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- int offset;
- };
-
-**Members**
-
-``value``
- The value to set the property
-
-``result``
- The command completion result from CQE dword0
-
-``args_size``
- Size of :c:type:`struct nvme_set_property_args <nvme_set_property_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``offset``
- Property offset from the base to set
-
-
-
.. c:function:: int nvme_set_property (struct nvme_set_property_args *args)
Set controller property
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+.. c:function:: int nvme_get_property (struct nvme_get_property_args *args)
+ Get a controller property
-.. c:struct:: nvme_get_property_args
+**Parameters**
- Arguments for NVMe Get Property command
+``struct nvme_get_property_args *args``
+ :c:type:`struct nvme_get_propert_args <nvme_get_propert_args>` argument structure
-**Definition**
+**Description**
-::
-
- struct nvme_get_property_args {
- __u64 *value;
- int args_size;
- int fd;
- __u32 timeout;
- int offset;
- };
-
-**Members**
-
-``value``
- Where the property's value will be stored on success
-
-``args_size``
- Size of :c:type:`struct nvme_get_property_args <nvme_get_property_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``offset``
- Property offset from the base to retrieve
-
-
-
-.. c:function:: int nvme_get_property (struct nvme_get_property_args *args)
-
- Get a controller property
-
-**Parameters**
-
-``struct nvme_get_property_args *args``
- :c:type:`struct nvme_get_propert_args <nvme_get_propert_args>` argument structure
-
-**Description**
-
-This is an NVMe-over-Fabrics specific command, not applicable to PCIe. These
-properties align to the PCI MMIO controller registers.
+This is an NVMe-over-Fabrics specific command, not applicable to PCIe. These
+properties align to the PCI MMIO controller registers.
**Return**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_sanitize_nvm_args
-
- Arguments for the NVMe Sanitize NVM command
-
-**Definition**
-
-::
-
- struct nvme_sanitize_nvm_args {
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- enum nvme_sanitize_sanact sanact;
- __u32 ovrpat;
- bool ause;
- __u8 owpass;
- bool oipbp;
- bool nodas;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``args_size``
- Size of :c:type:`struct nvme_sanitize_nvm_args <nvme_sanitize_nvm_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``sanact``
- Sanitize action, see :c:type:`enum nvme_sanitize_sanact <nvme_sanitize_sanact>`
-
-``ovrpat``
- Overwrite pattern
-
-``ause``
- Set to allow unrestriced sanitize exit
-
-``owpass``
- Overwrite pass count
-
-``oipbp``
- Set to overwrite invert pattern between passes
-
-``nodas``
- Set to not deallocate blocks after sanitizing
-
-
-
.. c:function:: int nvme_sanitize_nvm (struct nvme_sanitize_nvm_args *args)
Start a sanitize operation
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_dev_self_test_args
-
- Arguments for the NVMe Device Self Test command
-
-**Definition**
-
-::
-
- struct nvme_dev_self_test_args {
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_dst_stc stc;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``args_size``
- Size of :c:type:`struct nvme_dev_self_test_args <nvme_dev_self_test_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace ID to test
-
-``stc``
- Self test code, see :c:type:`enum nvme_dst_stc <nvme_dst_stc>`
-
-
-
.. c:function:: int nvme_dev_self_test (struct nvme_dev_self_test_args *args)
Start or abort a self test
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_virtual_mgmt_args
-
- Arguments for the NVMe Virtualization resource management command
-
-**Definition**
-
-::
-
- struct nvme_virtual_mgmt_args {
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- enum nvme_virt_mgmt_act act;
- enum nvme_virt_mgmt_rt rt;
- __u16 cntlid;
- __u16 nr;
- };
-
-**Members**
-
-``result``
- If successful, the CQE dword0
-
-``args_size``
- Size of :c:type:`struct nvme_virtual_mgmt_args <nvme_virtual_mgmt_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``act``
- Virtual resource action, see :c:type:`enum nvme_virt_mgmt_act <nvme_virt_mgmt_act>`
-
-``rt``
- Resource type to modify, see :c:type:`enum nvme_virt_mgmt_rt <nvme_virt_mgmt_rt>`
-
-``cntlid``
- Controller id for which resources are bing modified
-
-``nr``
- Number of resources being allocated or assigned
-
-
-
.. c:function:: int nvme_virtual_mgmt (struct nvme_virtual_mgmt_args *args)
Virtualization resource management
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_io_args
-
- Arguments for NVMe I/O commands
-
-**Definition**
-
-::
-
- struct nvme_io_args {
- __u64 slba;
- __u64 storage_tag;
- __u32 *result;
- void *data;
- void *metadata;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- __u32 reftag;
- __u32 data_len;
- __u32 metadata_len;
- __u16 nlb;
- __u16 control;
- __u16 apptag;
- __u16 appmask;
- __u16 dspec;
- __u8 dsm;
- };
-
-**Members**
-
-``slba``
- Starting logical block
-
-``storage_tag``
- This filed specifies Variable Sized Expected Logical Block
- Storage Tag (ELBST) and Expected Logical Block Reference
- Tag (ELBRT)
-
-``result``
- The command completion result from CQE dword0
-
-``data``
- Pointer to user address of the data buffer
-
-``metadata``
- Pointer to user address of the metadata buffer
-
-``args_size``
- Size of :c:type:`struct nvme_io_args <nvme_io_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace ID
-
-``reftag``
- This field specifies the Initial Logical Block Reference Tag
- expected value. Used only if the namespace is formatted to use
- end-to-end protection information.
-
-``data_len``
- Length of user buffer, **data**, in bytes
-
-``metadata_len``
- Length of user buffer, **metadata**, in bytes
-
-``nlb``
- Number of logical blocks to send (0's based value)
-
-``control``
- Command control flags, see :c:type:`enum nvme_io_control_flags <nvme_io_control_flags>`.
-
-``apptag``
- This field specifies the Application Tag Mask expected value.
- Used only if the namespace is formatted to use end-to-end
- protection information.
-
-``appmask``
- This field specifies the Application Tag expected value. Used
- only if the namespace is formatted to use end-to-end protection
- information.
-
-``dspec``
- Directive specific value
-
-``dsm``
- Data set management attributes, see :c:type:`enum nvme_io_dsm_flags <nvme_io_dsm_flags>`
-
-
-
.. c:function:: int nvme_io (struct nvme_io_args *args, __u8 opcode)
Submit an nvme user I/O command
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_dsm_args
-
- Arguments for the NVMe Dataset Management command
-
-**Definition**
-
-::
-
- struct nvme_dsm_args {
- __u32 *result;
- struct nvme_dsm_range *dsm;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- __u32 attrs;
- __u16 nr_ranges;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``dsm``
- The data set management attributes
-
-``args_size``
- Size of :c:type:`struct nvme_dsm_args <nvme_dsm_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace identifier
-
-``attrs``
- DSM attributes, see :c:type:`enum nvme_dsm_attributes <nvme_dsm_attributes>`
-
-``nr_ranges``
- Number of block ranges in the data set management attributes
-
-
-
.. c:function:: int nvme_dsm (struct nvme_dsm_args *args)
Send an nvme data set management command
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_copy_args
-
- Arguments for the NVMe Copy command
-
-**Definition**
-
-::
-
- struct nvme_copy_args {
- __u64 sdlba;
- __u32 *result;
- struct nvme_copy_range *copy;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- __u32 ilbrt;
- int lr;
- int fua;
- __u16 nr;
- __u16 dspec;
- __u16 lbatm;
- __u16 lbat;
- __u8 prinfor;
- __u8 prinfow;
- __u8 dtype;
- __u8 format;
- };
-
-**Members**
-
-``sdlba``
- Start destination LBA
-
-``result``
- The command completion result from CQE dword0
-
-``copy``
- Range descriptior
-
-``args_size``
- Size of :c:type:`struct nvme_copy_args <nvme_copy_args>`
-
-``fd``
- File descriptor of the nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace identifier
-
-``ilbrt``
- Initial logical block reference tag
-
-``lr``
- Limited retry
-
-``fua``
- Force unit access
-
-``nr``
- Number of ranges
-
-``dspec``
- Directive specific value
-
-``lbatm``
- Logical block application tag mask
-
-``lbat``
- Logical block application tag
-
-``prinfor``
- Protection information field for read
-
-``prinfow``
- Protection information field for write
-
-``dtype``
- Directive type
-
-``format``
- Descriptor format
-
-
-
.. c:function:: int nvme_copy (struct nvme_copy_args *args)
+ Copy command
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_resv_acquire_args
-
- Arguments for the NVMe Reservation Acquire Comand
-
-**Definition**
-
-::
-
- struct nvme_resv_acquire_args {
- __u64 crkey;
- __u64 nrkey;
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_resv_rtype rtype;
- enum nvme_resv_racqa racqa;
- bool iekey;
- };
-
-**Members**
-
-``crkey``
- The current reservation key associated with the host
-
-``nrkey``
- The reservation key to be unregistered from the namespace if
- the action is preempt
-
-``result``
- The command completion result from CQE dword0
-
-``args_size``
- Size of :c:type:`struct nvme_resv_acquire_args <nvme_resv_acquire_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace identifier
-
-``rtype``
- The type of reservation to be create, see :c:type:`enum nvme_resv_rtype <nvme_resv_rtype>`
-
-``racqa``
- The action that is performed by the command, see :c:type:`enum nvme_resv_racqa <nvme_resv_racqa>`
-
-``iekey``
- Set to ignore the existing key
-
-
-
.. c:function:: int nvme_resv_acquire (struct nvme_resv_acquire_args *args)
Send an nvme reservation acquire
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_resv_register_args
-
- Arguments for the NVMe Reservation Register command
-
-**Definition**
-
-::
-
- struct nvme_resv_register_args {
- __u64 crkey;
- __u64 nrkey;
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_resv_rrega rrega;
- enum nvme_resv_cptpl cptpl;
- bool iekey;
- };
-
-**Members**
-
-``crkey``
- The current reservation key associated with the host
-
-``nrkey``
- The new reservation key to be register if action is register or
- replace
-
-``result``
- The command completion result from CQE dword0
-
-``args_size``
- Size of :c:type:`struct nvme_resv_register_args <nvme_resv_register_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace identifier
-
-``rrega``
- The registration action, see :c:type:`enum nvme_resv_rrega <nvme_resv_rrega>`
-
-``cptpl``
- Change persist through power loss, see :c:type:`enum nvme_resv_cptpl <nvme_resv_cptpl>`
-
-``iekey``
- Set to ignore the existing key
-
-
-
.. c:function:: int nvme_resv_register (struct nvme_resv_register_args *args)
Send an nvme reservation register
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_resv_release_args
-
- Arguments for the NVMe Reservation Release Command
-
-**Definition**
-
-::
-
- struct nvme_resv_release_args {
- __u64 crkey;
- __u32 *result;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_resv_rtype rtype;
- enum nvme_resv_rrela rrela;
- bool iekey;
- };
-
-**Members**
-
-``crkey``
- The current reservation key to release
-
-``result``
- The command completion result from CQE dword0
-
-``args_size``
- Size of :c:type:`struct nvme_resv_release_args <nvme_resv_release_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace identifier
-
-``rtype``
- The type of reservation to be create, see :c:type:`enum nvme_resv_rtype <nvme_resv_rtype>`
-
-``rrela``
- Reservation releast action, see :c:type:`enum nvme_resv_rrela <nvme_resv_rrela>`
-
-``iekey``
- Set to ignore the existing key
-
-
-
.. c:function:: int nvme_resv_release (struct nvme_resv_release_args *args)
Send an nvme reservation release
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_resv_report_args
-
- Arguments for the NVMe Reservation Report command
-
-**Definition**
-
-::
-
- struct nvme_resv_report_args {
- __u32 *result;
- struct nvme_resv_status *report;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- __u32 len;
- bool eds;
- };
-
-**Members**
-
-``result``
- The command completion result from CQE dword0
-
-``report``
- The user space destination address to store the reservation
- report
-
-``args_size``
- Size of :c:type:`struct nvme_resv_report_args <nvme_resv_report_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace identifier
-
-``len``
- Number of bytes to request transfered with this command
-
-``eds``
- Request extended Data Structure
-
-
-
.. c:function:: int nvme_resv_report (struct nvme_resv_report_args *args)
Send an nvme reservation report
**Description**
Returns a Reservation Status data structure to memory that describes the
-registration and reservation status of a namespace. See the defintion for
+registration and reservation status of a namespace. See the definition for
the returned structure, :c:type:`struct nvme_reservation_status <nvme_reservation_status>`, for more details.
**Return**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_zns_mgmt_send_args
-
- Arguments for the NVMe ZNS Management Send command
-
-**Definition**
-
-::
-
- struct nvme_zns_mgmt_send_args {
- __u64 slba;
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_zns_send_action zsa;
- __u32 data_len;
- bool select_all;
- __u8 zsaso;
- };
-
-**Members**
-
-``slba``
- Starting logical block address
-
-``result``
- The command completion result from CQE dword0
-
-``data``
- Userspace address of the data
-
-``args_size``
- Size of :c:type:`struct nvme_zns_mgmt_send_args <nvme_zns_mgmt_send_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- timeout in ms
-
-``nsid``
- Namespace ID
-
-``zsa``
- Zone send action
-
-``data_len``
- Length of **data**
-
-``select_all``
- Select all flag
-
-``zsaso``
- Zone Send Action Specific Option
-
-
-
.. c:function:: int nvme_zns_mgmt_send (struct nvme_zns_mgmt_send_args *args)
+ ZNS management send command
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_zns_mgmt_recv_args
-
- Arguments for the NVMe ZNS Management Receive command
-
-**Definition**
-
-::
-
- struct nvme_zns_mgmt_recv_args {
- __u64 slba;
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- enum nvme_zns_recv_action zra;
- __u32 data_len;
- __u16 zrasf;
- bool zras_feat;
- };
-
-**Members**
-
-``slba``
- Starting logical block address
-
-``result``
- The command completion result from CQE dword0
-
-``data``
- Userspace address of the data
-
-``args_size``
- Size of :c:type:`struct nvme_zns_mgmt_recv_args <nvme_zns_mgmt_recv_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- timeout in ms
-
-``nsid``
- Namespace ID
-
-``zra``
- zone receive action
-
-``data_len``
- Length of **data**
-
-``zrasf``
- Zone receive action specific field
-
-``zras_feat``
- Zone receive action specific features
-
-
-
.. c:function:: int nvme_zns_mgmt_recv (struct nvme_zns_mgmt_recv_args *args)
+ ZNS management receive command
**Parameters**
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_zns_append_args
-
- Arguments for the NVMe ZNS Append command
-
-**Definition**
-
-::
-
- struct nvme_zns_append_args {
- __u64 zslba;
- __u64 *result;
- void *data;
- void *metadata;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 nsid;
- __u32 ilbrt;
- __u32 data_len;
- __u32 metadata_len;
- __u16 nlb;
- __u16 control;
- __u16 lbat;
- __u16 lbatm;
- };
-
-**Members**
-
-``zslba``
- Zone start logical block address
-
-``result``
- The command completion result from CQE dword0
-
-``data``
- Userspace address of the data
-
-``metadata``
- Userspace address of the metadata
-
-``args_size``
- Size of :c:type:`struct nvme_zns_append_args <nvme_zns_append_args>`
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``nsid``
- Namespace ID
-
-``ilbrt``
- Initial logical block reference tag
-
-``data_len``
- Length of **data**
-
-``metadata_len``
- Length of **metadata**
-
-``nlb``
- Number of logical blocks
-
-``control``
-
-``lbat``
- Logical block application tag
-
-``lbatm``
- Logical block application tag mask
-
-
-
.. c:function:: int nvme_zns_append (struct nvme_zns_append_args *args)
Append data to a zone
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-
-
-.. c:struct:: nvme_dim_args
-
- Arguments for the Discovery Information Management (DIM) command
-
-**Definition**
-
-::
-
- struct nvme_dim_args {
- __u32 *result;
- void *data;
- int args_size;
- int fd;
- __u32 timeout;
- __u32 data_len;
- __u8 tas;
- };
-
-**Members**
-
-``result``
- Set on completion to the command's CQE DWORD 0 controller response.
-
-``data``
- Pointer to the DIM data
-
-``args_size``
- Length of the structure
-
-``fd``
- File descriptor of nvme device
-
-``timeout``
- Timeout in ms
-
-``data_len``
- Length of **data**
-
-``tas``
- Task field of the Command Dword 10 (cdw10)
-
-
-
.. c:function:: int nvme_dim_send (struct nvme_dim_args *args)
Send a Discovery Information Management (DIM) command
Maximum size to send with each partial transfer
``__u32 offset``
- Starting offset to send with this firmware downlaod
+ Starting offset to send with this firmware download
``void *buf``
Address of buffer containing all or part of the firmware image.
.. c:function:: int nvme_get_ana_log_len (int fd, size_t *analen)
- Retreive size of the current ANA log
+ Retrieve size of the current ANA log
**Parameters**
.. c:function:: int nvme_get_lba_status_log (int fd, bool rae, struct nvme_lba_status_log **log)
- Retreive the LBA Status log page
+ Retrieve the LBA Status log page
**Parameters**
Retain asynchronous events
``struct nvme_lba_status_log **log``
- On success, set to the value of the allocated and retreived log.
+ On success, set to the value of the allocated and retrieved log.
**Return**
--- /dev/null
+.. _mi.h - NVMe Management Interface library (libnvme-mi) definitions.:
+
+**mi.h - NVMe Management Interface library (libnvme-mi) definitions.**
+
+
+These provide an abstraction for the MI messaging between controllers
+and a host, typically over an MCTP-over-i2c link to a NVMe device, used
+as part of the out-of-band management of a system.
+
+We have a few data structures define here to reflect the topology
+of a MI connection with an NVMe subsystem:
+
+ - :c:type:`nvme_mi_ep_t`: an MI endpoint - our mechanism of communication with a
+ NVMe subsystem. For MCTP, an endpoint will be the component that
+ holds the MCTP address (EID), and receives our request message.
+
+ endpoints are defined in the NVMe-MI spec, and are specific to the MI
+ interface.
+
+ Each endpoint will provide access to one or more of:
+
+ - :c:type:`nvme_mi_ctrl_t`: a NVMe controller, as defined by the NVMe base spec.
+ The controllers are responsible for processing any NVMe standard
+ commands (eg, the Admin command set). An endpoint (:c:type:`nvme_mi_ep_t`)
+ may provide access to multiple controllers - so each of the controller-
+ type commands will require a :c:type:`nvme_mi_ctrl_t` to be specified, rather than
+ an endpoint
+
+A couple of conventions with the libnvme-mi API:
+
+ - All types and functions have the nvme_mi prefix, to distinguish from
+ the libnvme core.
+
+ - We currently support either MI commands and Admin commands. The
+ former adds a _mi prefix, the latter an _admin prefix. [This does
+ result in the MI functions having a double _mi, like
+ :c:type:`nvme_mi_mi_subsystem_health_status_poll`, which is apparently amusing
+ for our German-speaking readers]
+
+For return values: unless specified in the per-function documentation,
+all functions:
+
+ - return 0 on success
+
+ - return -1, with errno set, for errors communicating with the MI device,
+ either in request or response data
+
+ - return >1 on MI status errors. This value is the 8-bit MI status
+ value, represented by :c:type:`enum nvme_mi_resp_status <nvme_mi_resp_status>`. Note that the
+ status values may be vendor-defined above 0xe0.
+
+For the second case, we have a few conventions for errno values:
+
+ - EPROTO: response data violated the MI protocol, and libnvme cannot
+ validly interpret the response
+
+ - EIO: Other I/O error communicating with device (eg., valid but
+ unexpected response data)
+
+ - EINVAL: invalid input arguments for a command
+
+In line with the core NVMe API, the Admin command functions take an
+`_args` structure to provide the command-specific parameters. However,
+for the MI interface, the fd and timeout members of these _args structs
+are ignored.
+
+References to the specifications here will either to be the NVM Express
+Management Interface ("NVMe-MI") or the NVM Express Base specification
+("NVMe"). At the time of writing, the versions we're referencing here
+are:
+ - NVMe-MI 1.2b
+ - NVMe 2.0b
+with a couple of accommodations for older spec types, particularly NVMe-MI
+1.1, where possible.
+
+.. c:macro:: NVME_MI_MSGTYPE_NVME
+
+``NVME_MI_MSGTYPE_NVME ()``
+
+ MCTP message type for NVMe-MI messages.
+
+**Parameters**
+
+**Description**
+
+
+This is defined by MCTP, but is referenced as part of the NVMe-MI message
+spec. This is the MCTP NVMe message type (0x4), with the message-integrity
+bit (0x80) set.
+
+
+
+
+.. c:enum:: nvme_mi_message_type
+
+ NVMe-MI message type field.
+
+**Constants**
+
+``NVME_MI_MT_CONTROL``
+ NVME-MI Control Primitive
+
+``NVME_MI_MT_MI``
+ NVMe-MI command
+
+``NVME_MI_MT_ADMIN``
+ NVMe Admin command
+
+``NVME_MI_MT_PCIE``
+ PCIe command
+
+**Description**
+
+Used as byte 1 of both request and response messages (NMIMT bits of NMP
+byte). Not to be confused with the MCTP message type in byte 0.
+
+
+
+
+.. c:enum:: nvme_mi_ror
+
+ Request or response field.
+
+**Constants**
+
+``NVME_MI_ROR_REQ``
+ request message
+
+``NVME_MI_ROR_RSP``
+ response message
+
+
+
+
+.. c:enum:: nvme_mi_resp_status
+
+ values for the response status field
+
+**Constants**
+
+``NVME_MI_RESP_SUCCESS``
+ success
+
+``NVME_MI_RESP_MPR``
+ More Processing Required
+
+``NVME_MI_RESP_INTERNAL_ERR``
+ Internal Error
+
+``NVME_MI_RESP_INVALID_OPCODE``
+ Invalid command opcode
+
+``NVME_MI_RESP_INVALID_PARAM``
+ Invalid command parameter
+
+``NVME_MI_RESP_INVALID_CMD_SIZE``
+ Invalid command size
+
+``NVME_MI_RESP_INVALID_INPUT_SIZE``
+ Invalid command input data size
+
+``NVME_MI_RESP_ACCESS_DENIED``
+ Access Denied
+
+``NVME_MI_RESP_VPD_UPDATES_EXCEEDED``
+ More VPD updates than allowed
+
+``NVME_MI_RESP_PCIE_INACCESSIBLE``
+ PCIe functionality currently unavailable
+
+``NVME_MI_RESP_MEB_SANITIZED``
+ MEB has been cleared due to sanitize
+
+``NVME_MI_RESP_ENC_SERV_FAILURE``
+ Enclosure services process failed
+
+``NVME_MI_RESP_ENC_SERV_XFER_FAILURE``
+ Transfer with enclosure services failed
+
+``NVME_MI_RESP_ENC_FAILURE``
+ Unreoverable enclosure failure
+
+``NVME_MI_RESP_ENC_XFER_REFUSED``
+ Enclosure services transfer refused
+
+``NVME_MI_RESP_ENC_FUNC_UNSUP``
+ Unsupported enclosure services function
+
+``NVME_MI_RESP_ENC_SERV_UNAVAIL``
+ Enclosure services unavailable
+
+``NVME_MI_RESP_ENC_DEGRADED``
+ Noncritical failure detected by enc. services
+
+``NVME_MI_RESP_SANITIZE_IN_PROGRESS``
+ Command prohibited during sanitize
+
+
+
+
+.. c:struct:: nvme_mi_msg_hdr
+
+ General MI message header.
+
+**Definition**
+
+::
+
+ struct nvme_mi_msg_hdr {
+ __u8 type;
+ __u8 nmp;
+ __u8 meb;
+ __u8 rsvd0;
+ };
+
+**Members**
+
+``type``
+ MCTP message type, will always be NVME_MI_MSGTYPE_NVME
+
+``nmp``
+ NVMe-MI message parameters (including MI message type)
+
+``meb``
+ Management Endpoint Buffer flag; unused for libnvme-mi implementation
+
+``rsvd0``
+ currently reserved
+
+
+**Description**
+
+Wire format shared by both request and response messages, per NVMe-MI
+section 3.1. This is used for all message types, MI and Admin.
+
+
+
+
+.. c:struct:: nvme_mi_msg_resp
+
+ Generic response type.
+
+**Definition**
+
+::
+
+ struct nvme_mi_msg_resp {
+ struct nvme_mi_msg_hdr hdr;
+ __u8 status;
+ __u8 rsvd0[3];
+ };
+
+**Members**
+
+``hdr``
+ the general request/response message header
+
+``status``
+ response status value (see :c:type:`enum nvme_mi_resp_status <nvme_mi_resp_status>`)
+
+``rsvd0``
+ reserved data, may be defined by specific response
+
+
+**Description**
+
+Every response will start with one of these; command-specific responses
+will define parts of the reserved data, and may add further fields.
+
+
+
+
+.. c:enum:: nvme_mi_mi_opcode
+
+ Operation code for supported NVMe-MI commands.
+
+**Constants**
+
+``nvme_mi_mi_opcode_mi_data_read``
+ Read NVMe-MI Data Structure
+
+``nvme_mi_mi_opcode_subsys_health_status_poll``
+ Subsystem Health Status Poll
+
+``nvme_mi_mi_opcode_configuration_set``
+ MI Configuration Set
+
+``nvme_mi_mi_opcode_configuration_get``
+ MI Configuration Get
+
+
+
+
+.. c:struct:: nvme_mi_mi_req_hdr
+
+ MI request message header.
+
+**Definition**
+
+::
+
+ struct nvme_mi_mi_req_hdr {
+ struct nvme_mi_msg_hdr hdr;
+ __u8 opcode;
+ __u8 rsvd0[3];
+ __le32 cdw0, cdw1;
+ };
+
+**Members**
+
+``hdr``
+ generic MI message header
+
+``opcode``
+ opcode (OPC) for the specific MI command
+
+``rsvd0``
+ reserved bytes
+
+``cdw0``
+ Management Request Doubleword 0 - command specific usage
+
+``cdw1``
+ Management Request Doubleword 1 - command specific usage
+
+
+**Description**
+
+Wire format for MI request message headers, defined in section 5 of NVMe-MI.
+
+
+
+
+.. c:struct:: nvme_mi_mi_resp_hdr
+
+ MI response message header.
+
+**Definition**
+
+::
+
+ struct nvme_mi_mi_resp_hdr {
+ struct nvme_mi_msg_hdr hdr;
+ __u8 status;
+ __u8 nmresp[3];
+ };
+
+**Members**
+
+``hdr``
+ generic MI message header
+
+``status``
+ generic response status from command; non-zero on failure.
+
+``nmresp``
+ NVMe Management Response: command-type-specific response data
+
+
+**Description**
+
+Wire format for MI response message header, defined in section 5 of NVMe-MI.
+
+
+
+
+.. c:enum:: nvme_mi_dtyp
+
+ Data Structure Type field.
+
+**Constants**
+
+``nvme_mi_dtyp_subsys_info``
+ NVM Subsystem Information
+
+``nvme_mi_dtyp_port_info``
+ Port information
+
+``nvme_mi_dtyp_ctrl_list``
+ Controller List
+
+``nvme_mi_dtyp_ctrl_info``
+ Controller Information
+
+``nvme_mi_dtyp_opt_cmd_support``
+ Optionally Supported Command List
+
+``nvme_mi_dtyp_meb_support``
+ Management Endpoint Buffer Command Support List
+
+**Description**
+
+Data Structure Type field for Read NVMe-MI Data Structure command, used to
+indicate the particular structure to query from the endpoint.
+
+
+
+
+.. c:enum:: nvme_mi_config_id
+
+ NVMe-MI Configuration identifier.
+
+**Constants**
+
+``NVME_MI_CONFIG_SMBUS_FREQ``
+ Current SMBus/I2C frequency
+
+``NVME_MI_CONFIG_HEALTH_STATUS_CHANGE``
+ Health Status change - used to clear
+ health status bits in CCS bits of
+ status poll. Only for Set ops.
+
+``NVME_MI_CONFIG_MCTP_MTU``
+ MCTP maximum transmission unit size of port
+ specified in dw 0
+
+**Description**
+
+Configuration parameters for the MI Get/Set Configuration commands.
+
+See :c:type:`nvme_mi_mi_config_get`() and :c:type:`nvme_mi_config_set`().
+
+
+
+
+.. c:enum:: nvme_mi_config_smbus_freq
+
+ SMBus/I2C frequency values
+
+**Constants**
+
+``NVME_MI_CONFIG_SMBUS_FREQ_100kHz``
+ 100kHz
+
+``NVME_MI_CONFIG_SMBUS_FREQ_400kHz``
+ 400kHz
+
+``NVME_MI_CONFIG_SMBUS_FREQ_1MHz``
+ 1MHz
+
+**Description**
+
+Values used in the SMBus Frequency device configuration. See
+:c:type:`nvme_mi_mi_config_get_smbus_freq`() and :c:type:`nvme_mi_mi_config_set_smbus_freq`().
+
+
+
+
+.. c:struct:: nvme_mi_admin_req_hdr
+
+ Admin command request header.
+
+**Definition**
+
+::
+
+ struct nvme_mi_admin_req_hdr {
+ struct nvme_mi_msg_hdr hdr;
+ __u8 opcode;
+ __u8 flags;
+ __le16 ctrl_id;
+ __le32 cdw1, cdw2, cdw3, cdw4, cdw5;
+ __le32 doff;
+ __le32 dlen;
+ __le32 rsvd0, rsvd1;
+ __le32 cdw10, cdw11, cdw12, cdw13, cdw14, cdw15;
+ };
+
+**Members**
+
+``hdr``
+ Generic MI message header
+
+``opcode``
+ Admin command opcode (using enum nvme_admin_opcode)
+
+``flags``
+ Command Flags, indicating dlen and doff validity; Only defined in
+ NVMe-MI version 1.1, no fields defined in 1.2 (where the dlen/doff
+ are always considered valid).
+
+``ctrl_id``
+ Controller ID target of command
+
+``cdw1``
+ Submission Queue Entry doubleword 1
+
+``cdw2``
+ Submission Queue Entry doubleword 2
+
+``cdw3``
+ Submission Queue Entry doubleword 3
+
+``cdw4``
+ Submission Queue Entry doubleword 4
+
+``cdw5``
+ Submission Queue Entry doubleword 5
+
+``doff``
+ Offset of data to return from command
+
+``dlen``
+ Length of sent/returned data
+
+``rsvd0``
+ Reserved
+
+``rsvd1``
+ Reserved
+
+``cdw10``
+ Submission Queue Entry doubleword 10
+
+``cdw11``
+ Submission Queue Entry doubleword 11
+
+``cdw12``
+ Submission Queue Entry doubleword 12
+
+``cdw13``
+ Submission Queue Entry doubleword 13
+
+``cdw14``
+ Submission Queue Entry doubleword 14
+
+``cdw15``
+ Submission Queue Entry doubleword 15
+
+
+**Description**
+
+Wire format for Admin command message headers, defined in section 6 of
+NVMe-MI.
+
+
+
+
+.. c:struct:: nvme_mi_admin_resp_hdr
+
+ Admin command response header.
+
+**Definition**
+
+::
+
+ struct nvme_mi_admin_resp_hdr {
+ struct nvme_mi_msg_hdr hdr;
+ __u8 status;
+ __u8 rsvd0[3];
+ __le32 cdw0, cdw1, cdw3;
+ };
+
+**Members**
+
+``hdr``
+ Generic MI message header
+
+``status``
+ Generic response code, non-zero on failure
+
+``rsvd0``
+ Reserved
+
+``cdw0``
+ Completion Queue Entry doubleword 0
+
+``cdw1``
+ Completion Queue Entry doubleword 1
+
+``cdw3``
+ Completion Queue Entry doubleword 3
+
+
+**Description**
+
+This is the generic response format with the three doublewords of completion
+queue data, plus optional response data.
+
+
+.. c:function:: nvme_root_t nvme_mi_create_root (FILE *fp, int log_level)
+
+ Create top-level MI (root) handle.
+
+**Parameters**
+
+``FILE *fp``
+ File descriptor for logging messages
+
+``int log_level``
+ Logging level to use
+
+**Description**
+
+Create the top-level (library) handle for creating subsequent endpoint
+objects. Similar to nvme_create_root(), but we provide this to allow linking
+without the core libnvme.
+
+See :c:type:`nvme_create_root`.
+
+**Return**
+
+new root object, or NULL on failure.
+
+
+.. c:function:: void nvme_mi_free_root (nvme_root_t root)
+
+ Free root object.
+
+**Parameters**
+
+``nvme_root_t root``
+ root to free
+
+
+
+
+.. c:type:: nvme_mi_ep_t
+
+ MI Endpoint object.
+
+**Description**
+
+
+Represents our communication endpoint on the remote MI-capable device.
+To be used for direct MI commands for the endpoint (through the
+nvme_mi_mi_* functions(), or to communicate with individual controllers
+(see :c:type:`nvme_mi_init_ctrl`).
+
+Endpoints are created through a transport-specific constructor; currently
+only MCTP-connected endpoints are supported, through :c:type:`nvme_mi_open_mctp`.
+Subsequent operations on the endpoint (and related controllers) are
+transport-independent.
+
+
+.. c:function:: nvme_mi_ep_t nvme_mi_first_endpoint (nvme_root_t m)
+
+ Start endpoint iterator
+
+**Parameters**
+
+``nvme_root_t m``
+ :c:type:`nvme_root_t` object
+
+**Return**
+
+first MI endpoint object under this root, or NULL if no endpoints
+ are present.
+
+**Description**
+
+See: :c:type:`nvme_mi_next_endpoint`, :c:type:`nvme_mi_for_each_endpoint`
+
+
+.. c:function:: nvme_mi_ep_t nvme_mi_next_endpoint (nvme_root_t m, nvme_mi_ep_t e)
+
+ Continue endpoint iterator
+
+**Parameters**
+
+``nvme_root_t m``
+ :c:type:`nvme_root_t` object
+
+``nvme_mi_ep_t e``
+ :c:type:`nvme_mi_ep_t` current position of iterator
+
+**Return**
+
+next endpoint MI endpoint object after **e** under this root, or NULL
+ if no further endpoints are present.
+
+**Description**
+
+See: :c:type:`nvme_mi_first_endpoint`, :c:type:`nvme_mi_for_each_endpoint`
+
+
+.. c:macro:: nvme_mi_for_each_endpoint
+
+``nvme_mi_for_each_endpoint (m, e)``
+
+ Iterator for NVMe-MI endpoints.
+
+**Parameters**
+
+``m``
+ :c:type:`nvme_root_t` containing endpoints
+
+``e``
+ :c:type:`nvme_mi_ep_t` object, set on each iteration
+
+
+.. c:macro:: nvme_mi_for_each_endpoint_safe
+
+``nvme_mi_for_each_endpoint_safe (m, e, _e)``
+
+ Iterator for NVMe-MI endpoints, allowing deletion during traversal
+
+**Parameters**
+
+``m``
+ :c:type:`nvme_root_t` containing endpoints
+
+``e``
+ :c:type:`nvme_mi_ep_t` object, set on each iteration
+
+``_e``
+ :c:type:`nvme_mi_ep_t` object used as temporary storage
+
+
+
+
+.. c:type:: nvme_mi_ctrl_t
+
+ NVMe-MI Controller object.
+
+**Description**
+
+
+Provides NVMe command functionality, through the MI interface.
+
+
+.. c:function:: nvme_mi_ctrl_t nvme_mi_first_ctrl (nvme_mi_ep_t ep)
+
+ Start controller iterator
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ :c:type:`nvme_mi_ep_t` object
+
+**Return**
+
+first MI controller object under this root, or NULL if no controllers
+ are present.
+
+**Description**
+
+See: :c:type:`nvme_mi_next_ctrl`, :c:type:`nvme_mi_for_each_ctrl`
+
+
+.. c:function:: nvme_mi_ctrl_t nvme_mi_next_ctrl (nvme_mi_ep_t ep, nvme_mi_ctrl_t c)
+
+ Continue ctrl iterator
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ :c:type:`nvme_mi_ep_t` object
+
+``nvme_mi_ctrl_t c``
+ :c:type:`nvme_mi_ctrl_t` current position of iterator
+
+**Return**
+
+next MI controller object after **c** under this endpoint, or NULL
+ if no further controllers are present.
+
+**Description**
+
+See: :c:type:`nvme_mi_first_ctrl`, :c:type:`nvme_mi_for_each_ctrl`
+
+
+.. c:macro:: nvme_mi_for_each_ctrl
+
+``nvme_mi_for_each_ctrl (ep, c)``
+
+ Iterator for NVMe-MI controllers.
+
+**Parameters**
+
+``ep``
+ :c:type:`nvme_mi_ep_t` containing endpoints
+
+``c``
+ :c:type:`nvme_mi_ctrl_t` object, set on each iteration
+
+**Description**
+
+Allows iteration of the list of controllers behind an endpoint. Unless the
+controllers have already been created explicitly, you'll probably want to
+call :c:type:`nvme_mi_scan_ep`() to scan for the controllers first.
+
+See: :c:type:`nvme_mi_scan_ep`()
+
+
+.. c:macro:: nvme_mi_for_each_ctrl_safe
+
+``nvme_mi_for_each_ctrl_safe (ep, c, _c)``
+
+ Iterator for NVMe-MI controllers, allowing deletion during traversal
+
+**Parameters**
+
+``ep``
+ :c:type:`nvme_mi_ep_t` containing controllers
+
+``c``
+ :c:type:`nvme_mi_ctrl_t` object, set on each iteration
+
+``_c``
+ :c:type:`nvme_mi_ctrl_t` object used as temporary storage
+
+**Description**
+
+Allows iteration of the list of controllers behind an endpoint, safe against
+deletion during iteration. Unless the controllers have already been created
+explicitly (or you're just iterating to destroy controllers) you'll probably
+want to call :c:type:`nvme_mi_scan_ep`() to scan for the controllers first.
+
+See: :c:type:`nvme_mi_scan_ep`()
+
+
+.. c:function:: nvme_mi_ep_t nvme_mi_open_mctp (nvme_root_t root, unsigned int netid, uint8_t eid)
+
+ Create an endpoint using a MCTP connection.
+
+**Parameters**
+
+``nvme_root_t root``
+ root object to create under
+
+``unsigned int netid``
+ MCTP network ID on this system
+
+``uint8_t eid``
+ MCTP endpoint ID
+
+**Description**
+
+Transport-specific endpoint initialization for MI-connected endpoints. Once
+an endpoint is created, the rest of the API is transport-independent.
+
+See :c:type:`nvme_mi_close`
+
+**Return**
+
+New endpoint object for **netid** & **eid**, or NULL on failure.
+
+
+.. c:function:: void nvme_mi_close (nvme_mi_ep_t ep)
+
+ Close an endpoint connection and release resources, including controller objects.
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ Endpoint object to close
+
+
+.. c:function:: nvme_root_t nvme_mi_scan_mctp (void)
+
+ look for MCTP-connected NVMe-MI endpoints.
+
+**Parameters**
+
+``void``
+ no arguments
+
+**Description**
+
+This function queries the system MCTP daemon ("mctpd") over
+D-Bus, to find MCTP endpoints that report support for NVMe-MI over MCTP.
+
+This requires libvnme-mi to be compiled with D-Bus support; if not, this
+will return NULL.
+
+**Return**
+
+A **nvme_root_t** populated with a set of MCTP-connected endpoints,
+ or NULL on failure
+
+
+.. c:function:: int nvme_mi_scan_ep (nvme_mi_ep_t ep, bool force_rescan)
+
+ query an endpoint for its NVMe controllers.
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ Endpoint to scan
+
+``bool force_rescan``
+ close existing controllers and rescan
+
+**Description**
+
+This function queries an MI endpoint for the controllers available, by
+performing an MI Read MI Data Structure command (requesting the
+controller list). The controllers are stored in the endpoint's internal
+list, and can be iterated with nvme_mi_for_each_ctrl.
+
+This will only scan the endpoint once, unless **force_rescan** is set. If
+so, all existing controller objects will be freed - the caller must not
+hold a reference to those across this call.
+
+See: :c:type:`nvme_mi_for_each_ctrl`
+
+**Return**
+
+0 on success, non-zero on failure
+
+
+.. c:function:: nvme_mi_ctrl_t nvme_mi_init_ctrl (nvme_mi_ep_t ep, __u16 ctrl_id)
+
+ initialise a NVMe controller.
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ Endpoint to create under
+
+``__u16 ctrl_id``
+ ID of controller to initialize.
+
+**Description**
+
+Create a connection to a controller behind the endpoint specified in **ep**.
+Controller IDs may be queried from the endpoint through
+:c:type:`nvme_mi_mi_read_mi_data_ctrl_list`.
+
+See :c:type:`nvme_mi_close_ctrl`
+
+**Return**
+
+New controller object, or NULL on failure.
+
+
+.. c:function:: void nvme_mi_close_ctrl (nvme_mi_ctrl_t ctrl)
+
+ free a controller
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ controller to free
+
+
+.. c:function:: char * nvme_mi_endpoint_desc (nvme_mi_ep_t ep)
+
+ Get a string describing a MI endpoint.
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint to describe
+
+**Description**
+
+Generates a human-readable string describing the endpoint, with possibly
+transport-specific data. The string is allocated during the call, and the
+caller is responsible for free()-ing the string.
+
+**Return**
+
+a newly-allocated string containing the endpoint description, or
+ NULL on failure.
+
+
+.. c:function:: int nvme_mi_mi_read_mi_data_subsys (nvme_mi_ep_t ep, struct nvme_mi_read_nvm_ss_info *s)
+
+ Perform a Read MI Data Structure command, retrieving subsystem data.
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``struct nvme_mi_read_nvm_ss_info *s``
+ subsystem information to populate
+
+**Description**
+
+Retrieves the Subsystem information - number of external ports and
+NVMe version information. See :c:type:`struct nvme_mi_read_nvm_ss_info <nvme_mi_read_nvm_ss_info>`.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_read_mi_data_port (nvme_mi_ep_t ep, __u8 portid, struct nvme_mi_read_port_info *p)
+
+ Perform a Read MI Data Structure command, retrieving port data.
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``__u8 portid``
+ id of port data to retrieve
+
+``struct nvme_mi_read_port_info *p``
+ port information to populate
+
+**Description**
+
+Retrieves the Port information, for the specified port ID. The subsystem
+data (from :c:type:`nvme_mi_mi_read_mi_data_subsys`) nmp field contains the allowed
+range of port IDs.
+
+See :c:type:`struct nvme_mi_read_port_info <nvme_mi_read_port_info>`.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_read_mi_data_ctrl_list (nvme_mi_ep_t ep, __u8 start_ctrlid, struct nvme_ctrl_list *list)
+
+ Perform a Read MI Data Structure command, retrieving the list of attached controllers.
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``__u8 start_ctrlid``
+ starting controller ID
+
+``struct nvme_ctrl_list *list``
+ controller list to populate
+
+**Description**
+
+Retrieves the list of attached controllers, with IDs greater than or
+equal to **start_ctrlid**.
+
+See :c:type:`struct nvme_ctrl_list <nvme_ctrl_list>`.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_read_mi_data_ctrl (nvme_mi_ep_t ep, __u16 ctrl_id, struct nvme_mi_read_ctrl_info *ctrl)
+
+ Perform a Read MI Data Structure command, retrieving controller information
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``__u16 ctrl_id``
+ ID of controller to query
+
+``struct nvme_mi_read_ctrl_info *ctrl``
+ controller data to populate
+
+**Description**
+
+Retrieves the Controller Information Data Structure for the attached
+controller with ID **ctrlid**.
+
+See :c:type:`struct nvme_mi_read_ctrl_info <nvme_mi_read_ctrl_info>`.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_subsystem_health_status_poll (nvme_mi_ep_t ep, bool clear, struct nvme_mi_nvm_ss_health_status *nshds)
+
+ Read the Subsystem Health Data Structure from the NVM subsystem
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``bool clear``
+ flag to clear the Composite Controller Status state
+
+``struct nvme_mi_nvm_ss_health_status *nshds``
+ subsystem health status data to populate
+
+**Description**
+
+Retrieves the Subsystem Health Data Structure into **nshds**. If **clear** is
+set, requests that the Composite Controller Status bits are cleared after
+the read. See NVMe-MI section 5.6 for details on the CCS bits.
+
+See :c:type:`struct nvme_mi_nvm_ss_health_status <nvme_mi_nvm_ss_health_status>`.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_config_get (nvme_mi_ep_t ep, __u32 dw0, __u32 dw1, __u32 *nmresp)
+
+ query a configuration parameter
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``__u32 dw0``
+ management doubleword 0, containing configuration identifier, plus
+ config-specific fields
+
+``__u32 dw1``
+ management doubleword 0, config-specific.
+
+``__u32 *nmresp``
+ set to queried configuration data in NMRESP field of response.
+
+**Description**
+
+Performs a MI Configuration Get command, with the configuration identifier
+as the LSB of **dw0**. Other **dw0** and **dw1** data is configuration-identifier
+specific.
+
+On a successful Configuration Get, the **nmresp** pointer will be populated with
+the bytes from the 3-byte NMRESP field, converted to native endian.
+
+See :c:type:`enum nvme_mi_config_id <nvme_mi_config_id>` for identifiers.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_config_set (nvme_mi_ep_t ep, __u32 dw0, __u32 dw1)
+
+ set a configuration parameter
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``__u32 dw0``
+ management doubleword 0, containing configuration identifier, plus
+ config-specific fields
+
+``__u32 dw1``
+ management doubleword 0, config-specific.
+
+**Description**
+
+Performs a MI Configuration Set command, with the command as the LSB of
+**dw0**. Other **dw0** and **dw1** data is configuration-identifier specific.
+
+See :c:type:`enum nvme_mi_config_id <nvme_mi_config_id>` for identifiers.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_config_get_smbus_freq (nvme_mi_ep_t ep, __u8 port, enum nvme_mi_config_smbus_freq *freq)
+
+ get configuration: SMBus port frequency
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``__u8 port``
+ port ID to query
+
+``enum nvme_mi_config_smbus_freq *freq``
+ output value for current frequency configuration
+
+**Description**
+
+Performs a MI Configuration Get, to query the current SMBus frequency of
+the port specified in **port**. On success, populates **freq** with the port
+frequency
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_config_set_smbus_freq (nvme_mi_ep_t ep, __u8 port, enum nvme_mi_config_smbus_freq freq)
+
+ set configuration: SMBus port frequency
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``__u8 port``
+ port ID to set
+
+``enum nvme_mi_config_smbus_freq freq``
+ new frequency configuration
+
+**Description**
+
+Performs a MI Configuration Set, to update the current SMBus frequency of
+the port specified in **port**.
+
+See :c:type:`struct nvme_mi_read_port_info <nvme_mi_read_port_info>` for the maximum supported SMBus frequency
+for the port.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_config_set_health_status_change (nvme_mi_ep_t ep, __u32 mask)
+
+ clear CCS bits in health status
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``__u32 mask``
+ bitmask to clear
+
+**Description**
+
+Performs a MI Configuration Set, to update the current health status poll
+values of the Composite Controller Status bits. Bits set in **mask** will
+be cleared from future health status poll data, and may be re-triggered by
+a future health change event.
+
+See :c:type:`nvme_mi_mi_subsystem_health_status_poll`(), :c:type:`enum nvme_mi_ccs <nvme_mi_ccs>` for
+values in **mask**.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_config_get_mctp_mtu (nvme_mi_ep_t ep, __u8 port, __u16 *mtu)
+
+ get configuration: MCTP MTU
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``__u8 port``
+ port ID to query
+
+``__u16 *mtu``
+ output value for current MCTP MTU configuration
+
+**Description**
+
+Performs a MI Configuration Get, to query the current MCTP Maximum
+Transmission Unit size (MTU) of the port specified in **port**. On success,
+populates **mtu** with the MTU.
+
+The default reset value is 64, corresponding to the MCTP baseline MTU.
+
+Some controllers may also use this as the maximum receive unit size, and
+may not accept MCTP messages larger than the configured MTU.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_mi_config_set_mctp_mtu (nvme_mi_ep_t ep, __u8 port, __u16 mtu)
+
+ set configuration: MCTP MTU
+
+**Parameters**
+
+``nvme_mi_ep_t ep``
+ endpoint for MI communication
+
+``__u8 port``
+ port ID to set
+
+``__u16 mtu``
+ new MTU configuration
+
+**Description**
+
+Performs a MI Configuration Set, to update the current MCTP MTU value for
+the port specified in **port**.
+
+Some controllers may also use this as the maximum receive unit size, and
+may not accept MCTP messages larger than the configured MTU. When setting
+this value, you will likely need to change the MTU of the local MCTP
+interface(s) to match.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. c:function:: int nvme_mi_admin_xfer (nvme_mi_ctrl_t ctrl, struct nvme_mi_admin_req_hdr *admin_req, size_t req_data_size, struct nvme_mi_admin_resp_hdr *admin_resp, off_t resp_data_offset, size_t *resp_data_size)
+
+ Raw admin transfer interface.
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ controller to send the admin command to
+
+``struct nvme_mi_admin_req_hdr *admin_req``
+ request data
+
+``size_t req_data_size``
+ size of request data payload
+
+``struct nvme_mi_admin_resp_hdr *admin_resp``
+ buffer for response data
+
+``off_t resp_data_offset``
+ offset into request data to retrieve from controller
+
+``size_t *resp_data_size``
+ size of response data buffer, updated to received size
+
+**Description**
+
+Performs an arbitrary NVMe Admin command, using the provided request data,
+in **admin_req**. The size of the request data *payload* is specified in
+**req_data_size** - this does not include the standard header length (so a
+header-only request would have a size of 0).
+
+On success, response data is stored in **admin_resp**, which has an optional
+appended payload buffer of **resp_data_size** bytes. The actual payload
+transferred will be stored in **resp_data_size**. These sizes do not include
+the Admin request header, so 0 represents no payload.
+
+As with all Admin commands, we can request partial data from the Admin
+Response payload, offset by **resp_data_offset**.
+
+See: :c:type:`struct nvme_mi_admin_req_hdr <nvme_mi_admin_req_hdr>` and :c:type:`struct nvme_mi_admin_resp_hdr <nvme_mi_admin_resp_hdr>`.
+
+**Return**
+
+0 on success, non-zero on failure.
+
+
+.. 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.
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ Controller to process identify command
+
+``struct nvme_identify_args *args``
+ Identify command arguments
+
+``off_t offset``
+ offset of identify data to retrieve from response
+
+``size_t size``
+ size of identify data to return
+
+**Description**
+
+Perform an Identify command, using the Identify command parameters in **args**.
+The **offset** and **size** arguments allow the caller to retrieve part of
+the identify response. See NVMe-MI section 6.2 for the semantics (and some
+handy diagrams) of the offset & size parameters.
+
+Will return an error if the length of the response data (from the controller)
+did not match **size**.
+
+Unless you're performing a vendor-unique identify command, You'll probably
+want to use one of the identify helpers (nvme_mi_admin_identify,
+nvme_mi_admin_identify_cns_nsid, or nvme_mi_admin_identify_<type>) instead
+of this. If the type of your identify command is standardized but not
+yet supported by libnvme-mi, please contact the maintainers.
+
+See: :c:type:`struct nvme_identify_args <nvme_identify_args>`
+
+**Return**
+
+0 on success, non-zero on failure
+
+
+.. c:function:: int nvme_mi_admin_identify (nvme_mi_ctrl_t ctrl, struct nvme_identify_args *args)
+
+ Perform an Admin identify command.
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ Controller to process identify command
+
+``struct nvme_identify_args *args``
+ Identify command arguments
+
+**Description**
+
+Perform an Identify command, using the Identify command parameters in **args**.
+Stores the identify data in ->data, and (if set) the result from cdw0
+into args->result.
+
+Will return an error if the length of the response data (from the
+controller) is not a full :c:type:`NVME_IDENTIFY_DATA_SIZE`.
+
+See: :c:type:`struct nvme_identify_args <nvme_identify_args>`
+
+**Return**
+
+0 on success, non-zero on failure
+
+
+.. c:function:: int nvme_mi_admin_identify_cns_nsid (nvme_mi_ctrl_t ctrl, enum nvme_identify_cns cns, __u32 nsid, void *data)
+
+ Perform an Admin identify command using specific CNS/NSID parameters.
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ Controller to process identify command
+
+``enum nvme_identify_cns cns``
+ Controller or Namespace Structure, specifying identified object
+
+``__u32 nsid``
+ namespace ID
+
+``void *data``
+ buffer for identify data response
+
+**Description**
+
+Perform an Identify command, using the CNS specifier **cns**, and the
+namespace ID **nsid** if required by the CNS type.
+
+Stores the identify data in **data**, which is expected to be a buffer of
+:c:type:`NVME_IDENTIFY_DATA_SIZE` bytes.
+
+Will return an error if the length of the response data (from the
+controller) is not a full :c:type:`NVME_IDENTIFY_DATA_SIZE`.
+
+**Return**
+
+0 on success, non-zero on failure
+
+
+.. c:function:: int nvme_mi_admin_identify_ctrl (nvme_mi_ctrl_t ctrl, struct nvme_id_ctrl *id)
+
+ Perform an Admin identify for a controller
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ Controller to process identify command
+
+``struct nvme_id_ctrl *id``
+ Controller identify data to populate
+
+**Description**
+
+Perform an Identify command, for the controller specified by **ctrl**,
+writing identify data to **id**.
+
+Will return an error if the length of the response data (from the
+controller) is not a full :c:type:`NVME_IDENTIFY_DATA_SIZE`, so **id** will be
+fully populated on success.
+
+See: :c:type:`struct nvme_id_ctrl <nvme_id_ctrl>`
+
+**Return**
+
+0 on success, non-zero on failure
+
+
+.. c:function:: int nvme_mi_admin_identify_ctrl_list (nvme_mi_ctrl_t ctrl, __u16 cntid, struct nvme_ctrl_list *list)
+
+ Perform an Admin identify for a controller list.
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ Controller to process identify command
+
+``__u16 cntid``
+ Controller ID to specify list start
+
+``struct nvme_ctrl_list *list``
+ List data to populate
+
+**Description**
+
+Perform an Identify command, for the controller list starting with
+IDs greater than or equal to **cntid**.
+
+Will return an error if the length of the response data (from the
+controller) is not a full :c:type:`NVME_IDENTIFY_DATA_SIZE`, so **id** will be
+fully populated on success.
+
+See: :c:type:`struct nvme_ctrl_list <nvme_ctrl_list>`
+
+**Return**
+
+0 on success, non-zero on failure
+
+
+.. c:function:: int nvme_mi_admin_get_log_page (nvme_mi_ctrl_t ctrl, struct nvme_get_log_args *args)
+
+ Retrieve log page data from controller
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ Controller to query
+
+``struct nvme_get_log_args *args``
+ Get Log Page command arguments
+
+**Description**
+
+Performs a Get Log Page Admin command as specified by **args**. Response data
+is stored in **args->data**, which should be a buffer of **args->data_len** bytes.
+Resulting data length is stored in **args->data_len** on successful
+command completion.
+
+This request may be implemented as multiple log page commands, in order
+to fit within MI message-size limits.
+
+See: :c:type:`struct nvme_get_log_args <nvme_get_log_args>`
+
+**Return**
+
+0 on success, non-zero on failure
+
+
+.. c:function:: int nvme_mi_admin_security_send (nvme_mi_ctrl_t ctrl, struct nvme_security_send_args *args)
+
+ Perform a Security Send command on a controller.
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ Controller to send command to
+
+``struct nvme_security_send_args *args``
+ Security Send command arguments
+
+**Description**
+
+Performs a Security Send Admin command as specified by **args**. Response data
+is stored in **args->data**, which should be a buffer of **args->data_len** bytes.
+Resulting data length is stored in **args->data_len** on successful
+command completion.
+
+Security Send data length should not be greater than 4096 bytes to
+comply with specification limits.
+
+See: :c:type:`struct nvme_get_log_args <nvme_get_log_args>`
+
+**Return**
+
+0 on success, non-zero on failure
+
+
+.. c:function:: int nvme_mi_admin_security_recv (nvme_mi_ctrl_t ctrl, struct nvme_security_receive_args *args)
+
+ Perform a Security Receive command on a controller.
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ Controller to send command to
+
+``struct nvme_security_receive_args *args``
+ Security Receive command arguments
+
+**Description**
+
+Performs a Security Receive Admin command as specified by **args**. Response
+data is stored in **args->data**, which should be a buffer of **args->data_len**
+bytes. Resulting data length is stored in **args->data_len** on successful
+command completion.
+
+Security Receive data length should not be greater than 4096 bytes to
+comply with specification limits.
+
+See: :c:type:`struct nvme_get_log_args <nvme_get_log_args>`
+
+**Return**
+
+0 on success, non-zero on failure
+
+
**Description**
Lookup a :c:type:`nvme_subsystem_t` object in **h** base on **name** (if present)
-and **subsystemnqn** or create one if not found.
+and **subsysnqn** or create one if not found.
**Return**
-nvme_subsystme_t object
+nvme_subsystem_t object
.. c:function:: void nvme_free_subsystem (struct nvme_subsystem *s)
First :c:type:`nvme_path_t` object of an **ns** iterator
-.. c:function:: nvme_path_t nvme_namespace_next_path (nvme_ns_t c, nvme_path_t p)
+.. c:function:: nvme_path_t nvme_namespace_next_path (nvme_ns_t ns, nvme_path_t p)
Next path iterator
**Parameters**
-``nvme_ns_t c``
- *undescribed*
+``nvme_ns_t ns``
+ Namespace instance
``nvme_path_t p``
Previous :c:type:`nvme_path_t` object of an **ns** iterator
**Parameters**
``n``
- *undescribed*
+ Namespace instance
``p``
:c:type:`nvme_path_t` object
.. c:macro:: nvme_namespace_for_each_path
-``nvme_namespace_for_each_path (c, p)``
+``nvme_namespace_for_each_path (n, p)``
Traverse paths
**Parameters**
-``c``
- *undescribed*
+``n``
+ Namespace instance
``p``
:c:type:`nvme_path_t` object
.. c:function:: int nvme_ns_get_fd (nvme_ns_t n)
- Get associated filedescriptor
+ Get associated file descriptor
**Parameters**
.. c:function:: uint64_t nvme_ns_get_lba_util (nvme_ns_t n)
- LBA utilisation of a namespace
+ LBA utilization of a namespace
**Parameters**
**Return**
-LBA utilisation of **n**
+LBA utilization of **n**
.. c:function:: enum nvme_csi nvme_ns_get_csi (nvme_ns_t n)
**Parameters**
``nvme_ctrl_t c``
- Conroller instance
+ Controller instance
**Return**
**Return**
-NQN of systemstem
+NQN of subsystem
.. c:function:: const char * nvme_subsystem_get_sysfs_dir (nvme_subsystem_t s)
The transfer size for nvme identify commands
``NVME_LOG_SUPPORTED_LOG_PAGES_MAX``
- The lagest possible index in the supported
+ The largest possible index in the supported
log pages log.
``NVME_ID_NVMSET_LIST_MAX``
Specification defined size of Telemetry Data Blocks
``NVME_LOG_FID_SUPPORTED_EFFECTS_MAX``
- The largest possible FID index in the
+ The largest possible FID index in the
feature identifiers effects log.
``NVME_LOG_MI_CMD_SUPPORTED_EFFECTS_MAX``
``NVME_REG_CMBSTS``
Controller Memory Buffer Status
+``NVME_REG_CRTO``
+ Controller Ready Timeouts
+
``NVME_REG_PMRCAP``
Persistent Memory Capabilities
specific transport. For example, BPMBL(Boot Partition Memory Buffer
Location) register is not supported by fabrics, but it can be checked here.
-Returns true if given offset is 64bit register, otherwise it returns false.
+**Return**
+
+true if given offset is 64bit register, otherwise it returns false.
.. c:function:: __u64 nvme_cmb_size (__u32 cmbsz)
``__u32 cmbsz``
Value from controller register ``NVME_REG_CMBSZ``
-**Description**
+**Return**
-Returns size of controller memory buffer in bytes
+size of controller memory buffer in bytes
.. c:function:: __u64 nvme_pmr_size (__u32 pmrebs)
``__u32 pmrebs``
Value from controller register ``NVME_REG_PMREBS``
-**Description**
+**Return**
-Returns size of controller persistent memory buffer in bytes
+size of controller persistent memory buffer in bytes
.. c:function:: __u64 nvme_pmr_throughput (__u32 pmrswtp)
``__u32 pmrswtp``
Value from controller register ``NVME_REG_PMRSWTP``
-**Description**
+**Return**
-Returns throughput of controller persistent memory buffer in bytes/second
+throughput of controller persistent memory buffer in bytes/second
**Constants**
+``NVME_PSD_PS_NOT_REPORTED``
+ Not reported
+
``NVME_PSD_PS_100_MICRO_WATT``
0.0001 watt scale
``__u8 ps``
power scale value
+**Return**
+
+power scale value
+
**Constants**
+``NVME_PSD_WORKLOAD_NP``
+ The workload is unknown or not provided.
+
``NVME_PSD_WORKLOAD_1``
Extended Idle Period with a Burst of Random Write
consists of five minutes of idle followed by
.. c:struct:: nvme_id_psd
+ Power Management data structure
**Definition**
this is less than the number of supported power states.
``rrl``
- Relative Reade Latency indicates the read latency rank associated
+ Relative Read Latency indicates the read latency rank associated
with this power state relative to others. The value in this field is
less than the number of supported power states.
assigned by the PCI SIG for the subsystem.
``sn``
- Serial Number in ascii
+ Serial Number in ASCII
``mn``
- Model Number in ascii
+ Model Number in ASCII
``fr``
- Firmware Revision in ascii, the currently active firmware
+ Firmware Revision in ASCII, the currently active firmware
revision for the NVM subsystem
``rab``
Field Replaceable Unit
``crdt1``
- Controller Retry Delay time in 100 millisecod units if CQE CRD
+ Controller Retry Delay time in 100 millisecond units if CQE CRD
field is 1
``crdt2``
- Controller Retry Delay time in 100 millisecod units if CQE CRD
+ Controller Retry Delay time in 100 millisecond units if CQE CRD
field is 2
``crdt3``
- Controller Retry Delay time in 100 millisecod units if CQE CRD
+ Controller Retry Delay time in 100 millisecond units if CQE CRD
field is 3
``rsvd134``
``maxdna``
Maximum Domain Namespace Attachments indicates the maximum
- of the sum of the numver of namespaces attached to each I/O
+ of the sum of the number of namespaces attached to each I/O
controller in the Domain.
``maxcna``
Fixed Capacity Management supported
``NVME_CTRL_CTRATT_VARIABLE_CAP``
- Variable Capacity Managment supported
+ Variable Capacity Management supported
``NVME_CTRL_CTRATT_DEL_ENDURANCE_GROUPS``
Delete Endurance Groups supported
.. c:enum:: nvme_id_ctrl_mec
- Flags indicatings the capabilities of the Management Endpoint in the Controller, :c:type:`struct nvme_id_ctrl <nvme_id_ctrl>`.mec.
+ Flags indicating the capabilities of the Management Endpoint in the Controller, :c:type:`struct nvme_id_ctrl <nvme_id_ctrl>`.mec.
**Constants**
If set, then the controller supports the Get LBA
Status capability.
+``NVME_CTRL_OACS_CMD_FEAT_LD``
+ If set, then the controller supports the command
+ and feature lockdown capability.
+
If set, the controller supports firmware
activation without a reset.
+``NVME_CTRL_FRMW_MP_UP_DETECTION``
+ If set, the controller is able to detect
+ overlapping firmware/boot partition
+ image update.
+
**Constants**
``NVME_CTRL_LPA_SMART_PER_NS``
+ If set, controller supports SMART/Health log
+ page on a per namespace basis.
``NVME_CTRL_LPA_CMD_EFFECTS``
+ If Set, the controller supports the commands
+ supported and effects log page.
``NVME_CTRL_LPA_EXTENDED``
+ If set, the controller supports extended data
+ for log page command including extended number
+ of dwords and log page offset fields.
``NVME_CTRL_LPA_TELEMETRY``
+ If set, the controller supports the telemetry
+ host-initiated and telemetry controller-initiated
+ log pages and sending telemetry log notices.
``NVME_CTRL_LPA_PERSETENT_EVENT``
+ If set, the controller supports
+ persistent event log.
+
+``NVME_CTRL_LPA_LI0_LI5_LI12_LI13``
+ If set, the controller supports
+ - log pages log page.
+ - returning scope of each command in
+ commands supported and effects log
+ page.
+ - feature identifiers supported and
+ effects log page.
+ - NVMe-MI commands supported and
+ effects log page.
+
+``NVME_CTRL_LPA_DA4_TELEMETRY``
+ If set, the controller supports data
+ area 4 for telemetry host-initiated and
+ telemetry.
If set, then the controller supports
the Verify command.
+``NVME_CTRL_ONCS_COPY``
+ If set, then the controller supports
+ the copy command.
+
supported. If cleared, then cryptographic
erase is not supported.
+``NVME_CTRL_FNA_NSID_FFFFFFFF``
+ If set, then format does not support
+ nsid value set to FFFFFFFFh. If cleared,
+ format supports nsid value set to
+ FFFFFFFFh.
+
.. c:enum:: nvme_id_ctrl_vwc
+ Volatile write cache
**Constants**
``NVME_CTRL_NVSCC_FMT``
If set, all NVM Vendor Specific Commands use the
- format format with NDT and NDM fields.
+ format with NDT and NDM fields.
+.. c:enum:: nvme_nvm_id_ns_elbaf
+
+ This field indicates the extended LBA format
+
+**Constants**
+
+``NVME_NVM_ELBAF_STS_MASK``
+ Mask to get the storage tag size used to determine
+ the variable-sized storage tag/reference tag fields
+
+``NVME_NVM_ELBAF_PIF_MASK``
+ Mask to get the protection information format for
+ the extended LBA format.
+
+
+
+
.. c:enum:: nvme_id_ns_mc
This field indicates the capabilities for metadata.
.. c:struct:: nvme_ns_id_desc
+ Namespace identifier type descriptor
**Definition**
Identifier (UUID) as specified in RFC 4122.
``NVME_NIDT_CSI``
- The NID field contains the command set indentifier.
+ The NID field contains the command set identifier.
.. c:struct:: nvme_id_nvmset_list
+ NVM set list
**Definition**
.. c:struct:: nvme_id_independent_id_ns
+ Identify - I/O Command Set Independent Identify Namespace Data Structure
**Definition**
.. c:struct:: nvme_id_ns_granularity_desc
+ Namespace Granularity Descriptor
**Definition**
.. c:struct:: nvme_id_ns_granularity_list
+ Namespace Granularity List
**Definition**
.. c:struct:: nvme_id_uuid_list_entry
+ UUID List Entry
**Definition**
.. c:enum:: nvme_id_uuid
+ Identifier Association
**Constants**
.. c:struct:: nvme_id_uuid_list
+ UUID list
**Definition**
.. c:struct:: nvme_ctrl_list
+ Controller List
**Definition**
.. c:struct:: nvme_ns_list
+ Namespace List
**Definition**
.. c:struct:: nvme_id_ctrl_nvm
+ I/O Command Set Specific Identify Controller data structure
**Definition**
.. c:struct:: nvme_nvm_id_ns
+ NVME Command Set I/O Command Set Specific Identify Namespace Data Structure
**Definition**
.. c:struct:: nvme_zns_lbafe
+ LBA Format Extension Data Structure
**Definition**
.. c:struct:: nvme_zns_id_ctrl
+ I/O Command Set Specific Identify Controller Data Structure for the Zoned Namespace Command Set
**Definition**
**Members**
``zasl``
+ Zone Append Size Limit
``rsvd1``
Reserved
.. c:struct:: nvme_primary_ctrl_cap
+ Identify - Controller Capabilities Structure
**Definition**
.. c:struct:: nvme_secondary_ctrl
+ Secondary Controller Entry
**Definition**
.. c:struct:: nvme_secondary_ctrl_list
+ Secondary Controller List
**Definition**
.. c:struct:: nvme_id_domain_list
+ Domain List
**Definition**
.. c:struct:: nvme_id_endurance_group_list
+ Endurance Group List
**Definition**
.. c:struct:: nvme_supported_log_pages
+ Supported Log Pages - Log
**Definition**
-.. c:enum:: nvme_err_pel
-
-
-**Constants**
-
-``NVME_ERR_PEL_BYTE_MASK``
-
-``NVME_ERR_PEL_BIT_MASK``
-
-
-
-
.. c:struct:: nvme_smart_log
SMART / Health Information Log (Log Identifier 02h)
.. c:struct:: nvme_firmware_slot
+ Firmware Slot Information Log
**Definition**
.. c:struct:: nvme_cmd_effects_log
+ Commands Supported and Effects Log
**Definition**
.. c:enum:: nvme_cmd_effects
+ Commands Supported and Effects
**Constants**
.. c:enum:: nvme_cmd_get_log_telemetry_host_lsp
+ Telemetry Host-Initiated log specific field
**Constants**
``NVME_LOG_TELEM_HOST_LSP_RETAIN``
+ Get Telemetry Data Blocks
``NVME_LOG_TELEM_HOST_LSP_CREATE``
+ Create Telemetry Data Blocks
capture of its internal controller state in the controller .
``rsnident``
- Reason Identifieris a vendor specific identifier that describes
+ Reason Identifiers a vendor specific identifier that describes
the operating conditions of the controller at the time of
capture.
.. c:struct:: nvme_endurance_group_log
+ Endurance Group Information Log
**Definition**
.. c:enum:: nvme_eg_critical_warning_flags
+ Endurance Group Information Log - Critical Warning
**Constants**
``NVME_EG_CRITICAL_WARNING_SPARE``
+ Available spare capacity of the Endurance Group
+ has fallen below the threshold
``NVME_EG_CRITICAL_WARNING_DEGRADED``
+ Endurance Group reliability has been degraded
``NVME_EG_CRITICAL_WARNING_READ_ONLY``
+ Endurance Group have been placed in read only
+ mode
.. c:struct:: nvme_aggregate_endurance_group_event
+ Endurance Group Event Aggregate
**Definition**
.. c:struct:: nvme_nvmset_predictable_lat_log
+ Predictable Latency Mode - Deterministic Threshold Configuration Data
**Definition**
.. c:enum:: nvme_nvmeset_pl_status
+ Predictable Latency Per NVM Set Log - Status
**Constants**
``NVME_NVMSET_PL_STATUS_DISABLED``
+ Not used (Predictable Latency Mode not enabled)
``NVME_NVMSET_PL_STATUS_DTWIN``
+ Deterministic Window (DTWIN)
``NVME_NVMSET_PL_STATUS_NDWIN``
+ Non-Deterministic Window (NDWIN)
.. c:enum:: nvme_nvmset_pl_events
+ Predictable Latency Per NVM Set Log - Event Type
**Constants**
``NVME_NVMSET_PL_EVENT_DTWIN_READ_WARN``
+ DTWIN Reads Warning
``NVME_NVMSET_PL_EVENT_DTWIN_WRITE_WARN``
+ DTWIN Writes Warning
``NVME_NVMSET_PL_EVENT_DTWIN_TIME_WARN``
+ DTWIN Time Warning
``NVME_NVMSET_PL_EVENT_DTWIN_EXCEEDED``
+ Autonomous transition from DTWIN
+ to NDWIN due to typical or
+ maximum value exceeded
``NVME_NVMSET_PL_EVENT_DTWIN_EXCURSION``
+ Autonomous transition from DTWIN
+ to NDWIN due to Deterministic
+ Excursion
.. c:struct:: nvme_aggregate_predictable_lat_event
+ Predictable Latency Event Aggregate Log Page
**Definition**
.. c:struct:: nvme_ana_group_desc
+ ANA Group Descriptor
**Definition**
.. c:enum:: nvme_ana_state
+ ANA Group Descriptor - Asymmetric Namespace Access State
**Constants**
``NVME_ANA_STATE_OPTIMIZED``
+ ANA Optimized state
``NVME_ANA_STATE_NONOPTIMIZED``
+ ANA Non-Optimized state
``NVME_ANA_STATE_INACCESSIBLE``
+ ANA Inaccessible state
``NVME_ANA_STATE_PERSISTENT_LOSS``
+ ANA Persistent Loss state
``NVME_ANA_STATE_CHANGE``
+ ANA Change state
.. c:struct:: nvme_ana_log
+ Asymmetric Namespace Access Log
**Definition**
.. c:struct:: nvme_persistent_event_log
+ Persistent Event Log
**Definition**
.. c:struct:: nvme_persistent_event_entry
+ Persistent Event
**Definition**
.. c:enum:: nvme_persistent_event_types
+ Persistent event log events
**Constants**
``NVME_PEL_SMART_HEALTH_EVENT``
+ SMART / Health Log Snapshot Event
``NVME_PEL_FW_COMMIT_EVENT``
+ Firmware Commit Event
``NVME_PEL_TIMESTAMP_EVENT``
+ Timestamp Change Event
``NVME_PEL_POWER_ON_RESET_EVENT``
+ Power-on or Reset Event
``NVME_PEL_NSS_HW_ERROR_EVENT``
+ NVM Subsystem Hardware Error Event
``NVME_PEL_CHANGE_NS_EVENT``
+ Change Namespace Event
``NVME_PEL_FORMAT_START_EVENT``
+ Format NVM Start Event
``NVME_PEL_FORMAT_COMPLETION_EVENT``
+ Format NVM Completion Event
``NVME_PEL_SANITIZE_START_EVENT``
+ Sanitize Start Event
``NVME_PEL_SANITIZE_COMPLETION_EVENT``
+ Sanitize Completion Event
``NVME_PEL_SET_FEATURE_EVENT``
+ Set Feature Event
``NVME_PEL_TELEMETRY_CRT``
+ Telemetry Log Create Event
``NVME_PEL_THERMAL_EXCURSION_EVENT``
+ Thermal Excursion Event
.. c:struct:: nvme_fw_commit_event
+ Firmware Commit Event Data
**Definition**
.. c:struct:: nvme_time_stamp_change_event
+ Timestamp Change Event
**Definition**
.. c:struct:: nvme_power_on_reset_info_list
+ Controller Reset Information
**Definition**
.. c:struct:: nvme_nss_hw_err_event
+ NVM Subsystem Hardware Error Event
**Definition**
.. c:struct:: nvme_change_ns_event
+ Change Namespace Event Data
**Definition**
.. c:struct:: nvme_format_nvm_start_event
+ Format NVM Start Event Data
**Definition**
.. c:struct:: nvme_format_nvm_compln_event
+ Format NVM Completion Event Data
**Definition**
.. c:struct:: nvme_sanitize_start_event
+ Sanitize Start Event Data
**Definition**
.. c:struct:: nvme_sanitize_compln_event
+ Sanitize Completion Event Data
**Definition**
.. c:struct:: nvme_set_feature_event
+ Set Feature Event Data
**Definition**
.. c:struct:: nvme_thermal_exc_event
+ Thermal Excursion Event Data
**Definition**
.. c:struct:: nvme_lba_rd
+ LBA Range Descriptor
**Definition**
.. c:struct:: nvme_lbas_ns_element
+ LBA Status Log Namespace Element
**Definition**
Number of LBA Range Descriptors
``ratype``
- Recommended Action Type
+ Recommended Action Type. see **enum** nvme_lba_status_atype
``rsvd8``
Reserved
.. c:enum:: nvme_lba_status_atype
+ Potentially Unrecoverable LBAs
**Constants**
``NVME_LBA_STATUS_ATYPE_SCAN_UNTRACKED``
+ Potentially Unrecoverable LBAs
``NVME_LBA_STATUS_ATYPE_SCAN_TRACKED``
+ Potentially Unrecoverable LBAs
+ associated with physical storage
.. c:struct:: nvme_lba_status_log
+ LBA Status Information Log
**Definition**
.. c:struct:: nvme_eg_event_aggregate_log
+ Endurance Group Event Aggregate
**Definition**
.. c:enum:: nvme_fid_supported_effects
+ FID Supported and Effects Data Structure definitions
**Constants**
``NVME_FID_SUPPORTED_EFFECTS_FSUPP``
+ FID Supported
``NVME_FID_SUPPORTED_EFFECTS_UDCC``
+ User Data Content Change
``NVME_FID_SUPPORTED_EFFECTS_NCC``
+ Namespace Capability Change
``NVME_FID_SUPPORTED_EFFECTS_NIC``
+ Namespace Inventory Change
``NVME_FID_SUPPORTED_EFFECTS_CCC``
+ Controller Capability Change
``NVME_FID_SUPPORTED_EFFECTS_UUID_SEL``
+ UUID Selection Supported
``NVME_FID_SUPPORTED_EFFECTS_SCOPE_SHIFT``
+ FID Scope Shift
``NVME_FID_SUPPORTED_EFFECTS_SCOPE_MASK``
+ FID Scope Mask
``NVME_FID_SUPPORTED_EFFECTS_SCOPE_NS``
+ Namespace Scope
``NVME_FID_SUPPORTED_EFFECTS_SCOPE_CTRL``
+ Controller Scope
``NVME_FID_SUPPORTED_EFFECTS_SCOPE_NVM_SET``
+ NVM Set Scope
``NVME_FID_SUPPORTED_EFFECTS_SCOPE_ENDGRP``
+ Endurance Group Scope
``NVME_FID_SUPPORTED_EFFECTS_SCOPE_DOMAIN``
+ Domain Scope
``NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS``
-
-**Description**
-
-FID Supported and Effects Data Structure definitions
+ NVM Subsystem Scope
.. c:struct:: nvme_fid_supported_effects_log
+ Feature Identifiers Supported and Effects
**Definition**
Feature Identifier Supported
-**Description**
-
-Feature Identifiers Supported and Effects (Log Identifier 12h)
-
.. c:enum:: nvme_mi_cmd_supported_effects
- bit field definitions
+ MI Command Supported and Effects Data Structure
**Constants**
Command Supported
``NVME_MI_CMD_SUPPORTED_EFFECTS_UDCC``
- User Data Conttent Change
+ User Data Content Change
``NVME_MI_CMD_SUPPORTED_EFFECTS_NCC``
Namespace Capability Change
``NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_NSS``
NVM Subsystem Scope
-**Description**
-
-MI Command Supported and Effects Data Structure definitions
-
.. c:struct:: nvme_mi_cmd_supported_effects_log
+ NVMe-MI Commands Supported and Effects Log
**Definition**
``mi_cmd_support``
NVMe-MI Commands Supported
+``reserved1``
+ Reserved
-**Description**
-
-NVMe-MI Commands Supported and Effects (Log Identifier 13h)
.. c:struct:: nvme_boot_partition
+ Boot Partition Log
**Definition**
.. c:struct:: nvme_media_unit_stat_desc
+ Media Unit Status Descriptor
**Definition**
.. c:struct:: nvme_media_unit_stat_log
+ Media Unit Status
**Definition**
.. c:struct:: nvme_media_unit_config_desc
+ Media Unit Configuration Descriptor
**Definition**
``muid``
Media Unit Identifier
+``rsvd2``
+ Reserved
+
``mudl``
Media Unit Descriptor Length
-**Description**
-
-Media Unit Configuration Descriptor
-Structure Definitions
-
.. c:struct:: nvme_channel_config_desc
+ Channel Configuration Descriptor
**Definition**
``chmus``
Number Channel Media Units
+``mu_config_desc``
+ Channel Unit config descriptors.
+ See **struct** nvme_media_unit_config_desc
-**Description**
-
-Channel Configuration Descriptor
-Structure Definitions
.. c:struct:: nvme_end_grp_chan_desc
+ Endurance Group Channel Configuration Descriptor
**Definition**
``egchans``
Number of Channels
+``chan_config_desc``
+ Channel config descriptors.
+ See **struct** nvme_channel_config_desc
-**Description**
-
-Endurance group Channel Configuration Descriptor
-Structure Definitions
.. c:struct:: nvme_end_grp_config_desc
+ Endurance Group Configuration Descriptor
**Definition**
``cap_adj_factor``
Capacity Adjustment Factor
+``rsvd4``
+ Reserved
+
``tegcap``
Total Endurance Group Capacity
``end_est``
Endurance Estimate
+``rsvd64``
+ Reserved
+
``egsets``
Number of NVM Sets
NVM Set Identifier
-**Description**
-Endurance Group Configuration Descriptor
-Structure Definitions
+
+
+.. c:struct:: nvme_capacity_config_desc
+
+ Capacity Configuration structure definitions
+
+**Definition**
+
+::
+
+ struct nvme_capacity_config_desc {
+ __le16 cap_config_id;
+ __le16 domainid;
+ __le16 egcn;
+ __u8 rsvd6[26];
+ struct nvme_end_grp_config_desc egcd[];
+ };
+
+**Members**
+
+``cap_config_id``
+ Capacity Configuration Identifier
+
+``domainid``
+ Domain Identifier
+
+``egcn``
+ Number Endurance Group Configuration
+ Descriptors
+
+``rsvd6``
+ Reserved
+
+``egcd``
+ Endurance Group Config descriptors.
+ See **struct** nvme_end_grp_config_desc
+
.. c:struct:: nvme_supported_cap_config_list_log
+ Supported Capacity Configuration list log page
**Definition**
**Members**
``sccn``
- number of capacity configuration
+ Number of capacity configuration
+``rsvd1``
+ Reserved
-**Description**
+``cap_config_desc``
+ Capacity configuration descriptor.
+ See **struct** nvme_capacity_config_desc
-Supported Capacity Configuration list log page
-structure definitions
.. c:struct:: nvme_resv_notification_log
+ Reservation Notification Log
**Definition**
.. c:enum:: nvme_resv_notify_rnlpt
+ Reservation Notification Log - Reservation Notification Log Page Type
**Constants**
``NVME_RESV_NOTIFY_RNLPT_EMPTY``
+ Empty Log Page
``NVME_RESV_NOTIFY_RNLPT_REGISTRATION_PREEMPTED``
+ Registration Preempted
``NVME_RESV_NOTIFY_RNLPT_RESERVATION_RELEASED``
+ Reservation Released
``NVME_RESV_NOTIFY_RNLPT_RESERVATION_PREEMPTED``
+ Reservation Preempted
.. c:enum:: nvme_zns_zt
+ Zone Descriptor Data Structure - Zone Type
**Constants**
``NVME_ZONE_TYPE_SEQWRITE_REQ``
+ Sequential Write Required
.. c:enum:: nvme_zns_za
+ Zone Descriptor Data Structure
**Constants**
.. c:enum:: nvme_zns_zs
+ Zone Descriptor Data Structure - Zone State
**Constants**
.. c:struct:: nvme_zns_desc
+ Zone Descriptor Data Structure
**Definition**
.. c:struct:: nvme_zone_report
+ Report Zones Data Structure
**Definition**
.. c:struct:: nvme_lba_status_desc
+ LBA Status Descriptor Entry
**Definition**
.. c:struct:: nvme_lba_status
+ LBA Status Descriptor List
**Definition**
.. c:struct:: nvme_feat_auto_pst
+ Autonomous Power State Transition
**Definition**
.. c:enum:: nvme_apst_entry
+ Autonomous Power State Transition
**Constants**
``NVME_APST_ENTRY_ITPS_SHIFT``
+ Idle Transition Power State Shift
``NVME_APST_ENTRY_ITPT_SHIFT``
+ Idle Time Prior to Transition Shift
``NVME_APST_ENTRY_ITPS_MASK``
+ Idle Transition Power State Mask
``NVME_APST_ENTRY_ITPT_MASK``
+ Idle Time Prior to Transition Mask
Chipset driver name.
``NVME_CTRL_METADATA_CHIPSET_DRV_VERSION``
- Chipsset driver version.
+ Chipset driver version.
``NVME_CTRL_METADATA_OS_NAME_AND_BUILD``
Operating system name and build.
**Constants**
``NVME_NS_METADATA_OS_NS_NAME``
- Name of the namespace in the the
+ Name of the namespace in the
operating system
``NVME_NS_METADATA_PRE_BOOT_NS_NAME``
.. c:struct:: nvme_timestamp
+ Timestamp - Data Structure for Get Features
**Definition**
.. c:struct:: nvme_lba_range_type_entry
+ LBA Range Type - Data Structure Entry
**Definition**
.. c:enum:: nvme_lbart
+ LBA Range Type - Data Structure Entry
**Constants**
.. c:struct:: nvme_lba_range_type
+ LBA Range Type
**Definition**
**Members**
``entry``
- LBA range type entry
+ LBA range type entry. See **struct** nvme_lba_range_type_entry
.. c:struct:: nvme_plm_config
+ Predictable Latency Mode - Deterministic Threshold Configuration Data Structure
**Definition**
.. c:struct:: nvme_feat_host_behavior
+ Host Behavior Support - Data Structure
**Definition**
.. c:enum:: nvme_host_behavior_support
+ Enable Advanced Command
**Constants**
.. c:struct:: nvme_dsm_range
+ Dataset Management - Range Definition
**Definition**
.. c:struct:: nvme_copy_range
+ Copy - Source Range Entries Descriptor Format
**Definition**
Reserved
``eilbrt``
- Expected Initial Logical Block Reference Tag
+ Expected Initial Logical Block Reference Tag /
+ Expected Logical Block Storage Tag
+
+``elbatm``
+ Expected Logical Block Application Tag Mask
+
+``elbat``
+ Expected Logical Block Application Tag
+
+
+
+
+
+.. c:struct:: nvme_copy_range_f1
+
+ Copy - Source Range Entries Descriptor Format 1h
+
+**Definition**
+
+::
+
+ struct nvme_copy_range_f1 {
+ __u8 rsvd0[8];
+ __le64 slba;
+ __le16 nlb;
+ __u8 rsvd18[8];
+ __u8 elbt[10];
+ __le16 elbatm;
+ __le16 elbat;
+ };
+
+**Members**
+
+``rsvd0``
+ Reserved
+
+``slba``
+ Starting LBA
+
+``nlb``
+ Number of Logical Blocks
+
+``rsvd18``
+ Reserved
+
+``elbt``
+ Expected Initial Logical Block Reference Tag /
+ Expected Logical Block Storage Tag
``elbatm``
Expected Logical Block Application Tag Mask
.. c:struct:: nvme_registered_ctrl
+ Registered Controller Data Structure
**Definition**
.. c:struct:: nvme_registered_ctrl_ext
+ Registered Controller Extended Data Structure
**Definition**
.. c:struct:: nvme_resv_status
+ Reservation Status Data Structure
**Definition**
.. c:struct:: nvme_streams_directive_params
+ Streams Directive - Return Parameters Data Structure
**Definition**
.. c:struct:: nvme_streams_directive_status
+ Streams Directive - Get Status Data Structure
**Definition**
.. c:struct:: nvme_id_directives
+ Identify Directive - Return Parameters Data Structure
**Definition**
.. c:enum:: nvme_directive_types
+ Directives Supported or Enabled
**Constants**
.. c:struct:: nvme_host_mem_buf_attrs
+ Host Memory Buffer - Attributes Data Structure
**Definition**
.. c:enum:: nvme_ae_type
+ Asynchronous Event Type
**Constants**
.. c:enum:: nvme_ae_info_error
+ Asynchronous Event Information - Error Status
**Constants**
.. c:enum:: nvme_ae_info_smart
+ Asynchronous Event Information - SMART / Health Status
**Constants**
.. c:enum:: nvme_ae_info_css_nvm
+ Asynchronous Event Information - I/O Command Specific Status
**Constants**
.. c:enum:: nvme_ae_info_notice
+ Asynchronous Event Information - Notice
**Constants**
Indicates that Explicit Persistent Connections are
supported for the Discovery controller.
-``NVMF_DISC_EFLAGS_BOTH``
- Indicates that both the DUPRETINFO and EPCSD
- features are supported.
+``NVMF_DISC_EFLAGS_NCC``
+ No CDC Connectivity (NCC): If set to
+ '1', then no DDC that describes this entry
+ is currently connected to the CDC. If
+ cleared to '0', then at least one DDC that
+ describes this entry is currently
+ connected to the CDC. If the Discovery
+ controller returning this log page is not
+ a CDC, then this bit shall be cleared to
+ '0' and should be ignored by the host.
Reserved
``exat``
- Extented Attributes 0 (:c:type:`struct nvmf_ext_attr <nvmf_ext_attr>`)
+ Extended Attributes 0 (:c:type:`struct nvmf_ext_attr <nvmf_ext_attr>`)
through the list. To move to the next entry, one simply adds the
current entry's length (TEL) to the "walk" pointer. The number of
entries in the list is specified by NUMENT. Although extended
-entries are of a variable lengths (TEL), TEL is always a mutiple of
+entries are of a variable lengths (TEL), TEL is always a multiple of
4 bytes.
.. c:struct:: nvme_mi_read_nvm_ss_info
+ NVM Subsystem Information Data Structure
**Definition**
.. c:struct:: nvme_mi_port_pcie
+ PCIe Port Specific Data
**Definition**
.. c:struct:: nvme_mi_port_smb
+ SMBus Port Specific Data
**Definition**
.. c:struct:: nvme_mi_read_port_info
+ Port Information Data Structure
**Definition**
.. c:struct:: nvme_mi_read_ctrl_info
+ Controller Information Data Structure
**Definition**
.. c:struct:: nvme_mi_osc
+ Optionally Supported Command Data Structure
**Definition**
.. c:struct:: nvme_mi_read_sc_list
+ Management Endpoint Buffer Supported Command List Data Structure
**Definition**
Number of Commands
``cmds``
- MEB supported Command Data Structure
+ MEB supported Command Data Structure.
+ See **struct** nvme_mi_osc
.. c:struct:: nvme_mi_nvm_ss_health_status
+ Subsystem Management Data Structure
**Definition**
-.. c:enum:: nvme_mi_css
+.. c:enum:: nvme_mi_ccs
+ Get State Control Primitive Success Response Fields - Control Primitive Specific Response
**Constants**
``NVME_MI_CCS_RDY``
Ready
-``NVME_MI_CSS_CFS``
+``NVME_MI_CCS_CFS``
Controller Fatal Status
-``NVME_MI_CSS_SHST``
+``NVME_MI_CCS_SHST``
Shutdown Status
-``NVME_MI_CSS_NSSRO``
+``NVME_MI_CCS_NSSRO``
NVM Subsystem Reset Occurred
-``NVME_MI_CSS_CECO``
+``NVME_MI_CCS_CECO``
Controller Enable Change Occurred
-``NVME_MI_CSS_NAC``
+``NVME_MI_CCS_NAC``
Namespace Attribute Changed
-``NVME_MI_CSS_FA``
+``NVME_MI_CCS_FA``
Firmware Activated
-``NVME_MI_CSS_CSTS``
+``NVME_MI_CCS_CSTS``
Controller Status Change
-``NVME_MI_CSS_CTEMP``
+``NVME_MI_CCS_CTEMP``
Composite Temperature Change
-``NVME_MI_CSS_PDLU``
+``NVME_MI_CCS_PDLU``
Percentage Used
-``NVME_MI_CSS_SPARE``
+``NVME_MI_CCS_SPARE``
Available Spare
-``NVME_MI_CSS_CCWARN``
+``NVME_MI_CCS_CCWARN``
Critical Warning
.. c:struct:: nvme_mi_ctrl_health_status
+ Controller Health Data Structure (CHDS)
**Definition**
.. c:enum:: nvme_mi_csts
+ Controller Health Data Structure (CHDS) - Controller Status (CSTS)
**Constants**
.. c:enum:: nvme_mi_cwarn
+ Controller Health Data Structure (CHDS) - Critical Warning (CWARN)
**Constants**
.. c:struct:: nvme_mi_vpd_mra
+ NVMe MultiRecord Area
**Definition**
Reserved
``m33vapsr``
- Maximum 3.3 V aux Power Supply Requirements
+ Maximum 3.3 Vi aux Power Supply Requirements
``i5vapsr``
Initial 5 V Power Supply Requirements
.. c:struct:: nvme_mi_vpd_ppmra
+ NVMe PCIe Port MultiRecord Area
**Definition**
.. c:struct:: nvme_mi_vpd_telem
+ Vital Product Data Element Descriptor
**Definition**
.. c:enum:: nvme_mi_elem
+ Element Descriptor Types
**Constants**
.. c:struct:: nvme_mi_vpd_tra
+ Vital Product Data Topology MultiRecord
**Definition**
.. c:struct:: nvme_mi_vpd_mr_common
+ NVMe MultiRecord Area
**Definition**
.. c:struct:: nvme_mi_vpd_hdr
+ Vital Product Data Common Header
**Definition**
Mask to get the value of the Status Code Type
``NVME_SCT_SHIFT``
- *undescribed*
+ Shift value to get the value of the Status
+ Code Type
``NVME_SC_MASK``
Mask to get the value of the status code.
``NVME_SC_SHIFT``
- *undescribed*
+ Shift value to get the value of the status
+ code.
``NVME_SC_SUCCESS``
Successful Completion: The command
CDC
``NVME_SC_ZONEGRP_ORIGINATOR_INVLD``
- *undescribed*
+ The NQN contained in the ZoneGroup
+ Originator field does not match the
+ Host NQN used by the DDC to connect
+ to the CDC.
``NVME_SC_BAD_ATTRIBUTES``
Conflicting Dataset Management Attributes
``__u16 status_field``
The NVMe Completion Queue Entry's Status Field
+ See :c:type:`enum nvme_status_field <nvme_status_field>`
-**Description**
+**Return**
-See :c:type:`enum nvme_status_field <nvme_status_field>`
+status code type
.. c:function:: __u16 nvme_status_code (__u16 status_field)
``__u16 status_field``
The NVMe Completion Queue Entry's Status Field
+ See :c:type:`enum nvme_status_field <nvme_status_field>`
-**Description**
+**Return**
-See :c:type:`enum nvme_status_field <nvme_status_field>`
+status code
.. c:enum:: nvme_identify_cns
+ Identify - CNS Values
**Constants**
Identify Namespace data structure
``NVME_IDENTIFY_CNS_CTRL``
- Identify Controller data structur
+ Identify Controller data structure
``NVME_IDENTIFY_CNS_NS_ACTIVE_LIST``
Active Namespace ID list
``NVME_IDENTIFY_CNS_CSI_INDEPENDENT_ID_NS``
I/O Command Set Independent Identify
- Namespace data structure
``NVME_IDENTIFY_CNS_NS_USER_DATA_FORMAT``
- *undescribed*
+ Namespace user data format
``NVME_IDENTIFY_CNS_CSI_NS_USER_DATA_FORMAT``
- *undescribed*
+ I/O Command Set specific user data
+ format
+ Namespace data structure
``NVME_IDENTIFY_CNS_ALLOCATED_NS_LIST``
Allocated Namespace ID list
processing the command
``NVME_IDENTIFY_CNS_NS_GRANULARITY``
- A Namespace Granularity Lis
+ A Namespace Granularity List
``NVME_IDENTIFY_CNS_UUID_LIST``
A UUID List
.. c:enum:: nvme_cmd_get_log_lid
+ Get Log Page -Log Page Identifiers
**Constants**
.. c:enum:: nvme_features_id
+ Features - Feature Identifiers
**Constants**
.. c:enum:: nvme_feat
+ Features Access Shifts/Masks values
**Constants**
.. c:enum:: nvme_get_features_sel
+ Get Features - Select
**Constants**
.. c:enum:: nvme_ns_mgmt_sel
+ Namespace Management - Select
**Constants**
.. c:enum:: nvme_ns_attach_sel
+ Namespace Attachment - Select
**Constants**
.. c:enum:: nvme_fw_commit_ca
+ Firmware Commit - Commit Action
**Constants**
``NVME_FW_COMMIT_CA_ACTIVATE_BOOT_PARTITION``
Mark the Boot Partition specified in
- the BPID field as active and update
+ the BPID field as active and update
BPINFO.ABPID.
.. c:enum:: nvme_directive_dtype
+ Directive Types
**Constants**
.. c:enum:: nvme_directive_receive_doper
+ Directive Receive Directive Operation
**Constants**
.. c:enum:: nvme_directive_send_doper
+ Directive Send Directive Operation
**Constants**
.. c:enum:: nvme_directive_send_identify_endir
+ Enable Directive
**Constants**
.. c:enum:: nvme_virt_mgmt_act
+ Virtualization Management - Action
**Constants**
.. c:enum:: nvme_virt_mgmt_rt
+ Virtualization Management - Resource Type
**Constants**
.. c:enum:: nvme_ns_write_protect_cfg
+ Write Protection - Write Protection State
**Constants**
.. c:enum:: nvme_log_ana_lsp
+ Asymmetric Namespace Access - Return Groups Only
**Constants**
.. c:enum:: nvme_pevent_log_action
+ Persistent Event Log - Action
**Constants**
.. c:enum:: nvme_feat_tmpthresh_thsel
+ Temperature Threshold - Threshold Type Select
**Constants**
.. c:enum:: nvme_features_async_event_config_flags
+ Asynchronous Event Configuration configuration flags
**Constants**
.. c:enum:: nvme_feat_plm_window_select
+ Predictable Latency Per NVM Set Log
**Constants**
.. c:enum:: nvme_feat_resv_notify_flags
+ Reservation Notification Configuration
**Constants**
.. c:enum:: nvme_feat_nswpcfg_state
+ Write Protection - Write Protection State
**Constants**
.. c:enum:: nvme_fctype
+ Fabrics Command Types
**Constants**
.. c:enum:: nvme_io_opcode
+ Opcodes for I/O Commands
**Constants**
.. c:enum:: nvme_io_control_flags
+ I/O control flags
**Constants**
``NVME_IO_DTYPE_STREAMS``
Directive Type Streams
+``NVME_IO_STC``
+ Storage Tag Check
+
``NVME_IO_DEAC``
Deallocate
.. c:enum:: nvme_io_dsm_flags
+ Dataset Management flags
**Constants**
.. c:enum:: nvme_dsm_attributes
+ Dataset Management attributes
**Constants**
``NVME_DSMGMT_IDR``
- Attribute – Integral Dataset for Read
+ Attribute -Integral Dataset for Read
``NVME_DSMGMT_IDW``
- Attribute – Integral Dataset for Write
+ Attribute - Integral Dataset for Write
``NVME_DSMGMT_AD``
- Attribute – Deallocate
+ Attribute - Deallocate
.. c:enum:: nvme_resv_rtype
+ Reservation Type Encoding
**Constants**
.. c:enum:: nvme_resv_racqa
+ Reservation Acquire - Reservation Acquire Action
**Constants**
.. c:enum:: nvme_resv_rrega
+ Reservation Register - Reservation Register Action
**Constants**
.. c:enum:: nvme_resv_cptpl
+ Reservation Register - Change Persist Through Power Loss State
**Constants**
.. c:enum:: nvme_resv_rrela
+ Reservation Release - Reservation Release Action
**Constants**
.. c:enum:: nvme_zns_send_action
+ Zone Management Send - Zone Send Action
**Constants**
.. c:enum:: nvme_zns_recv_action
+ Zone Management Receive - Zone Receive Action Specific Features
**Constants**
.. c:enum:: nvme_zns_report_options
+ Zone Management Receive - Zone Receive Action Specific Field
**Constants**
``ENVME_CONNECT_LOOKUP_SUBSYS``
failed to lookup subsystem
+``ENVME_CONNECT_ALREADY``
+ the connect attempt failed, 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
+
.. c:function:: __u8 nvme_status_to_errno (int status, bool fabrics)
**Parameters**
``int status``
- Return status from an nvme passthrough commmand
+ Return status from an nvme passthrough command
``bool fabrics``
Set to true if :c:type:`status` is to a fabrics target.
**Parameters**
``int status``
- Return status from an nvme passthrough commmand
+ Return status from an nvme passthrough command
``bool fabrics``
Set to true if :c:type:`status` is to a fabrics target.
Number of descriptors to construct
-.. c:function:: void nvme_init_copy_range_fl (struct nvme_copy_range_f1 *copy, __u16 *nlbs, __u64 *slbas, __u64 *eilbrts, __u32 *elbatms, __u32 *elbats, __u16 nr)
+.. c:function:: void nvme_init_copy_range_f1 (struct nvme_copy_range_f1 *copy, __u16 *nlbs, __u64 *slbas, __u64 *eilbrts, __u32 *elbatms, __u32 *elbats, __u16 nr)
- Constructs a copy range formate 1 structure
+ Constructs a copy range f1 structure
**Parameters**
.. c:function:: int nvme_get_directive_receive_length (enum nvme_directive_dtype dtype, enum nvme_directive_receive_doper doper, __u32 *len)
+ Get directive receive length
**Parameters**
NULL otherwise.
-.. c:function:: char* startswith (const char *s, const char *prefix)
+.. c:function:: char * startswith (const char *s, const char *prefix)
Checks that a string starts with a given prefix.
.. c:function:: __u16 nvmf_exat_size (size_t val_len)
- Return min algined size to hold value
+ Return min aligned size to hold value
**Parameters**
Pointer to the next element in the array.
+
+
+.. c:enum:: nvme_version
+
+ Selector for version to be returned by **nvme_get_version**
+
+**Constants**
+
+``NVME_VERSION_PROJECT``
+ Project release version
+
+``NVME_VERSION_GIT``
+ Git reference
+
+
+.. c:function:: const char * nvme_get_version (enum nvme_version type)
+
+ Return version libnvme string
+
+**Parameters**
+
+``enum nvme_version type``
+ Selects which version type (see **struct** nvme_version)
+
+**Return**
+
+Returns version string for known types or else "n/a"
+
+