title: nvme_get_log_changed_ns_list(2)

summary: Retrieve namespace changed list

text:
# nvme_get_log_changed_ns_list(2)

## NAME
nvme_get_log_changed_ns_list - Retrieve namespace changed list

## SYNOPSIS
int nvme_get_log_changed_ns_list (int fd , bool rae , struct nvme_ns_list *ns_log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

ns_log

User address to store the log page

## DESCRIPTION
This log page describes namespaces attached to this controller that have changed since the last time the namespace was identified, been added, or deleted.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


package: libnvme-devel

title: nvme_get_log_cmd_effects(2)

summary: Retrieve nvme command effects log

text:
# nvme_get_log_cmd_effects(2)

## NAME
nvme_get_log_cmd_effects - Retrieve nvme command effects log

## SYNOPSIS
int nvme_get_log_cmd_effects (int fd , enum nvme_csi csi , struct nvme_cmd_effects_log *effects_log );

## ARGUMENTS
fd

File descriptor of nvme device

csi

Command Set Identifier

effects_log

User address to store the effects log

## DESCRIPTION
This log page describes the commands that the controller supports and the effects of those commands on the state of the NVM subsystem.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_create_telemetry_host(2)

summary: Create host telemetry log

text:
# nvme_get_log_create_telemetry_host(2)

## NAME
nvme_get_log_create_telemetry_host - Create host telemetry log

## SYNOPSIS
int nvme_get_log_create_telemetry_host (int fd , struct nvme_telemetry_log *log );

## ARGUMENTS
fd

File descriptor of nvme device

log

Userspace address of the log payload

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_device_self_test(2)

summary: Retrieve the device self test log

text:
# nvme_get_log_device_self_test(2)

## NAME
nvme_get_log_device_self_test - Retrieve the device self test log

## SYNOPSIS
int nvme_get_log_device_self_test (int fd , struct nvme_self_test_log *log );

## ARGUMENTS
fd

File descriptor of nvme device

log

Userspace address of the log payload

## DESCRIPTION
The log page indicates the status of an in progress self test and the percent complete of that operation, and the results of the previous 20 self-test operations.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_discovery(2)

summary: Retrieve Discovery log page

text:
# nvme_get_log_discovery(2)

## NAME
nvme_get_log_discovery - Retrieve Discovery log page

## SYNOPSIS
int nvme_get_log_discovery (int fd , bool rae , __u32 offset , __u32 len , void *log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

offset

Offset of this log to retrieve

len

The allocated size for this portion of the log

log

User address to store the discovery log

## DESCRIPTION
Supported only by fabrics discovery controllers, returning discovery records.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_endurance_group(2)

summary: Get Endurance Group log

text:
# nvme_get_log_endurance_group(2)

## NAME
nvme_get_log_endurance_group - Get Endurance Group log

## SYNOPSIS
int nvme_get_log_endurance_group (int fd , __u16 endgid , struct nvme_endurance_group_log *log );

## ARGUMENTS
fd

File descriptor of nvme device

endgid

Starting group identifier to return in the list

log

User address to store the endurance log

## DESCRIPTION
This log page indicates if an Endurance Group Event has occurred for a particular Endurance Group. If an Endurance Group Event has occurred, the details of the particular event are included in the Endurance Group Information log page for that Endurance Group. An asynchronous event is generated when an entry for an Endurance Group is newly added to this log page.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_endurance_grp_evt(2)

summary: Retrieve Rotational Media Information

text:
# nvme_get_log_endurance_grp_evt(2)

## NAME
nvme_get_log_endurance_grp_evt - Retrieve Rotational Media Information

## SYNOPSIS
int nvme_get_log_endurance_grp_evt (int fd , bool rae , __u32 offset , __u32 len , void *log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

offset

Offset to the start of the log page

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_error(2)

summary: Retrieve nvme error log

text:
# nvme_get_log_error(2)

## NAME
nvme_get_log_error - Retrieve nvme error log

## SYNOPSIS
int nvme_get_log_error (int fd , unsigned int nr_entries , bool rae , struct nvme_error_log_page *err_log );

## ARGUMENTS
fd

File descriptor of nvme device

nr_entries

Number of error log entries allocated

rae

Retain asynchronous events

err_log

Array of error logs of size 'entries'

## DESCRIPTION
This log page describes extended error information for a command that completed with error, or may report an error that is not specific to a particular command.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_fdp_configurations(2)

text:
# nvme_get_log_fdp_configurations(2)

## NAME
nvme_get_log_fdp_configurations - Get list of Flexible Data Placement configurations

## SYNOPSIS
int nvme_get_log_fdp_configurations (int fd , __u16 egid , __u32 offset , __u32 len , void *log );

## ARGUMENTS
fd

File descriptor of nvme device

egid

Endurance group identifier

offset

Offset into log page

len

Length (in bytes) of provided user buffer to hold the log data

log

Log page data buffer


title: nvme_get_log_fdp_events(2)

summary: Get Flexible Data Placement events

text:
# nvme_get_log_fdp_events(2)

## NAME
nvme_get_log_fdp_events - Get Flexible Data Placement events

## SYNOPSIS
int nvme_get_log_fdp_events (int fd , __u16 egid , bool host_events , __u32 offset , __u32 len , void *log );

## ARGUMENTS
fd

File descriptor of nvme device

egid

Endurance group identifier

host_events

Whether to report host or controller events

offset

Offset into log page

len

Length (in bytes) of provided user buffer to hold the log data

log

Log page data buffer


title: nvme_get_log_fdp_stats(2)

summary: Get Flexible Data Placement statistics

text:
# nvme_get_log_fdp_stats(2)

## NAME
nvme_get_log_fdp_stats - Get Flexible Data Placement statistics

## SYNOPSIS
int nvme_get_log_fdp_stats (int fd , __u16 egid , __u32 offset , __u32 len , void *log );

## ARGUMENTS
fd

File descriptor of nvme device

egid

Endurance group identifier

offset

Offset into log page

len

Length (in bytes) of provided user buffer to hold the log data

log

Log page data buffer


title: nvme_get_log_fid_supported_effects(2)

text:
# nvme_get_log_fid_supported_effects(2)

## NAME
nvme_get_log_fid_supported_effects - Retrieve Feature Identifiers Supported and Effects

## SYNOPSIS
int nvme_get_log_fid_supported_effects (int fd , bool rae , struct nvme_fid_supported_effects_log *log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

log

FID Supported and Effects data structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


title: nvme_get_log_fw_slot(2)

summary: Retrieves the controller firmware log

text:
# nvme_get_log_fw_slot(2)

## NAME
nvme_get_log_fw_slot - Retrieves the controller firmware log

## SYNOPSIS
int nvme_get_log_fw_slot (int fd , bool rae , struct nvme_firmware_slot *fw_log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

fw_log

User address to store the log page

## DESCRIPTION
This log page describes the firmware revision stored in each firmware slot supported. The firmware revision is indicated as an ASCII string. The log page also indicates the active slot number.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_lba_status(2)

summary: Retrieve LBA Status

text:
# nvme_get_log_lba_status(2)

## NAME
nvme_get_log_lba_status - Retrieve LBA Status

## SYNOPSIS
int nvme_get_log_lba_status (int fd , bool rae , __u64 offset , __u32 len , void *log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

offset

Offset to the start of the log page

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_media_unit_stat(2)

summary: Retrieve Media Unit Status

text:
# nvme_get_log_media_unit_stat(2)

## NAME
nvme_get_log_media_unit_stat - Retrieve Media Unit Status

## SYNOPSIS
int nvme_get_log_media_unit_stat (int fd , __u16 domid , struct nvme_media_unit_stat_log *mus );

## ARGUMENTS
fd

File descriptor of nvme device

domid

Domain Identifier selection, if supported

mus

User address to store the Media Unit statistics log

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


text:
# nvme_get_log_mi_cmd_supported_effects(2)

## NAME
nvme_get_log_mi_cmd_supported_effects - displays the MI Commands Supported by the controller

## SYNOPSIS
int nvme_get_log_mi_cmd_supported_effects (int fd , bool rae , struct nvme_mi_cmd_supported_effects_log *log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

log

MI Command Supported and Effects data structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


title: nvme_get_log_page(2)

summary: Get log page data

text:
# nvme_get_log_page(2)

## NAME
nvme_get_log_page - Get log page data

## SYNOPSIS
int nvme_get_log_page (int fd , __u32 xfer_len , struct nvme_get_log_args *args );

## ARGUMENTS
fd

File descriptor of nvme device

xfer_len

Max log transfer size per request to split the total.

args

struct nvme_get_log_args argument structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_persistent_event(2)

summary: Retrieve Persistent Event Log

text:
# nvme_get_log_persistent_event(2)

## NAME
nvme_get_log_persistent_event - Retrieve Persistent Event Log

## SYNOPSIS
int nvme_get_log_persistent_event (int fd , enum nvme_pevent_log_action action , __u32 size , void *pevent_log );

## ARGUMENTS
fd

File descriptor of nvme device

action

Action the controller should take during processing this command

size

Size of pevent_log

pevent_log

User address to store the persistent event log

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_predictable_lat_event(2)

text:
# nvme_get_log_predictable_lat_event(2)

## NAME
nvme_get_log_predictable_lat_event - Retrieve Predictable Latency Event Aggregate Log Page

## SYNOPSIS
int nvme_get_log_predictable_lat_event (int fd , bool rae , __u32 offset , __u32 len , void *log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

offset

Offset into the predictable latency event

len

Length of provided user buffer to hold the log data in bytes

log

User address for log page data

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_predictable_lat_nvmset(2)

summary: Predictable Latency Per NVM Set

text:
# nvme_get_log_predictable_lat_nvmset(2)

## NAME
nvme_get_log_predictable_lat_nvmset - Predictable Latency Per NVM Set

## SYNOPSIS
int nvme_get_log_predictable_lat_nvmset (int fd , __u16 nvmsetid , struct nvme_nvmset_predictable_lat_log *log );

## ARGUMENTS
fd

File descriptor of nvme device

nvmsetid

NVM set id

log

User address to store the predictable latency log

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Get reclaim unit handle usage

text:
# nvme_get_log_reclaim_unit_handle_usage(2)

## NAME
nvme_get_log_reclaim_unit_handle_usage - Get reclaim unit handle usage

## SYNOPSIS
int nvme_get_log_reclaim_unit_handle_usage (int fd , __u16 egid , __u32 offset , __u32 len , void *log );

## ARGUMENTS
fd

File descriptor of nvme device

egid

Endurance group identifier

offset

Offset into log page

len

Length (in bytes) of provided user buffer to hold the log data

log

Log page data buffer


title: nvme_get_log_reservation(2)

summary: Retrieve Reservation Notification

text:
# nvme_get_log_reservation(2)

## NAME
nvme_get_log_reservation - Retrieve Reservation Notification

## SYNOPSIS
int nvme_get_log_reservation (int fd , bool rae , struct nvme_resv_notification_log *log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

log

User address to store the reservation log

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


title: nvme_get_log_sanitize(2)

summary: Retrieve Sanitize Status

text:
# nvme_get_log_sanitize(2)

## NAME
nvme_get_log_sanitize - Retrieve Sanitize Status

## SYNOPSIS
int nvme_get_log_sanitize (int fd , bool rae , struct nvme_sanitize_log_page *log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

log

User address to store the sanitize log

## DESCRIPTION
The Sanitize Status log page reports sanitize operation time estimates and information about the most recent sanitize operation.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_smart(2)

summary: Retrieve nvme smart log

text:
# nvme_get_log_smart(2)

## NAME
nvme_get_log_smart - Retrieve nvme smart log

## SYNOPSIS
int nvme_get_log_smart (int fd , __u32 nsid , bool rae , struct nvme_smart_log *smart_log );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Optional namespace identifier

rae

Retain asynchronous events

smart_log

User address to store the smart log

## DESCRIPTION
This log page provides SMART and general health information. The information provided is over the life of the controller and is retained across power cycles. To request the controller log page, the namespace identifier specified is FFFFFFFFh. The controller may also support requesting the log page on a per namespace basis, as indicated by bit 0 of the LPA field in the Identify Controller data structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_support_cap_config_list(2)

text:
# nvme_get_log_support_cap_config_list(2)

## NAME
nvme_get_log_support_cap_config_list - Retrieve Supported Capacity Configuration List

## SYNOPSIS
int nvme_get_log_support_cap_config_list (int fd , __u16 domid , struct nvme_supported_cap_config_list_log *cap );

## ARGUMENTS
fd

File descriptor of nvme device

domid

Domain Identifier selection, if supported

cap

User address to store supported capabilities config list

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


title: nvme_get_log_supported_log_pages(2)

summary: Retrieve nmve supported log pages

text:
# nvme_get_log_supported_log_pages(2)

## NAME
nvme_get_log_supported_log_pages - Retrieve nmve supported log pages

## SYNOPSIS
int nvme_get_log_supported_log_pages (int fd , bool rae , struct nvme_supported_log_pages *log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

log

Array of LID supported and Effects data structures

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_telemetry_ctrl(2)

text:
# nvme_get_log_telemetry_ctrl(2)

## NAME
nvme_get_log_telemetry_ctrl - Get Telemetry Controller-Initiated log page

## SYNOPSIS
int nvme_get_log_telemetry_ctrl (int fd , bool rae , __u64 offset , __u32 len , void *log );

## ARGUMENTS
fd

File descriptor of nvme device

rae

Retain asynchronous events

offset

Offset into the telemetry data

len

Length of provided user buffer to hold the log data in bytes

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 enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_telemetry_host(2)

summary: Get Telemetry Host-Initiated log page

text:
# nvme_get_log_telemetry_host(2)

## NAME
nvme_get_log_telemetry_host - Get Telemetry Host-Initiated log page

## SYNOPSIS
int nvme_get_log_telemetry_host (int fd , __u64 offset , __u32 len , void *log );

## ARGUMENTS
fd

File descriptor of nvme device

offset

Offset into the telemetry data

len

Length of provided user buffer to hold the log data in bytes

log

User address for log page data

## DESCRIPTION
Retrieves the Telemetry Host-Initiated log page at the requested offset using the previously existing capture.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_log_zns_changed_zones(2)

text:
# nvme_get_log_zns_changed_zones(2)

## NAME
nvme_get_log_zns_changed_zones - Retrieve list of zones that have changed

## SYNOPSIS
int nvme_get_log_zns_changed_zones (int fd , __u32 nsid , bool rae , struct nvme_zns_changed_zone_log *log );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Namespace ID

rae

Retain asynchronous events

log

User address to store the changed zone log

## DESCRIPTION
The list of zones that have changed state due to an exceptional event.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_logical_block_size(2)

summary: Retrieve block size

text:
# nvme_get_logical_block_size(2)

## NAME
nvme_get_logical_block_size - Retrieve block size

## SYNOPSIS
int nvme_get_logical_block_size (int fd , __u32 nsid , int *blksize );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Namespace id

blksize

Pointer to where the block size will be set on success

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_new_host_telemetry(2)

summary: Get new host telemetry log

text:
# nvme_get_new_host_telemetry(2)

## NAME
nvme_get_new_host_telemetry - Get new host telemetry log

## SYNOPSIS
int nvme_get_new_host_telemetry (int fd , struct nvme_telemetry_log **log , enum nvme_telemetry_da da , size_t *size );

## ARGUMENTS
fd

File descriptor of nvme device

log

On success, set to the value of the allocated and retrieved log.

da

Log page data area, valid values: enum nvme_telemetry_da

size

Ptr to the telemetry log size, so it can be returned

## DESCRIPTION
The total size allocated can be calculated as: (nvme_telemetry_log da size + 1) * NVME_LOG_TELEM_BLOCK_SIZE.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_ns_attr(2)

summary: Read namespace sysfs attribute

text:
# nvme_get_ns_attr(2)

## NAME
nvme_get_ns_attr - Read namespace sysfs attribute

## SYNOPSIS
char * nvme_get_ns_attr (nvme_ns_t n , const char *attr );

## ARGUMENTS
n

nvme_ns_t object

attr

sysfs attribute name

## RETURN
String with the contents of attr or NULL in case of an empty value or in case of an error (indicated by non-zero errno code).


title: nvme_get_nsid(2)

text:
# nvme_get_nsid(2)

## NAME
nvme_get_nsid - Retrieve the NSID from a namespace file descriptor

## SYNOPSIS
int nvme_get_nsid (int fd , __u32 *nsid );

## ARGUMENTS
fd

File descriptor of nvme namespace

nsid

User pointer to namespace id

## DESCRIPTION
This should only be sent to namespace handles, not to controllers. The kernel's interface returns the nsid as the return value. This is unfortunate for many architectures that are incapable of allowing distinguishing a namespace id > 0x80000000 from a negative error number.

## RETURN
0 if nsid was set successfully or -1 with errno set otherwise.


title: nvme_get_path_attr(2)

summary: Read path sysfs attribute

text:
# nvme_get_path_attr(2)

## NAME
nvme_get_path_attr - Read path sysfs attribute

## SYNOPSIS
char * nvme_get_path_attr (nvme_path_t p , const char *attr );

## ARGUMENTS
p

nvme_path_t object

attr

sysfs attribute name

## RETURN
String with the contents of attr or NULL in case of an empty value or in case of an error (indicated by non-zero errno code).


title: nvme_get_property(2)

summary: Get a controller property

text:
# nvme_get_property(2)

## NAME
nvme_get_property - Get a controller property

## SYNOPSIS
int nvme_get_property (struct nvme_get_property_args *args );

## ARGUMENTS
args

struct 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.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_get_subsys_attr(2)

summary: Read subsystem sysfs attribute

text:
# nvme_get_subsys_attr(2)

## NAME
nvme_get_subsys_attr - Read subsystem sysfs attribute

## SYNOPSIS
char * nvme_get_subsys_attr (nvme_subsystem_t s , const char *attr );

## ARGUMENTS
s

nvme_subsystem_t object

attr

sysfs attribute name

## RETURN
String with the contents of attr or NULL in case of an empty value or in case of an error (indicated by non-zero errno code).


title: nvme_hmac_alg(2)

summary: HMAC algorithm

text:
# nvme_hmac_alg(2)

## NAME
enum nvme_hmac_alg - HMAC algorithm

## SYNOPSIS
enum nvme_hmac_alg {

NVME_HMAC_ALG_NONE ,

NVME_HMAC_ALG_SHA2_256 ,

NVME_HMAC_ALG_SHA2_384 ,

NVME_HMAC_ALG_SHA2_512

};

## Constants
NVME_HMAC_ALG_NONE

No HMAC algorithm

NVME_HMAC_ALG_SHA2_256

SHA2-256

NVME_HMAC_ALG_SHA2_384

SHA2-384

NVME_HMAC_ALG_SHA2_512

SHA2-512


title: nvme_host_behavior_support(2)

summary: Enable Advanced Command

text:
# nvme_host_behavior_support(2)

## NAME
enum nvme_host_behavior_support - Enable Advanced Command

## SYNOPSIS
enum nvme_host_behavior_support {

NVME_ENABLE_ACRE

};

## Constants
NVME_ENABLE_ACRE

Enable Advanced Command Retry Enable


title: nvme_host_get_dhchap_key(2)

summary: Return host key

text:
# nvme_host_get_dhchap_key(2)

## NAME
nvme_host_get_dhchap_key - Return host key

## SYNOPSIS
const char * nvme_host_get_dhchap_key (nvme_host_t h );

## ARGUMENTS
h

Host for which the key should be returned

## RETURN
DH-HMAC-CHAP host key or NULL if not set


title: nvme_host_get_hostid(2)

summary: Host ID of an nvme_host_t object

text:
# nvme_host_get_hostid(2)

## NAME
nvme_host_get_hostid - Host ID of an nvme_host_t object

## SYNOPSIS
const char * nvme_host_get_hostid (nvme_host_t h );

## ARGUMENTS
h

nvme_host_t object

## RETURN
Host ID of h


title: nvme_host_get_hostnqn(2)

summary: Host NQN of an nvme_host_t object

text:
# nvme_host_get_hostnqn(2)

## NAME
nvme_host_get_hostnqn - Host NQN of an nvme_host_t object

## SYNOPSIS
const char * nvme_host_get_hostnqn (nvme_host_t h );

## ARGUMENTS
h

nvme_host_t object

## RETURN
Host NQN of h


title: nvme_host_get_hostsymname(2)

summary: Get the host's symbolic name

text:
# nvme_host_get_hostsymname(2)

## NAME
nvme_host_get_hostsymname - Get the host's symbolic name

## SYNOPSIS
const char * nvme_host_get_hostsymname (nvme_host_t h );

## ARGUMENTS
h

Host for which the symbolic name should be returned.

## RETURN
The symbolic name or NULL if a symbolic name hasn't been configure.


title: nvme_host_get_root(2)

summary: Returns nvme_root_t object

text:
# nvme_host_get_root(2)

## NAME
nvme_host_get_root - Returns nvme_root_t object

## SYNOPSIS
nvme_root_t nvme_host_get_root (nvme_host_t h );

## ARGUMENTS
h

nvme_host_t object

## RETURN
nvme_root_t object from h


title: nvme_host_is_pdc_enabled(2)

text:
# nvme_host_is_pdc_enabled(2)

## NAME
nvme_host_is_pdc_enabled - Is Persistenct Discovery Controller enabled

## SYNOPSIS
bool nvme_host_is_pdc_enabled (nvme_host_t h , bool fallback );

## ARGUMENTS
h

Host which to check if PDC is enabled

fallback

The fallback default value of the flag when nvme_host_set_pdc_enabled has not be used to set the flag.

## RETURN
true if PDC is enabled for h, else false


title: nvme_host_mem_buf_attrs(2)

text:
# nvme_host_mem_buf_attrs(2)

## NAME
struct nvme_host_mem_buf_attrs - Host Memory Buffer - Attributes Data Structure

## SYNOPSIS
struct nvme_host_mem_buf_attrs {

__le32 hsize;

__le32 hmdlal;

__le32 hmdlau;

__le32 hmdlec;

__u8 rsvd16[4080];

};

## Members
hsize

Host Memory Buffer Size

hmdlal

Host Memory Descriptor List Lower Address

hmdlau

Host Memory Descriptor List Upper Address

hmdlec

Host Memory Descriptor List Entry Count

rsvd16

Reserved


title: nvme_host_metadata(2)

summary: Host Metadata Data Structure

text:
# nvme_host_metadata(2)

## NAME
struct nvme_host_metadata - Host Metadata Data Structure

## SYNOPSIS
struct nvme_host_metadata {

__u8 ndesc;

__u8 rsvd1;

union {

struct nvme_metadata_element_desc descs[0];

__u8 descs_buf[4094];

};

};

## Members
ndesc

Number of metadata element descriptors

rsvd1

Reserved

{unnamed_union}

anonymous

descs

Metadata element descriptors

descs_buf

Metadata element descriptor buffer


title: nvme_host_set_dhchap_key(2)

summary: set host key

text:
# nvme_host_set_dhchap_key(2)

## NAME
nvme_host_set_dhchap_key - set host key

## SYNOPSIS
void nvme_host_set_dhchap_key (nvme_host_t h , const char *key );

## ARGUMENTS
h

Host for which the key should be set

key

DH-HMAC-CHAP Key to set or NULL to clear existing key


title: nvme_host_set_hostsymname(2)

summary: Set the host's symbolic name

text:
# nvme_host_set_hostsymname(2)

## NAME
nvme_host_set_hostsymname - Set the host's symbolic name

## SYNOPSIS
void nvme_host_set_hostsymname (nvme_host_t h , const char *hostsymname );

## ARGUMENTS
h

Host for which the symbolic name should be set.

hostsymname

Symbolic name


title: nvme_host_set_pdc_enabled(2)

text:
# nvme_host_set_pdc_enabled(2)

## NAME
nvme_host_set_pdc_enabled - Set Persistent Discovery Controller flag

## SYNOPSIS
void nvme_host_set_pdc_enabled (nvme_host_t h , bool enabled );

## ARGUMENTS
h

Host for which the falg should be set

enabled

The bool to set the enabled flag

## DESCRIPTION
When nvme_host_set_pdc_enabled is not used to set the PDC flag, nvme_host_is_pdc_enabled will return the default value which was passed into the function and not the undefined flag value.


title: nvme_id_ctrl(2)

summary: Identify Controller data structure

text:
# nvme_id_ctrl(2)

## NAME
struct nvme_id_ctrl - Identify Controller data structure

## SYNOPSIS
struct nvme_id_ctrl {

__le16 vid;

__le16 ssvid;

char sn[20];

char mn[40];

char fr[8];

__u8 rab;

__u8 ieee[3];

__u8 cmic;

__u8 mdts;

__le16 cntlid;

__le32 ver;

__le32 rtd3r;

__le32 rtd3e;

__le32 oaes;

__le32 ctratt;

__le16 rrls;

__u8 rsvd102[9];

__u8 cntrltype;

__u8 fguid[16];

__le16 crdt1;

__le16 crdt2;

__le16 crdt3;

__u8 rsvd134[119];

__u8 nvmsr;

__u8 vwci;

__u8 mec;

__le16 oacs;

__u8 acl;

__u8 aerl;

__u8 frmw;

__u8 lpa;

__u8 elpe;

__u8 npss;

__u8 avscc;

__u8 apsta;

__le16 wctemp;

__le16 cctemp;

__le16 mtfa;

__le32 hmpre;

__le32 hmmin;

__u8 tnvmcap[16];

__u8 unvmcap[16];

__le32 rpmbs;

__le16 edstt;

__u8 dsto;

__u8 fwug;

__le16 kas;

__le16 hctma;

__le16 mntmt;

__le16 mxtmt;

__le32 sanicap;

__le32 hmminds;

__le16 hmmaxd;

__le16 nsetidmax;

__le16 endgidmax;

__u8 anatt;

__u8 anacap;

__le32 anagrpmax;

__le32 nanagrpid;

__le32 pels;

__le16 domainid;

__u8 rsvd358[10];

__u8 megcap[16];

__u8 rsvd384[128];

__u8 sqes;

__u8 cqes;

__le16 maxcmd;

__le32 nn;

__le16 oncs;

__le16 fuses;

__u8 fna;

__u8 vwc;

__le16 awun;

__le16 awupf;

__u8 icsvscc;

__u8 nwpc;

__le16 acwu;

__le16 ocfs;

__le32 sgls;

__le32 mnan;

__u8 maxdna[16];

__le32 maxcna;

__u8 rsvd564[204];

char subnqn[NVME_NQN_LENGTH];

__u8 rsvd1024[768];

__le32 ioccsz;

__le32 iorcsz;

__le16 icdoff;

__u8 fcatt;

__u8 msdbd;

__le16 ofcs;

__u8 dctype;

__u8 rsvd1807[241];

struct nvme_id_psd psd[32];

__u8 vs[1024];

};

## Members
vid

PCI Vendor ID, the company vendor identifier that is assigned by the PCI SIG.

ssvid

PCI Subsystem Vendor ID, the company vendor identifier that is assigned by the PCI SIG for the subsystem.

sn

Serial Number in ASCII

mn

Model Number in ASCII

fr

Firmware Revision in ASCII, the currently active firmware revision for the NVM subsystem

rab

Recommended Arbitration Burst, reported as a power of two

ieee

IEEE assigned Organization Unique Identifier

cmic

Controller Multipath IO and Namespace Sharing Capabilities of the controller and NVM subsystem. See enum nvme_id_ctrl_cmic.

mdts

Max Data Transfer Size is the largest data transfer size. The host should not submit a command that exceeds this maximum data transfer size. The value is in units of the minimum memory page size (CAP.MPSMIN) and is reported as a power of two

cntlid

Controller ID, the NVM subsystem unique controller identifier associated with the controller.

ver

Version, this field contains the value reported in the Version register, or property (see enum nvme_registers NVME_REG_VS).

rtd3r

RTD3 Resume Latency, the expected latency in microseconds to resume from Runtime D3

rtd3e

RTD3 Exit Latency, the typical latency in microseconds to enter Runtime D3.

oaes

Optional Async Events Supported, see enum nvme_id_ctrl_oaes.

ctratt

Controller Attributes, see enum nvme_id_ctrl_ctratt.

rrls

Read Recovery Levels. If a bit is set, then the corresponding Read Recovery Level is supported. If a bit is cleared, then the corresponding Read Recovery Level is not supported.

rsvd102

Reserved

cntrltype

Controller Type, see enum nvme_id_ctrl_cntrltype

fguid

FRU GUID, a 128-bit value that is globally unique for a given Field Replaceable Unit

crdt1

Controller Retry Delay time in 100 millisecond units if CQE CRD field is 1

crdt2

Controller Retry Delay time in 100 millisecond units if CQE CRD field is 2

crdt3

Controller Retry Delay time in 100 millisecond units if CQE CRD field is 3

rsvd134

Reserved

nvmsr

NVM Subsystem Report, see enum nvme_id_ctrl_nvmsr

vwci

VPD Write Cycle Information, see enum nvme_id_ctrl_vwci

mec

Management Endpoint Capabilities, see enum nvme_id_ctrl_mec

oacs

Optional Admin Command Support,the optional Admin commands and features supported by the controller, see enum nvme_id_ctrl_oacs.

acl

Abort Command Limit, the maximum number of concurrently executing Abort commands supported by the controller. This is a 0's based value.

aerl

Async Event Request Limit, the maximum number of concurrently outstanding Asynchronous Event Request commands supported by the controller This is a 0's based value.

frmw

Firmware Updates indicates capabilities regarding firmware updates. See enum nvme_id_ctrl_frmw.

lpa

Log Page Attributes, see enum nvme_id_ctrl_lpa.

elpe

Error Log Page Entries, the maximum number of Error Information log entries that are stored by the controller. This field is a 0's based value.

npss

Number of Power States Supported, the number of NVM Express power states supported by the controller, indicating the number of valid entries in struct nvme_id_ctrl.psd. This is a 0's based value.

avscc

Admin Vendor Specific Command Configuration, see enum nvme_id_ctrl_avscc.

apsta

Autonomous Power State Transition Attributes, see enum nvme_id_ctrl_apsta.

wctemp

Warning Composite Temperature Threshold indicates the minimum Composite Temperature field value (see struct nvme_smart_log.critical_comp_time) that indicates an overheating condition during which controller operation continues.

cctemp

Critical Composite Temperature Threshold, field indicates the minimum Composite Temperature field value (see struct nvme_smart_log.critical_comp_time) that indicates a critical overheating condition.

mtfa

Maximum Time for Firmware Activation indicates the maximum time the controller temporarily stops processing commands to activate the firmware image, specified in 100 millisecond units. This field is always valid if the controller supports firmware activation without a reset.

hmpre

Host Memory Buffer Preferred Size indicates the preferred size that the host is requested to allocate for the Host Memory Buffer feature in 4 KiB units.

hmmin

Host Memory Buffer Minimum Size indicates the minimum size that the host is requested to allocate for the Host Memory Buffer feature in 4 KiB units.

tnvmcap

Total NVM Capacity, the total NVM capacity in the NVM subsystem. The value is in bytes.

unvmcap

Unallocated NVM Capacity, the unallocated NVM capacity in the NVM subsystem. The value is in bytes.

rpmbs

Replay Protected Memory Block Support, see enum nvme_id_ctrl_rpmbs.

edstt

Extended Device Self-test Time, if Device Self-test command is supported (see struct nvme_id_ctrl.oacs, NVME_CTRL_OACS_SELF_TEST), then this field indicates the nominal amount of time in one minute units that the controller takes to complete an extended device self-test operation when in power state 0.

dsto

Device Self-test Options, see enum nvme_id_ctrl_dsto.

fwug

Firmware Update Granularity indicates the granularity and alignment requirement of the firmware image being updated by the Firmware Image Download command. The value is reported in 4 KiB units. A value of 0h indicates no information on granularity is provided. A value of FFh indicates no restriction

kas

Keep Alive Support indicates the granularity of the Keep Alive Timer in 100 millisecond units.

hctma

Host Controlled Thermal Management Attributes, see enum nvme_id_ctrl_hctm.

mntmt

Minimum Thermal Management Temperature indicates the minimum temperature, in degrees Kelvin, that the host may request in the Thermal Management Temperature 1 field and Thermal Management Temperature 2 field of a Set Features command with the Feature Identifier field set to NVME_FEAT_FID_HCTM.

mxtmt

Maximum Thermal Management Temperature indicates the maximum temperature, in degrees Kelvin, that the host may request in the Thermal Management Temperature 1 field and Thermal Management Temperature 2 field of the Set Features command with the Feature Identifier set to NVME_FEAT_FID_HCTM.

sanicap

Sanitize Capabilities, see enum nvme_id_ctrl_sanicap

hmminds

Host Memory Buffer Minimum Descriptor Entry Size indicates the minimum usable size of a Host Memory Buffer Descriptor Entry in 4 KiB units.

hmmaxd

Host Memory Maximum Descriptors Entries indicates the number of usable Host Memory Buffer Descriptor Entries.

nsetidmax

NVM Set Identifier Maximum, defines the maximum value of a valid NVM Set Identifier for any controller in the NVM subsystem.

endgidmax

Endurance Group Identifier Maximum, defines the maximum value of a valid Endurance Group Identifier for any controller in the NVM subsystem.

anatt

ANA Transition Time indicates the maximum amount of time, in seconds, for a transition between ANA states or the maximum amount of time, in seconds, that the controller reports the ANA change state.

anacap

Asymmetric Namespace Access Capabilities, see enum nvme_id_ctrl_anacap.

anagrpmax

ANA Group Identifier Maximum indicates the maximum value of a valid ANA Group Identifier for any controller in the NVM subsystem.

nanagrpid

Number of ANA Group Identifiers indicates the number of ANA groups supported by this controller.

pels

Persistent Event Log Size indicates the maximum reportable size for the Persistent Event Log.

domainid

Domain Identifier indicates the identifier of the domain that contains this controller.

rsvd358

Reserved

megcap

Max Endurance Group Capacity indicates the maximum capacity of a single Endurance Group.

rsvd384

Reserved

sqes

Submission Queue Entry Size, see enum nvme_id_ctrl_sqes.

cqes

Completion Queue Entry Size, see enum nvme_id_ctrl_cqes.

maxcmd

Maximum Outstanding Commands indicates the maximum number of commands that the controller processes at one time for a particular queue.

nn

Number of Namespaces indicates the maximum value of a valid nsid for the NVM subsystem. If the MNAN (struct nvme_id_ctrl.mnan field is cleared to 0h, then this field also indicates the maximum number of namespaces supported by the NVM subsystem.

oncs

Optional NVM Command Support, see enum nvme_id_ctrl_oncs.

fuses

Fused Operation Support, see enum nvme_id_ctrl_fuses.

fna

Format NVM Attributes, see enum nvme_id_ctrl_fna.

vwc

Volatile Write Cache, see enum nvme_id_ctrl_vwc.

awun

Atomic Write Unit Normal indicates the size of the write operation guaranteed to be written atomically to the NVM across all namespaces with any supported namespace format during normal operation. This field is specified in logical blocks and is a 0's based value.

awupf

Atomic Write Unit Power Fail indicates the size of the write operation guaranteed to be written atomically to the NVM across all namespaces with any supported namespace format during a power fail or error condition. This field is specified in logical blocks and is a 0’s based value.

icsvscc

NVM Vendor Specific Command Configuration, see enum nvme_id_ctrl_nvscc.

nwpc

Namespace Write Protection Capabilities, see enum nvme_id_ctrl_nwpc.

acwu

Atomic Compare & Write Unit indicates the size of the write operation guaranteed to be written atomically to the NVM across all namespaces with any supported namespace format for a Compare and Write fused operation. This field is specified in logical blocks and is a 0’s based value.

ocfs

Optional Copy Formats Supported, each bit n means controller supports Copy Format n.

sgls

SGL Support, see enum nvme_id_ctrl_sgls

mnan

Maximum Number of Allowed Namespaces indicates the maximum number of namespaces supported by the NVM subsystem.

maxdna

Maximum Domain Namespace Attachments indicates the maximum of the sum of the number of namespaces attached to each I/O controller in the Domain.

maxcna

Maximum I/O Controller Namespace Attachments indicates the maximum number of namespaces that are allowed to be attached to this I/O controller.

rsvd564

Reserved

subnqn

NVM Subsystem NVMe Qualified Name, UTF-8 null terminated string

rsvd1024

Reserved

ioccsz

I/O Queue Command Capsule Supported Size, defines the maximum I/O command capsule size in 16 byte units.

iorcsz

I/O Queue Response Capsule Supported Size, defines the maximum I/O response capsule size in 16 byte units.

icdoff

In Capsule Data Offset, defines the offset where data starts within a capsule. This value is applicable to I/O Queues only.

fcatt

Fabrics Controller Attributes, see enum nvme_id_ctrl_fcatt.

msdbd

Maximum SGL Data Block Descriptors indicates the maximum number of SGL Data Block or Keyed SGL Data Block descriptors that a host is allowed to place in a capsule. A value of 0h indicates no limit.

ofcs

Optional Fabric Commands Support, see enum nvme_id_ctrl_ofcs.

dctype

Discovery Controller Type (DCTYPE). This field indicates what type of Discovery controller the controller is (see enum nvme_id_ctrl_dctype)

rsvd1807

Reserved

psd

Power State Descriptors, see struct nvme_id_psd.

vs

Vendor Specific


title: nvme_id_ctrl_anacap(2)

text:
# nvme_id_ctrl_anacap(2)

## NAME
enum nvme_id_ctrl_anacap - This field indicates the capabilities associated with Asymmetric Namespace Access Reporting.

## SYNOPSIS
enum nvme_id_ctrl_anacap {

NVME_CTRL_ANACAP_OPT ,

NVME_CTRL_ANACAP_NON_OPT ,

NVME_CTRL_ANACAP_INACCESSIBLE ,

NVME_CTRL_ANACAP_PERSISTENT_LOSS ,

NVME_CTRL_ANACAP_CHANGE ,

NVME_CTRL_ANACAP_GRPID_NO_CHG ,

NVME_CTRL_ANACAP_GRPID_MGMT

};

## Constants
NVME_CTRL_ANACAP_OPT

If set, then the controller is able to report ANA Optimized state.

NVME_CTRL_ANACAP_NON_OPT

If set, then the controller is able to report ANA Non-Optimized state.

NVME_CTRL_ANACAP_INACCESSIBLE

If set, then the controller is able to report ANA Inaccessible state.

NVME_CTRL_ANACAP_PERSISTENT_LOSS

If set, then the controller is able to report ANA Persistent Loss state.

NVME_CTRL_ANACAP_CHANGE

If set, then the controller is able to report ANA Change state.

NVME_CTRL_ANACAP_GRPID_NO_CHG

If set, then the ANAGRPID field in the Identify Namespace data structure (struct nvme_id_ns.anagrpid), does not change while the namespace is attached to any controller.

NVME_CTRL_ANACAP_GRPID_MGMT

If set, then the controller supports a non-zero value in the ANAGRPID field of the Namespace Management command.


title: nvme_id_ctrl_apsta(2)

text:
# nvme_id_ctrl_apsta(2)

## NAME
enum nvme_id_ctrl_apsta - Flags indicating the attributes of the autonomous power state transition feature.

## SYNOPSIS
enum nvme_id_ctrl_apsta {

NVME_CTRL_APSTA_APST

};

## Constants
NVME_CTRL_APSTA_APST

If set, then the controller supports autonomous power state transitions.


title: nvme_id_ctrl_avscc(2)

text:
# nvme_id_ctrl_avscc(2)

## NAME
enum nvme_id_ctrl_avscc - Flags indicating the configuration settings for Admin Vendor Specific command handling.

## SYNOPSIS
enum nvme_id_ctrl_avscc {

NVME_CTRL_AVSCC_AVS

};

## Constants
NVME_CTRL_AVSCC_AVS

If set, all Admin Vendor Specific Commands use the optional vendor specific command format with NDT and NDM fields.


title: nvme_id_ctrl_cmic(2)

text:
# nvme_id_ctrl_cmic(2)

## NAME
enum nvme_id_ctrl_cmic - Controller Multipath IO and Namespace Sharing Capabilities of the controller and NVM subsystem.

## SYNOPSIS
enum nvme_id_ctrl_cmic {

NVME_CTRL_CMIC_MULTI_PORT ,

NVME_CTRL_CMIC_MULTI_CTRL ,

NVME_CTRL_CMIC_MULTI_SRIOV ,

NVME_CTRL_CMIC_MULTI_ANA_REPORTING

};

## Constants
NVME_CTRL_CMIC_MULTI_PORT

If set, then the NVM subsystem may contain more than one NVM subsystem port, otherwise the NVM subsystem contains only a single NVM subsystem port.

NVME_CTRL_CMIC_MULTI_CTRL

If set, then the NVM subsystem may contain two or more controllers, otherwise the NVM subsystem contains only a single controller. An NVM subsystem that contains multiple controllers may be used by multiple hosts, or may provide multiple paths for a single host.

NVME_CTRL_CMIC_MULTI_SRIOV

If set, then the controller is associated with an SR-IOV Virtual Function, otherwise it is associated with a PCI Function or a Fabrics connection.

NVME_CTRL_CMIC_MULTI_ANA_REPORTING

If set, then the NVM subsystem supports Asymmetric Namespace Access Reporting.


title: nvme_id_ctrl_cntrltype(2)

summary: Controller types

text:
# nvme_id_ctrl_cntrltype(2)

## NAME
enum nvme_id_ctrl_cntrltype - Controller types

## SYNOPSIS
enum nvme_id_ctrl_cntrltype {

NVME_CTRL_CNTRLTYPE_IO ,

NVME_CTRL_CNTRLTYPE_DISCOVERY ,

NVME_CTRL_CNTRLTYPE_ADMIN

};

## Constants
NVME_CTRL_CNTRLTYPE_IO

NVM I/O controller

NVME_CTRL_CNTRLTYPE_DISCOVERY

Discovery controller

NVME_CTRL_CNTRLTYPE_ADMIN

Admin controller


title: nvme_id_ctrl_cqes(2)

text:
# nvme_id_ctrl_cqes(2)

## NAME
enum nvme_id_ctrl_cqes - Defines the required and maximum Completion Queue entry size when using the NVM Command Set.

## SYNOPSIS
enum nvme_id_ctrl_cqes {

NVME_CTRL_CQES_MIN ,

NVME_CTRL_CQES_MAX

};

## Constants
NVME_CTRL_CQES_MIN

Mask to get the value of the required Completion Queue Entry size when using the NVM Command Set.

NVME_CTRL_CQES_MAX

Mask to get the value of the maximum Completion Queue entry size when using the NVM Command Set.


title: nvme_id_ctrl_ctratt(2)

summary: Controller attributes

text:
# nvme_id_ctrl_ctratt(2)

## NAME
enum nvme_id_ctrl_ctratt - Controller attributes

## SYNOPSIS
enum nvme_id_ctrl_ctratt {

NVME_CTRL_CTRATT_128_ID ,

NVME_CTRL_CTRATT_NON_OP_PSP ,

NVME_CTRL_CTRATT_NVM_SETS ,

NVME_CTRL_CTRATT_READ_RECV_LVLS ,

NVME_CTRL_CTRATT_ENDURANCE_GROUPS ,

NVME_CTRL_CTRATT_PREDICTABLE_LAT ,

NVME_CTRL_CTRATT_TBKAS ,

NVME_CTRL_CTRATT_NAMESPACE_GRANULARITY ,

NVME_CTRL_CTRATT_SQ_ASSOCIATIONS ,

NVME_CTRL_CTRATT_UUID_LIST ,

NVME_CTRL_CTRATT_MDS ,

NVME_CTRL_CTRATT_FIXED_CAP ,

NVME_CTRL_CTRATT_VARIABLE_CAP ,

NVME_CTRL_CTRATT_DEL_ENDURANCE_GROUPS ,

NVME_CTRL_CTRATT_DEL_NVM_SETS ,

NVME_CTRL_CTRATT_ELBAS ,

NVME_CTRL_CTRATT_FDPS

};

## Constants
NVME_CTRL_CTRATT_128_ID

128-bit Host Identifier supported

NVME_CTRL_CTRATT_NON_OP_PSP

Non-Operational Poser State Permissive Mode supported

NVME_CTRL_CTRATT_NVM_SETS

NVM Sets supported

NVME_CTRL_CTRATT_READ_RECV_LVLS

Read Recovery Levels supported

NVME_CTRL_CTRATT_ENDURANCE_GROUPS

Endurance Groups supported

NVME_CTRL_CTRATT_PREDICTABLE_LAT

Predictable Latency Mode supported

NVME_CTRL_CTRATT_TBKAS

Traffic Based Keep Alive Support

NVME_CTRL_CTRATT_NAMESPACE_GRANULARITY

Namespace Granularity reporting supported

NVME_CTRL_CTRATT_SQ_ASSOCIATIONS

SQ Associations supported

NVME_CTRL_CTRATT_UUID_LIST

UUID List reporting supported

NVME_CTRL_CTRATT_MDS

Multi-Domain Subsystem supported

NVME_CTRL_CTRATT_FIXED_CAP

Fixed Capacity Management supported

NVME_CTRL_CTRATT_VARIABLE_CAP

Variable Capacity Management supported

NVME_CTRL_CTRATT_DEL_ENDURANCE_GROUPS

Delete Endurance Groups supported

NVME_CTRL_CTRATT_DEL_NVM_SETS

Delete NVM Sets supported

NVME_CTRL_CTRATT_ELBAS

Extended LBA Formats supported

NVME_CTRL_CTRATT_FDPS

Flexible Data Placement supported


title: nvme_id_ctrl_dctype(2)

summary: Discovery Controller types

text:
# nvme_id_ctrl_dctype(2)

## NAME
enum nvme_id_ctrl_dctype - Discovery Controller types

## SYNOPSIS
enum nvme_id_ctrl_dctype {

NVME_CTRL_DCTYPE_NOT_REPORTED ,

NVME_CTRL_DCTYPE_DDC ,

NVME_CTRL_DCTYPE_CDC

};

## Constants
NVME_CTRL_DCTYPE_NOT_REPORTED

Not reported (I/O, Admin, and pre-TP8010)

NVME_CTRL_DCTYPE_DDC

Direct Discovery controller

NVME_CTRL_DCTYPE_CDC

Central Discovery controller


title: nvme_id_ctrl_dsto(2)

text:
# nvme_id_ctrl_dsto(2)

## NAME
enum nvme_id_ctrl_dsto - Flags indicating the optional Device Self-test command or operation behaviors supported by the controller or NVM subsystem.

## SYNOPSIS
enum nvme_id_ctrl_dsto {

NVME_CTRL_DSTO_ONE_DST

};

## Constants
NVME_CTRL_DSTO_ONE_DST

If set, then the NVM subsystem supports only one device self-test operation in progress at a time.


title: nvme_id_ctrl_fcatt(2)

text:
# nvme_id_ctrl_fcatt(2)

## NAME
enum nvme_id_ctrl_fcatt - This field indicates attributes of the controller that are specific to NVMe over Fabrics.

## SYNOPSIS
enum nvme_id_ctrl_fcatt {

NVME_CTRL_FCATT_DYNAMIC

};

## Constants
NVME_CTRL_FCATT_DYNAMIC

If cleared, then the NVM subsystem uses a dynamic controller model. If set, then the NVM subsystem uses a static controller model.


title: nvme_id_ctrl_fna(2)

text:
# nvme_id_ctrl_fna(2)

## NAME
enum nvme_id_ctrl_fna - This field indicates attributes for the Format NVM command.

## SYNOPSIS
enum nvme_id_ctrl_fna {

NVME_CTRL_FNA_FMT_ALL_NAMESPACES ,

NVME_CTRL_FNA_SEC_ALL_NAMESPACES ,

NVME_CTRL_FNA_CRYPTO_ERASE ,

NVME_CTRL_FNA_NSID_FFFFFFFF

};

## Constants
NVME_CTRL_FNA_FMT_ALL_NAMESPACES

If set, then all namespaces in an NVM subsystem shall be configured with the same attributes and a format (excluding secure erase) of any namespace results in a format of all namespaces in an NVM subsystem. If cleared, then the controller supports format on a per namespace basis.

NVME_CTRL_FNA_SEC_ALL_NAMESPACES

If set, then any secure erase performed as part of a format operation results in a secure erase of all namespaces in the NVM subsystem. If cleared, then any secure erase performed as part of a format results in a secure erase of the particular namespace specified.

NVME_CTRL_FNA_CRYPTO_ERASE

If set, then cryptographic erase is 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.


title: nvme_id_ctrl_frmw(2)

text:
# nvme_id_ctrl_frmw(2)

## NAME
enum nvme_id_ctrl_frmw - Flags and values indicates capabilities regarding firmware updates from &struct nvme_id_ctrl.frmw.

## SYNOPSIS
enum nvme_id_ctrl_frmw {

NVME_CTRL_FRMW_1ST_RO ,

NVME_CTRL_FRMW_NR_SLOTS ,

NVME_CTRL_FRMW_FW_ACT_NO_RESET ,

NVME_CTRL_FRMW_MP_UP_DETECTION

};

## Constants
NVME_CTRL_FRMW_1ST_RO

If set, the first firmware slot is readonly

NVME_CTRL_FRMW_NR_SLOTS

Mask to get the value of the number of firmware slots that the controller supports.

NVME_CTRL_FRMW_FW_ACT_NO_RESET

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.


title: nvme_id_ctrl_fuses(2)

text:
# nvme_id_ctrl_fuses(2)

## NAME
enum nvme_id_ctrl_fuses - This field indicates the fused operations that the controller supports.

## SYNOPSIS
enum nvme_id_ctrl_fuses {

NVME_CTRL_FUSES_COMPARE_AND_WRITE

};

## Constants
NVME_CTRL_FUSES_COMPARE_AND_WRITE

If set, then the controller supports the Compare and Write fused operation.


title: nvme_id_ctrl_hctm(2)

text:
# nvme_id_ctrl_hctm(2)

## NAME
enum nvme_id_ctrl_hctm - Flags indicate the attributes of the host controlled thermal management feature

## SYNOPSIS
enum nvme_id_ctrl_hctm {

NVME_CTRL_HCTMA_HCTM

};

## Constants
NVME_CTRL_HCTMA_HCTM

then the controller supports host controlled thermal management, and the Set Features command and Get Features command with the Feature Identifier field set to NVME_FEAT_FID_HCTM.


title: nvme_id_ctrl_lpa(2)

text:
# nvme_id_ctrl_lpa(2)

## NAME
enum nvme_id_ctrl_lpa - Flags indicating optional attributes for log pages that are accessed via the Get Log Page command.

## SYNOPSIS
enum nvme_id_ctrl_lpa {

NVME_CTRL_LPA_SMART_PER_NS ,

NVME_CTRL_LPA_CMD_EFFECTS ,

NVME_CTRL_LPA_EXTENDED ,

NVME_CTRL_LPA_TELEMETRY ,

NVME_CTRL_LPA_PERSETENT_EVENT ,

NVME_CTRL_LPA_LI0_LI5_LI12_LI13 ,

NVME_CTRL_LPA_DA4_TELEMETRY

};

## 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.


title: nvme_id_ctrl_mec(2)

text:
# nvme_id_ctrl_mec(2)

## NAME
enum nvme_id_ctrl_mec - Flags indicating the capabilities of the Management Endpoint in the Controller, &struct nvme_id_ctrl.mec.

## SYNOPSIS
enum nvme_id_ctrl_mec {

NVME_CTRL_MEC_SMBUSME ,

NVME_CTRL_MEC_PCIEME

};

## Constants
NVME_CTRL_MEC_SMBUSME

If set, then the NVM Subsystem contains a Management Endpoint on an SMBus/I2C port.

NVME_CTRL_MEC_PCIEME

If set, then the NVM Subsystem contains a Management Endpoint on a PCIe port.


title: nvme_id_ctrl_nvm(2)

text:
# nvme_id_ctrl_nvm(2)

## NAME
struct nvme_id_ctrl_nvm - I/O Command Set Specific Identify Controller data structure

## SYNOPSIS
struct nvme_id_ctrl_nvm {

__u8 vsl;

__u8 wzsl;

__u8 wusl;

__u8 dmrl;

__le32 dmrsl;

__le64 dmsl;

__u8 rsvd16[4080];

};

## Members
vsl

Verify Size Limit

wzsl

Write Zeroes Size Limit

wusl

Write Uncorrectable Size Limit

dmrl

Dataset Management Ranges Limit

dmrsl

Dataset Management Range Size Limit

dmsl

Dataset Management Size Limit

rsvd16

reserved


title: nvme_id_ctrl_nvmsr(2)

text:
# nvme_id_ctrl_nvmsr(2)

## NAME
enum nvme_id_ctrl_nvmsr - This field reports information associated with the NVM Subsystem, see &struct nvme_id_ctrl.nvmsr.

## SYNOPSIS
enum nvme_id_ctrl_nvmsr {

NVME_CTRL_NVMSR_NVMESD ,

NVME_CTRL_NVMSR_NVMEE

};

## Constants
NVME_CTRL_NVMSR_NVMESD

If set, then the NVM Subsystem is part of an NVMe Storage Device; if cleared, then the NVM Subsystem is not part of an NVMe Storage Device.

NVME_CTRL_NVMSR_NVMEE

If set’, then the NVM Subsystem is part of an NVMe Enclosure; if cleared, then the NVM Subsystem is not part of an NVMe Enclosure.


title: nvme_id_ctrl_nvscc(2)

text:
# nvme_id_ctrl_nvscc(2)

## NAME
enum nvme_id_ctrl_nvscc - This field indicates the configuration settings for NVM Vendor Specific command handling.

## SYNOPSIS
enum nvme_id_ctrl_nvscc {

NVME_CTRL_NVSCC_FMT

};

## Constants
NVME_CTRL_NVSCC_FMT

If set, all NVM Vendor Specific Commands use the format with NDT and NDM fields.


title: nvme_id_ctrl_nwpc(2)

text:
# nvme_id_ctrl_nwpc(2)

## NAME
enum nvme_id_ctrl_nwpc - This field indicates the optional namespace write protection capabilities supported by the controller.

## SYNOPSIS
enum nvme_id_ctrl_nwpc {

NVME_CTRL_NWPC_WRITE_PROTECT ,

NVME_CTRL_NWPC_WRITE_PROTECT_POWER_CYCLE ,

NVME_CTRL_NWPC_WRITE_PROTECT_PERMANENT

};

## Constants
NVME_CTRL_NWPC_WRITE_PROTECT

If set, then the controller shall support the No Write Protect and Write Protect namespace write protection states and may support the Write Protect Until Power Cycle state and Permanent Write Protect namespace write protection states.

NVME_CTRL_NWPC_WRITE_PROTECT_POWER_CYCLE

If set, then the controller supports the Write Protect Until Power Cycle state.

NVME_CTRL_NWPC_WRITE_PROTECT_PERMANENT

If set, then the controller supports the Permanent Write Protect state.


title: nvme_id_ctrl_oacs(2)

text:
# nvme_id_ctrl_oacs(2)

## NAME
enum nvme_id_ctrl_oacs - Flags indicating the optional Admin commands and features supported by the controller, see &struct nvme_id_ctrl.oacs.

## SYNOPSIS
enum nvme_id_ctrl_oacs {

NVME_CTRL_OACS_SECURITY ,

NVME_CTRL_OACS_FORMAT ,

NVME_CTRL_OACS_FW ,

NVME_CTRL_OACS_NS_MGMT ,

NVME_CTRL_OACS_SELF_TEST ,

NVME_CTRL_OACS_DIRECTIVES ,

NVME_CTRL_OACS_NVME_MI ,

NVME_CTRL_OACS_VIRT_MGMT ,

NVME_CTRL_OACS_DBBUF_CFG ,

NVME_CTRL_OACS_LBA_STATUS ,

NVME_CTRL_OACS_CMD_FEAT_LD

};

## Constants
NVME_CTRL_OACS_SECURITY

If set, then the controller supports the Security Send and Security Receive commands.

NVME_CTRL_OACS_FORMAT

If set then the controller supports the Format NVM command.

NVME_CTRL_OACS_FW

If set, then the controller supports the Firmware Commit and Firmware Image Download commands.

NVME_CTRL_OACS_NS_MGMT

If set, then the controller supports the Namespace Management capability

NVME_CTRL_OACS_SELF_TEST

If set, then the controller supports the Device Self-test command.

NVME_CTRL_OACS_DIRECTIVES

If set, then the controller supports Directives and the Directive Send and Directive Receive commands.

NVME_CTRL_OACS_NVME_MI

If set, then the controller supports the NVMe-MI Send and NVMe-MI Receive commands.

NVME_CTRL_OACS_VIRT_MGMT

If set, then the controller supports the Virtualization Management command.

NVME_CTRL_OACS_DBBUF_CFG

If set, then the controller supports the Doorbell Buffer Config command.

NVME_CTRL_OACS_LBA_STATUS

If set, then the controller supports the Get LBA Status capability.

NVME_CTRL_OACS_CMD_FEAT_LD

If set, then the controller supports the command and feature lockdown capability.


title: nvme_id_ctrl_oaes(2)

summary: Optional Asynchronous Events Supported

text:
# nvme_id_ctrl_oaes(2)

## NAME
enum nvme_id_ctrl_oaes - Optional Asynchronous Events Supported

## SYNOPSIS
enum nvme_id_ctrl_oaes {

NVME_CTRL_OAES_NA ,

NVME_CTRL_OAES_FA ,

NVME_CTRL_OAES_ANA ,

NVME_CTRL_OAES_PLEA ,

NVME_CTRL_OAES_LBAS ,

NVME_CTRL_OAES_EGE ,

NVME_CTRL_OAES_NS ,

NVME_CTRL_OAES_ZD ,

NVME_CTRL_OAES_DL

};

## Constants
NVME_CTRL_OAES_NA

Namespace Attribute Notices event supported

NVME_CTRL_OAES_FA

Firmware Activation Notices event supported

NVME_CTRL_OAES_ANA

ANA Change Notices supported

NVME_CTRL_OAES_PLEA

Predictable Latency Event Aggregate Log Change Notices event supported

NVME_CTRL_OAES_LBAS

LBA Status Information Notices event supported

NVME_CTRL_OAES_EGE

Endurance Group Events Aggregate Log Change Notices event supported

NVME_CTRL_OAES_NS

Normal NVM Subsystem Shutdown event supported

NVME_CTRL_OAES_ZD

Zone Descriptor Change Notifications supported

NVME_CTRL_OAES_DL

Discover Log Page Change Notifications supported


title: nvme_id_ctrl_ofcs(2)

text:
# nvme_id_ctrl_ofcs(2)

## NAME
enum nvme_id_ctrl_ofcs - Indicate whether the controller supports optional fabric commands.

## SYNOPSIS
enum nvme_id_ctrl_ofcs {

NVME_CTRL_OFCS_DISCONNECT

};

## Constants
NVME_CTRL_OFCS_DISCONNECT

If set, then the controller supports the Disconnect command and deletion of individual I/O Queues.


title: nvme_id_ctrl_oncs(2)

text:
# nvme_id_ctrl_oncs(2)

## NAME
enum nvme_id_ctrl_oncs - This field indicates the optional NVM commands and features supported by the controller.

## SYNOPSIS
enum nvme_id_ctrl_oncs {

NVME_CTRL_ONCS_COMPARE ,

NVME_CTRL_ONCS_WRITE_UNCORRECTABLE ,

NVME_CTRL_ONCS_DSM ,

NVME_CTRL_ONCS_WRITE_ZEROES ,

NVME_CTRL_ONCS_SAVE_FEATURES ,

NVME_CTRL_ONCS_RESERVATIONS ,

NVME_CTRL_ONCS_TIMESTAMP ,

NVME_CTRL_ONCS_VERIFY ,

NVME_CTRL_ONCS_COPY

};

## Constants
NVME_CTRL_ONCS_COMPARE

If set, then the controller supports the Compare command.

NVME_CTRL_ONCS_WRITE_UNCORRECTABLE

If set, then the controller supports the Write Uncorrectable command.

NVME_CTRL_ONCS_DSM

If set, then the controller supports the Dataset Management command.

NVME_CTRL_ONCS_WRITE_ZEROES

If set, then the controller supports the Write Zeroes command.

NVME_CTRL_ONCS_SAVE_FEATURES

If set, then the controller supports the Save field set to a non-zero value in the Set Features command and the Select field set to a non-zero value in the Get Features command.

NVME_CTRL_ONCS_RESERVATIONS

If set, then the controller supports reservations.

NVME_CTRL_ONCS_TIMESTAMP

If set, then the controller supports the Timestamp feature.

NVME_CTRL_ONCS_VERIFY

If set, then the controller supports the Verify command.

NVME_CTRL_ONCS_COPY

If set, then the controller supports the copy command.


title: nvme_id_ctrl_rpmbs(2)

text:
# nvme_id_ctrl_rpmbs(2)

## 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.

## SYNOPSIS
enum nvme_id_ctrl_rpmbs {

NVME_CTRL_RPMBS_NR_UNITS ,

NVME_CTRL_RPMBS_AUTH_METHOD ,

NVME_CTRL_RPMBS_TOTAL_SIZE ,

NVME_CTRL_RPMBS_ACCESS_SIZE

};

## Constants
NVME_CTRL_RPMBS_NR_UNITS

Mask to get the value of the Number of RPMB Units

NVME_CTRL_RPMBS_AUTH_METHOD

Mask to get the value of the Authentication Method

NVME_CTRL_RPMBS_TOTAL_SIZE

Mask to get the value of Total Size

NVME_CTRL_RPMBS_ACCESS_SIZE

Mask to get the value of Access Size


title: nvme_id_ctrl_sanicap(2)

text:
# nvme_id_ctrl_sanicap(2)

## NAME
enum nvme_id_ctrl_sanicap - Indicates attributes for sanitize operations.

## SYNOPSIS
enum nvme_id_ctrl_sanicap {

NVME_CTRL_SANICAP_CES ,

NVME_CTRL_SANICAP_BES ,

NVME_CTRL_SANICAP_OWS ,

NVME_CTRL_SANICAP_NDI ,

NVME_CTRL_SANICAP_NODMMAS

};

## Constants
NVME_CTRL_SANICAP_CES

Crypto Erase Support. If set, then the controller supports the Crypto Erase sanitize operation.

NVME_CTRL_SANICAP_BES

Block Erase Support. If set, then the controller supports the Block Erase sanitize operation.

NVME_CTRL_SANICAP_OWS

Overwrite Support. If set, then the controller supports the Overwrite sanitize operation.

NVME_CTRL_SANICAP_NDI

No-Deallocate Inhibited. If set and the No- Deallocate Response Mode bit is set, then the controller deallocates after the sanitize operation even if the No-Deallocate After Sanitize bit is set in a Sanitize command.

NVME_CTRL_SANICAP_NODMMAS

No-Deallocate Modifies Media After Sanitize, mask to extract value.


title: nvme_id_ctrl_sgls(2)

text:
# nvme_id_ctrl_sgls(2)

## NAME
enum nvme_id_ctrl_sgls - This field indicates if SGLs are supported for the NVM Command Set and the particular SGL types supported.

## SYNOPSIS
enum nvme_id_ctrl_sgls {

NVME_CTRL_SGLS_SUPPORTED ,

NVME_CTRL_SGLS_KEYED ,

NVME_CTRL_SGLS_BIT_BUCKET ,

NVME_CTRL_SGLS_MPTR_BYTE_ALIGNED ,

NVME_CTRL_SGLS_OVERSIZE ,

NVME_CTRL_SGLS_MPTR_SGL ,

NVME_CTRL_SGLS_OFFSET ,

NVME_CTRL_SGLS_TPORT

};

## Constants
NVME_CTRL_SGLS_SUPPORTED

NVME_CTRL_SGLS_KEYED

NVME_CTRL_SGLS_BIT_BUCKET

NVME_CTRL_SGLS_MPTR_BYTE_ALIGNED

NVME_CTRL_SGLS_OVERSIZE

NVME_CTRL_SGLS_MPTR_SGL

NVME_CTRL_SGLS_OFFSET

NVME_CTRL_SGLS_TPORT


title: nvme_id_ctrl_sqes(2)

text:
# nvme_id_ctrl_sqes(2)

## NAME
enum nvme_id_ctrl_sqes - Defines the required and maximum Submission Queue entry size when using the NVM Command Set.

## SYNOPSIS
enum nvme_id_ctrl_sqes {

NVME_CTRL_SQES_MIN ,

NVME_CTRL_SQES_MAX

};

## Constants
NVME_CTRL_SQES_MIN

Mask to get the value of the required Submission Queue Entry size when using the NVM Command Set.

NVME_CTRL_SQES_MAX

Mask to get the value of the maximum Submission Queue entry size when using the NVM Command Set.


title: nvme_id_ctrl_vwc(2)

summary: Volatile write cache

text:
# nvme_id_ctrl_vwc(2)

## NAME
enum nvme_id_ctrl_vwc - Volatile write cache

## SYNOPSIS
enum nvme_id_ctrl_vwc {

NVME_CTRL_VWC_PRESENT ,

NVME_CTRL_VWC_FLUSH

};

## Constants
NVME_CTRL_VWC_PRESENT

If set, indicates a volatile write cache is present. If a volatile write cache is present, then the host controls whether the volatile write cache is enabled with a Set Features command specifying the value NVME_FEAT_FID_VOLATILE_WC.

NVME_CTRL_VWC_FLUSH

Mask to get the value of the flush command behavior.


title: nvme_id_ctrl_vwci(2)

text:
# nvme_id_ctrl_vwci(2)

## 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.

## SYNOPSIS
enum nvme_id_ctrl_vwci {

NVME_CTRL_VWCI_VWCR ,

NVME_CTRL_VWCI_VWCRV

};

## Constants
NVME_CTRL_VWCI_VWCR

Mask to get value of VPD Write Cycles Remaining. If the VPD Write Cycle Remaining Valid bit is set, then this field contains a value indicating the remaining number of times that VPD contents are able to be updated using the VPD Write command. If this field is set to 7Fh, then the remaining number of times that VPD contents are able to be updated using the VPD Write command is greater than or equal to 7Fh.

NVME_CTRL_VWCI_VWCRV

VPD Write Cycle Remaining Valid. If this bit is set, then the VPD Write Cycle Remaining field is valid. If this bit is cleared, then the VPD Write Cycles Remaining field is invalid and cleared to 0h.


title: nvme_id_directives(2)

text:
# nvme_id_directives(2)

## NAME
struct nvme_id_directives - Identify Directive - Return Parameters Data Structure

## SYNOPSIS
struct nvme_id_directives {

__u8 supported[32];

__u8 enabled[32];

__u8 rsvd64[4032];

};

## Members
supported

Identify directive is supported

enabled

Identify directive is Enabled

rsvd64

Reserved


title: nvme_id_domain_attr(2)

summary: Domain Attributes Entry

text:
# nvme_id_domain_attr(2)

## NAME
struct nvme_id_domain_attr - Domain Attributes Entry

## SYNOPSIS
struct nvme_id_domain_attr {

__le16 dom_id;

__u8 rsvd2[14];

__u8 dom_cap[16];

__u8 unalloc_dom_cap[16];

__u8 max_egrp_dom_cap[16];

__u8 rsvd64[64];

};

## Members
dom_id

Domain Identifier

rsvd2

Reserved

dom_cap

Total Domain Capacity

unalloc_dom_cap

Unallocated Domain Capacity

max_egrp_dom_cap

Max Endurance Group Domain Capacity

rsvd64

Reserved


title: nvme_id_domain_list(2)

summary: Domain List

text:
# nvme_id_domain_list(2)

## NAME
struct nvme_id_domain_list - Domain List

## SYNOPSIS
struct nvme_id_domain_list {

__u8 num;

__u8 rsvd[127];

struct nvme_id_domain_attr domain_attr[NVME_ID_DOMAIN_LIST_MAX];

};

## Members
num

Number of domain attributes

rsvd

Reserved

domain_attr

List of domain attributes


title: nvme_id_endurance_group_list(2)

summary: Endurance Group List

text:
# nvme_id_endurance_group_list(2)

## NAME
struct nvme_id_endurance_group_list - Endurance Group List

## SYNOPSIS
struct nvme_id_endurance_group_list {

__le16 num;

__le16 identifier[NVME_ID_ENDURANCE_GROUP_LIST_MAX];

};

## Members
num

Number of Identifiers

identifier

Endurance Group Identifier


title: nvme_id_independent_id_ns(2)

text:
# nvme_id_independent_id_ns(2)

## NAME
struct nvme_id_independent_id_ns - Identify - I/O Command Set Independent Identify Namespace Data Structure

## SYNOPSIS
struct nvme_id_independent_id_ns {

__u8 nsfeat;

__u8 nmic;

__u8 rescap;

__u8 fpi;

__le32 anagrpid;

__u8 nsattr;

__u8 rsvd9;

__le16 nvmsetid;

__le16 endgid;

__u8 nstat;

__u8 rsvd15[4081];

};

## Members
nsfeat

common namespace features

nmic

Namespace Multi-path I/O and Namespace Sharing Capabilities

rescap

Reservation Capabilities

fpi

Format Progress Indicator

anagrpid

ANA Group Identifier

nsattr

Namespace Attributes

rsvd9

reserved

nvmsetid

NVM Set Identifier

endgid

Endurance Group Identifier

nstat

Namespace Status

rsvd15

reserved


title: nvme_id_iocs(2)

text:
# nvme_id_iocs(2)

## NAME
struct nvme_id_iocs - NVMe Identify IO Command Set data structure

## SYNOPSIS
struct nvme_id_iocs {

__le64 iocsc[512];

};

## Members
iocsc

List of supported IO Command Set Combination vectors


title: nvme_id_ns(2)

summary: Identify Namespace data structure

text:
# nvme_id_ns(2)

## NAME
struct nvme_id_ns - Identify Namespace data structure

## SYNOPSIS
struct nvme_id_ns {

__le64 nsze;

__le64 ncap;

__le64 nuse;

__u8 nsfeat;

__u8 nlbaf;

__u8 flbas;

__u8 mc;

__u8 dpc;

__u8 dps;

__u8 nmic;

__u8 rescap;

__u8 fpi;

__u8 dlfeat;

__le16 nawun;

__le16 nawupf;

__le16 nacwu;

__le16 nabsn;

__le16 nabo;

__le16 nabspf;

__le16 noiob;

__u8 nvmcap[16];

__le16 npwg;

__le16 npwa;

__le16 npdg;

__le16 npda;

__le16 nows;

__le16 mssrl;

__le32 mcl;

__u8 msrc;

__u8 rsvd81;

__u8 nulbaf;

__u8 rsvd83[9];

__le32 anagrpid;

__u8 rsvd96[3];

__u8 nsattr;

__le16 nvmsetid;

__le16 endgid;

__u8 nguid[16];

__u8 eui64[8];

struct nvme_lbaf lbaf[64];

__le64 lbstm;

__u8 vs[3704];

};

## Members
nsze

Namespace Size indicates the total size of the namespace in logical blocks. The number of logical blocks is based on the formatted LBA size.

ncap

Namespace Capacity indicates the maximum number of logical blocks that may be allocated in the namespace at any point in time. The number of logical blocks is based on the formatted LBA size.

nuse

Namespace Utilization indicates the current number of logical blocks allocated in the namespace. This field is smaller than or equal to the Namespace Capacity. The number of logical blocks is based on the formatted LBA size.

nsfeat

Namespace Features, see enum nvme_id_nsfeat.

nlbaf

Number of LBA Formats defines the number of supported LBA data size and metadata size combinations supported by the namespace and the highest possible index to struct nvme_id_ns.lbaf.

flbas

Formatted LBA Size, see enum nvme_id_ns_flbas.

mc

Metadata Capabilities, see enum nvme_id_ns_mc.

dpc

End-to-end Data Protection Capabilities, see enum nvme_id_ns_dpc.

dps

End-to-end Data Protection Type Settings, see enum nvme_id_ns_dps.

nmic

Namespace Multi-path I/O and Namespace Sharing Capabilities, see enum nvme_id_ns_nmic.

rescap

Reservation Capabilities, see enum nvme_id_ns_rescap.

fpi

Format Progress Indicator, see enum nvme_nd_ns_fpi.

dlfeat

Deallocate Logical Block Features, see enum nvme_id_ns_dlfeat.

nawun

Namespace Atomic Write Unit Normal indicates the namespace specific size of the write operation guaranteed to be written atomically to the NVM during normal operation.

nawupf

Namespace Atomic Write Unit Power Fail indicates the namespace specific size of the write operation guaranteed to be written atomically to the NVM during a power fail or error condition.

nacwu

Namespace Atomic Compare & Write Unit indicates the namespace specific size of the write operation guaranteed to be written atomically to the NVM for a Compare and Write fused command.

nabsn

Namespace Atomic Boundary Size Normal indicates the atomic boundary size for this namespace for the NAWUN value. This field is specified in logical blocks.

nabo

Namespace Atomic Boundary Offset indicates the LBA on this namespace where the first atomic boundary starts.

nabspf

Namespace Atomic Boundary Size Power Fail indicates the atomic boundary size for this namespace specific to the Namespace Atomic Write Unit Power Fail value. This field is specified in logical blocks.

noiob

Namespace Optimal I/O Boundary indicates the optimal I/O boundary for this namespace. This field is specified in logical blocks. The host should construct Read and Write commands that do not cross the I/O boundary to achieve optimal performance.

nvmcap

NVM Capacity indicates the total size of the NVM allocated to this namespace. The value is in bytes.

npwg

Namespace Preferred Write Granularity indicates the smallest recommended write granularity in logical blocks for this namespace. This is a 0's based value.

npwa

Namespace Preferred Write Alignment indicates the recommended write alignment in logical blocks for this namespace. This is a 0's based value.

npdg

Namespace Preferred Deallocate Granularity indicates the recommended granularity in logical blocks for the Dataset Management command with the Attribute - Deallocate bit.

npda

Namespace Preferred Deallocate Alignment indicates the recommended alignment in logical blocks for the Dataset Management command with the Attribute - Deallocate bit

nows

Namespace Optimal Write Size indicates the size in logical blocks for optimal write performance for this namespace. This is a 0's based value.

mssrl

Maximum Single Source Range Length indicates the maximum number of logical blocks that may be specified in each valid Source Range field of a Copy command.

mcl

Maximum Copy Length indicates the maximum number of logical blocks that may be specified in a Copy command.

msrc

Maximum Source Range Count indicates the maximum number of Source Range entries that may be used to specify source data in a Copy command. This is a 0’s based value.

rsvd81

Reserved

nulbaf

Number of Unique Capability LBA Formats defines the number of supported user data size and metadata size combinations supported by the namespace that may not share the same capabilities. LBA formats shall be allocated in order and packed sequentially.

rsvd83

Reserved

anagrpid

ANA Group Identifier indicates the ANA Group Identifier of the ANA group of which the namespace is a member.

rsvd96

Reserved

nsattr

Namespace Attributes, see enum nvme_id_ns_attr.

nvmsetid

NVM Set Identifier indicates the NVM Set with which this namespace is associated.

endgid

Endurance Group Identifier indicates the Endurance Group with which this namespace is associated.

nguid

Namespace Globally Unique Identifier contains a 128-bit value that is globally unique and assigned to the namespace when the namespace is created. This field remains fixed throughout the life of the namespace and is preserved across namespace and controller operations

eui64

IEEE Extended Unique Identifier contains a 64-bit IEEE Extended Unique Identifier (EUI-64) that is globally unique and assigned to the namespace when the namespace is created. This field remains fixed throughout the life of the namespace and is preserved across namespace and controller operations

lbaf

LBA Format, see struct nvme_lbaf.

lbstm

Logical Block Storage Tag Mask for end-to-end protection

vs

Vendor Specific


title: nvme_id_ns_attr(2)

summary: Specifies attributes of the namespace.

text:
# nvme_id_ns_attr(2)

## NAME
enum nvme_id_ns_attr - Specifies attributes of the namespace.

## SYNOPSIS
enum nvme_id_ns_attr {

NVME_NS_NSATTR_WRITE_PROTECTED

};

## Constants
NVME_NS_NSATTR_WRITE_PROTECTED

If set, then the namespace is currently write protected and all write access to the namespace shall fail.


title: nvme_id_ns_dlfeat(2)

text:
# nvme_id_ns_dlfeat(2)

## NAME
enum nvme_id_ns_dlfeat - This field indicates information about features that affect deallocating logical blocks for this namespace.

## SYNOPSIS
enum nvme_id_ns_dlfeat {

NVME_NS_DLFEAT_RB ,

NVME_NS_DLFEAT_RB_NR ,

NVME_NS_DLFEAT_RB_ALL_0S ,

NVME_NS_DLFEAT_RB_ALL_FS ,

NVME_NS_DLFEAT_WRITE_ZEROES ,

NVME_NS_DLFEAT_CRC_GUARD

};

## Constants
NVME_NS_DLFEAT_RB

Mask to get the value of the read behavior

NVME_NS_DLFEAT_RB_NR

Read behvaior is not reported

NVME_NS_DLFEAT_RB_ALL_0S

A deallocated logical block returns all bytes cleared to 0h.

NVME_NS_DLFEAT_RB_ALL_FS

A deallocated logical block returns all bytes set to FFh.

NVME_NS_DLFEAT_WRITE_ZEROES

If set, indicates that the controller supports the Deallocate bit in the Write Zeroes command for this namespace.

NVME_NS_DLFEAT_CRC_GUARD

If set, indicates that the Guard field for deallocated logical blocks that contain protection information is set to the CRC for the value read from the deallocated logical block and its metadata


title: nvme_id_ns_dpc(2)

text:
# nvme_id_ns_dpc(2)

## NAME
enum nvme_id_ns_dpc - This field indicates the capabilities for the end-to-end data protection feature.

## SYNOPSIS
enum nvme_id_ns_dpc {

NVME_NS_DPC_PI_TYPE1 ,

NVME_NS_DPC_PI_TYPE2 ,

NVME_NS_DPC_PI_TYPE3 ,

NVME_NS_DPC_PI_FIRST ,

NVME_NS_DPC_PI_LAST

};

## Constants
NVME_NS_DPC_PI_TYPE1

If set, indicates that the namespace supports Protection Information Type 1.

NVME_NS_DPC_PI_TYPE2

If set, indicates that the namespace supports Protection Information Type 2.

NVME_NS_DPC_PI_TYPE3

If set, indicates that the namespace supports Protection Information Type 3.

NVME_NS_DPC_PI_FIRST

If set, indicates that the namespace supports protection information transferred as the first eight bytes of metadata.

NVME_NS_DPC_PI_LAST

If set, indicates that the namespace supports protection information transferred as the last eight bytes of metadata.


title: nvme_id_ns_dps(2)

text:
# nvme_id_ns_dps(2)

## NAME
enum nvme_id_ns_dps - This field indicates the Type settings for the end-to-end data protection feature.

## SYNOPSIS
enum nvme_id_ns_dps {

NVME_NS_DPS_PI_NONE ,

NVME_NS_DPS_PI_TYPE1 ,

NVME_NS_DPS_PI_TYPE2 ,

NVME_NS_DPS_PI_TYPE3 ,

NVME_NS_DPS_PI_MASK ,

NVME_NS_DPS_PI_FIRST

};

## Constants
NVME_NS_DPS_PI_NONE

Protection information is not enabled

NVME_NS_DPS_PI_TYPE1

Protection information is enabled, Type 1

NVME_NS_DPS_PI_TYPE2

Protection information is enabled, Type 2

NVME_NS_DPS_PI_TYPE3

Protection information is enabled, Type 3

NVME_NS_DPS_PI_MASK

Mask to get the value of the PI type

NVME_NS_DPS_PI_FIRST

If set, indicates that the protection information, if enabled, is transferred as the first eight bytes of metadata.


title: nvme_id_ns_flbas(2)

text:
# nvme_id_ns_flbas(2)

## NAME
enum nvme_id_ns_flbas - This field indicates the LBA data size & metadata size combination that the namespace has been formatted with

## SYNOPSIS
enum nvme_id_ns_flbas {

NVME_NS_FLBAS_LOWER_MASK ,

NVME_NS_FLBAS_META_EXT ,

NVME_NS_FLBAS_HIGHER_MASK

};

## Constants
NVME_NS_FLBAS_LOWER_MASK

Mask to get the index of one of the supported LBA Formats's least significant 4bits indicated in :c:type:`struct nvme_id_ns <nvme_id_ns>`.lbaf.

NVME_NS_FLBAS_META_EXT

Applicable only if format contains metadata. If this bit is set, indicates that the metadata is transferred at the end of the data LBA, creating an extended data LBA. If cleared, indicates that all of the metadata for a command is transferred as a separate contiguous buffer of data.

NVME_NS_FLBAS_HIGHER_MASK

Mask to get the index of one of the supported LBA Formats's most significant 2bits indicated in :c:type:`struct nvme_id_ns <nvme_id_ns>`.lbaf.


title: nvme_id_ns_granularity_desc(2)

summary: Namespace Granularity Descriptor

text:
# nvme_id_ns_granularity_desc(2)

## NAME
struct nvme_id_ns_granularity_desc - Namespace Granularity Descriptor

## SYNOPSIS
struct nvme_id_ns_granularity_desc {

__le64 nszegran;

__le64 ncapgran;

};

## Members
nszegran

Namespace Size Granularity

ncapgran

Namespace Capacity Granularity


title: nvme_id_ns_granularity_list(2)

summary: Namespace Granularity List

text:
# nvme_id_ns_granularity_list(2)

## NAME
struct nvme_id_ns_granularity_list - Namespace Granularity List

## SYNOPSIS
struct nvme_id_ns_granularity_list {

__le32 attributes;

__u8 num_descriptors;

__u8 rsvd5[27];

struct nvme_id_ns_granularity_desc entry[NVME_ID_ND_DESCRIPTOR_MAX];

__u8 rsvd288[3808];

};

## Members
attributes

Namespace Granularity Attributes

num_descriptors

Number of Descriptors

rsvd5

reserved

entry

Namespace Granularity Descriptor

rsvd288

reserved


title: nvme_id_ns_mc(2)

text:
# nvme_id_ns_mc(2)

## NAME
enum nvme_id_ns_mc - This field indicates the capabilities for metadata.

## SYNOPSIS
enum nvme_id_ns_mc {

NVME_NS_MC_EXTENDED ,

NVME_NS_MC_SEPARATE

};

## Constants
NVME_NS_MC_EXTENDED

If set, indicates the namespace supports the metadata being transferred as part of a separate buffer that is specified in the Metadata Pointer.

NVME_NS_MC_SEPARATE

If set, indicates that the namespace supports the metadata being transferred as part of an extended data LBA.


title: nvme_id_ns_nmic(2)

text:
# nvme_id_ns_nmic(2)

## NAME
enum nvme_id_ns_nmic - This field specifies multi-path I/O and namespace sharing capabilities of the namespace.

## SYNOPSIS
enum nvme_id_ns_nmic {

NVME_NS_NMIC_SHARED

};

## Constants
NVME_NS_NMIC_SHARED

If set, then the namespace may be attached to two or more controllers in the NVM subsystem concurrently


title: nvme_id_ns_rescap(2)

text:
# nvme_id_ns_rescap(2)

## NAME
enum nvme_id_ns_rescap - This field indicates the reservation capabilities of the namespace.

## SYNOPSIS
enum nvme_id_ns_rescap {

NVME_NS_RESCAP_PTPL ,

NVME_NS_RESCAP_WE ,

NVME_NS_RESCAP_EA ,

NVME_NS_RESCAP_WERO ,

NVME_NS_RESCAP_EARO ,

NVME_NS_RESCAP_WEAR ,

NVME_NS_RESCAP_EAAR ,

NVME_NS_RESCAP_IEK_13

};

## Constants
NVME_NS_RESCAP_PTPL

If set, indicates that the namespace supports the Persist Through Power Loss capability.

NVME_NS_RESCAP_WE

If set, indicates that the namespace supports the Write Exclusive reservation type.

NVME_NS_RESCAP_EA

If set, indicates that the namespace supports the Exclusive Access reservation type.

NVME_NS_RESCAP_WERO

If set, indicates that the namespace supports the Write Exclusive - Registrants Only reservation type.

NVME_NS_RESCAP_EARO

If set, indicates that the namespace supports the Exclusive Access - Registrants Only reservation type.

NVME_NS_RESCAP_WEAR

If set, indicates that the namespace supports the Write Exclusive - All Registrants reservation type.

NVME_NS_RESCAP_EAAR

If set, indicates that the namespace supports the Exclusive Access - All Registrants reservation type.

NVME_NS_RESCAP_IEK_13

If set, indicates that Ignore Existing Key is used as defined in revision 1.3 or later of this specification.


title: nvme_id_nsfeat(2)

text:
# nvme_id_nsfeat(2)

## NAME
enum nvme_id_nsfeat - This field defines features of the namespace.

## SYNOPSIS
enum nvme_id_nsfeat {

NVME_NS_FEAT_THIN ,

NVME_NS_FEAT_NATOMIC ,

NVME_NS_FEAT_DULBE ,

NVME_NS_FEAT_ID_REUSE ,

NVME_NS_FEAT_IO_OPT

};

## Constants
NVME_NS_FEAT_THIN

If set, indicates that the namespace supports thin provisioning. Specifically, the Namespace Capacity reported may be less than the Namespace Size.

NVME_NS_FEAT_NATOMIC

If set, indicates that the fields NAWUN, NAWUPF, and NACWU are defined for this namespace and should be used by the host for this namespace instead of the AWUN, AWUPF, and ACWU fields in the Identify Controller data structure.

NVME_NS_FEAT_DULBE

If set, indicates that the controller supports the Deallocated or Unwritten Logical Block error for this namespace.

NVME_NS_FEAT_ID_REUSE

If set, indicates that the value in the NGUID field for this namespace, if non- zero, is never reused by the controller and that the value in the EUI64 field for this namespace, if non-zero, is never reused by the controller.

NVME_NS_FEAT_IO_OPT

If set, indicates that the fields NPWG, NPWA, NPDG, NPDA, and NOWS are defined for this namespace and should be used by the host for I/O optimization


title: nvme_id_nvmset_list(2)

summary: NVM set list

text:
# nvme_id_nvmset_list(2)

## NAME
struct nvme_id_nvmset_list - NVM set list

## SYNOPSIS
struct nvme_id_nvmset_list {

__u8 nid;

__u8 rsvd1[127];

struct nvme_nvmset_attr ent[NVME_ID_NVMSET_LIST_MAX];

};

## Members
nid

Nvmset id

rsvd1

Reserved

ent

nvmset id list


title: nvme_id_psd(2)

summary: Power Management data structure

text:
# nvme_id_psd(2)

## NAME
struct nvme_id_psd - Power Management data structure

## SYNOPSIS
struct nvme_id_psd {

__le16 mp;

__u8 rsvd2;

__u8 flags;

__le32 enlat;

__le32 exlat;

__u8 rrt;

__u8 rrl;

__u8 rwt;

__u8 rwl;

__le16 idlp;

__u8 ips;

__u8 rsvd19;

__le16 actp;

__u8 apws;

__u8 rsvd23[9];

};

## Members
mp

Maximum Power indicates the sustained maximum power consumed by the NVM subsystem in this power state. The power in Watts is equal to the value in this field multiplied by the scale specified in the Max Power Scale bit (see enum nvme_psd_flags). A value of 0 indicates Maximum Power is not reported.

rsvd2

Reserved

flags

Additional decoding flags, see enum nvme_psd_flags.

enlat

Entry Latency indicates the maximum latency in microseconds associated with entering this power state. A value of 0 indicates Entry Latency is not reported.

exlat

Exit Latency indicates the maximum latency in microseconds associated with exiting this power state. A value of 0 indicates Exit Latency is not reported.

rrt

Relative Read Throughput indicates the read throughput rank associated with this power state relative to others. The value in this is less than the number of supported power states.

rrl

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.

rwt

Relative Write Throughput indicates write throughput rank associated with this power state relative to others. The value in this field is less than the number of supported power states

rwl

Relative Write Latency indicates the write latency rank associated with this power state relative to others. The value in this field is less than the number of supported power states

idlp

Idle Power indicates the typical power consumed by the NVM subsystem over 30 seconds in this power state when idle.

ips

Idle Power Scale indicates the scale for struct nvme_id_psd.idlp, see enum nvme_psd_ps for decoding this field.

rsvd19

Reserved

actp

Active Power indicates the largest average power consumed by the NVM subsystem over a 10 second period in this power state with the workload indicated in the Active Power Workload field.

apws

Bits 7-6: Active Power Scale(APS) indicates the scale for the struct nvme_id_psd.actp, see enum nvme_psd_ps for decoding this value. Bits 2-0: Active Power Workload(APW) indicates the workload used to calculate maximum power for this power state. See enum nvme_psd_workload for decoding this field.

rsvd23

Reserved


title: nvme_id_uuid(2)

summary: Identifier Association

text:
# nvme_id_uuid(2)

## NAME
enum nvme_id_uuid - Identifier Association

## SYNOPSIS
enum nvme_id_uuid {

NVME_ID_UUID_HDR_ASSOCIATION_MASK ,

NVME_ID_UUID_ASSOCIATION_NONE ,

NVME_ID_UUID_ASSOCIATION_VENDOR ,

NVME_ID_UUID_ASSOCIATION_SUBSYSTEM_VENDOR

};

## Constants
NVME_ID_UUID_HDR_ASSOCIATION_MASK

NVME_ID_UUID_ASSOCIATION_NONE

NVME_ID_UUID_ASSOCIATION_VENDOR

NVME_ID_UUID_ASSOCIATION_SUBSYSTEM_VENDOR


title: nvme_id_uuid_list(2)

summary: UUID list

text:
# nvme_id_uuid_list(2)

## NAME
struct nvme_id_uuid_list - UUID list

## SYNOPSIS
struct nvme_id_uuid_list {

__u8 rsvd0[32];

struct nvme_id_uuid_list_entry entry[NVME_ID_UUID_LIST_MAX];

};

## Members
rsvd0

reserved

entry

UUID list entry


title: nvme_id_uuid_list_entry(2)

summary: UUID List Entry

text:
# nvme_id_uuid_list_entry(2)

## NAME
struct nvme_id_uuid_list_entry - UUID List Entry

## SYNOPSIS
struct nvme_id_uuid_list_entry {

__u8 header;

__u8 rsvd1[15];

__u8 uuid[16];

};

## Members
header

UUID Lists Entry Header

rsvd1

reserved

uuid

128-bit Universally Unique Identifier


title: nvme_identify(2)

summary: Send the NVMe Identify command

text:
# nvme_identify(2)

## NAME
nvme_identify - Send the NVMe Identify command

## SYNOPSIS
int nvme_identify (struct nvme_identify_args *args );

## ARGUMENTS
args

struct nvme_identify_args argument structure

## DESCRIPTION
The Identify command returns a data buffer that describes information about the NVM subsystem, the controller or the namespace(s).

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_active_ns_list(2)

summary: Retrieves active namespaces id list

text:
# nvme_identify_active_ns_list(2)

## NAME
nvme_identify_active_ns_list - Retrieves active namespaces id list

## SYNOPSIS
int nvme_identify_active_ns_list (int fd , __u32 nsid , struct nvme_ns_list *list );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Return namespaces greater than this identifier

list

User space destination address to transfer the data

## DESCRIPTION
A list of 1024 namespace IDs is returned to the host containing NSIDs in increasing order that are greater than the value specified in the Namespace Identifier (nsid) field of the command.

See struct nvme_ns_list for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_active_ns_list_csi(2)

text:
# nvme_identify_active_ns_list_csi(2)

## NAME
nvme_identify_active_ns_list_csi - Active namespace ID list associated with a specified I/O command set

## SYNOPSIS
int nvme_identify_active_ns_list_csi (int fd , __u32 nsid , enum nvme_csi csi , struct nvme_ns_list *ns_list );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Return namespaces greater than this identifier

csi

Command Set Identifier

ns_list

User space destination address to transfer the data

## DESCRIPTION
A list of 1024 namespace IDs is returned to the host containing active NSIDs in increasing order that are greater than the value specified in the Namespace Identifier (nsid) field of the command and matching the I/O Command Set specified in the csi argument.

See struct nvme_ns_list for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_allocated_ns(2)

text:
# nvme_identify_allocated_ns(2)

## NAME
nvme_identify_allocated_ns - Same as nvme_identify_ns, but only for allocated namespaces

## SYNOPSIS
int nvme_identify_allocated_ns (int fd , __u32 nsid , struct nvme_id_ns *ns );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Namespace to identify

ns

User space destination address to transfer the data

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_allocated_ns_list(2)

summary: Retrieves allocated namespace id list

text:
# nvme_identify_allocated_ns_list(2)

## NAME
nvme_identify_allocated_ns_list - Retrieves allocated namespace id list

## SYNOPSIS
int nvme_identify_allocated_ns_list (int fd , __u32 nsid , struct nvme_ns_list *list );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Return namespaces greater than this identifier

list

User space destination address to transfer the data

## DESCRIPTION
A list of 1024 namespace IDs is returned to the host containing NSIDs in increasing order that are greater than the value specified in the Namespace Identifier (nsid) field of the command.

See struct nvme_ns_list for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_allocated_ns_list_csi(2)

text:
# nvme_identify_allocated_ns_list_csi(2)

## NAME
nvme_identify_allocated_ns_list_csi - Allocated namespace ID list associated with a specified I/O command set

## SYNOPSIS
int nvme_identify_allocated_ns_list_csi (int fd , __u32 nsid , enum nvme_csi csi , struct nvme_ns_list *ns_list );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Return namespaces greater than this identifier

csi

Command Set Identifier

ns_list

User space destination address to transfer the data

## DESCRIPTION
A list of 1024 namespace IDs is returned to the host containing allocated NSIDs in increasing order that are greater than the value specified in the nsid field of the command and matching the I/O Command Set specified in the csi argument.

See struct nvme_ns_list for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_cns(2)

summary: Identify - CNS Values

text:
# nvme_identify_cns(2)

## NAME
enum nvme_identify_cns - Identify - CNS Values

## SYNOPSIS
enum nvme_identify_cns {

NVME_IDENTIFY_CNS_NS ,

NVME_IDENTIFY_CNS_CTRL ,

NVME_IDENTIFY_CNS_NS_ACTIVE_LIST ,

NVME_IDENTIFY_CNS_NS_DESC_LIST ,

NVME_IDENTIFY_CNS_NVMSET_LIST ,

NVME_IDENTIFY_CNS_CSI_NS ,

NVME_IDENTIFY_CNS_CSI_CTRL ,

NVME_IDENTIFY_CNS_CSI_NS_ACTIVE_LIST ,

NVME_IDENTIFY_CNS_CSI_INDEPENDENT_ID_NS ,

NVME_IDENTIFY_CNS_NS_USER_DATA_FORMAT ,

NVME_IDENTIFY_CNS_CSI_NS_USER_DATA_FORMAT ,

NVME_IDENTIFY_CNS_ALLOCATED_NS_LIST ,

NVME_IDENTIFY_CNS_ALLOCATED_NS ,

NVME_IDENTIFY_CNS_NS_CTRL_LIST ,

NVME_IDENTIFY_CNS_CTRL_LIST ,

NVME_IDENTIFY_CNS_PRIMARY_CTRL_CAP ,

NVME_IDENTIFY_CNS_SECONDARY_CTRL_LIST ,

NVME_IDENTIFY_CNS_NS_GRANULARITY ,

NVME_IDENTIFY_CNS_UUID_LIST ,

NVME_IDENTIFY_CNS_DOMAIN_LIST ,

NVME_IDENTIFY_CNS_ENDURANCE_GROUP_ID ,

NVME_IDENTIFY_CNS_CSI_ALLOCATED_NS_LIST ,

NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE ,

NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE

};

## Constants
NVME_IDENTIFY_CNS_NS

Identify Namespace data structure

NVME_IDENTIFY_CNS_CTRL

Identify Controller data structure

NVME_IDENTIFY_CNS_NS_ACTIVE_LIST

Active Namespace ID list

NVME_IDENTIFY_CNS_NS_DESC_LIST

Namespace Identification Descriptor list

NVME_IDENTIFY_CNS_NVMSET_LIST

NVM Set List

NVME_IDENTIFY_CNS_CSI_NS

I/O Command Set specific Identify Namespace data structure

NVME_IDENTIFY_CNS_CSI_CTRL

I/O Command Set specific Identify Controller data structure

NVME_IDENTIFY_CNS_CSI_NS_ACTIVE_LIST

Active Namespace ID list associated with the specified I/O Command Set

NVME_IDENTIFY_CNS_CSI_INDEPENDENT_ID_NS

I/O Command Set Independent Identify

NVME_IDENTIFY_CNS_NS_USER_DATA_FORMAT

Namespace user data format

NVME_IDENTIFY_CNS_CSI_NS_USER_DATA_FORMAT

I/O Command Set specific user data format Namespace data structure

NVME_IDENTIFY_CNS_ALLOCATED_NS_LIST

Allocated Namespace ID list

NVME_IDENTIFY_CNS_ALLOCATED_NS

Identify Namespace data structure for the specified allocated NSID

NVME_IDENTIFY_CNS_NS_CTRL_LIST

Controller List of controllers attached to the specified NSID

NVME_IDENTIFY_CNS_CTRL_LIST

Controller List of controllers that exist in the NVM subsystem

NVME_IDENTIFY_CNS_PRIMARY_CTRL_CAP

Primary Controller Capabilities data structure for the specified primary controller

NVME_IDENTIFY_CNS_SECONDARY_CTRL_LIST

Secondary Controller list of controllers associated with the primary controller processing the command

NVME_IDENTIFY_CNS_NS_GRANULARITY

A Namespace Granularity List

NVME_IDENTIFY_CNS_UUID_LIST

A UUID List

NVME_IDENTIFY_CNS_DOMAIN_LIST

Domain List

NVME_IDENTIFY_CNS_ENDURANCE_GROUP_ID

Endurance Group List

NVME_IDENTIFY_CNS_CSI_ALLOCATED_NS_LIST

I/O Command Set specific Allocated Namespace ID list

NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE

I/O Command Set specific ID Namespace Data Structure for Allocated Namespace ID

NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE

Base Specification 2.0a section 5.17.2.21


title: nvme_identify_ctrl(2)

summary: Retrieves nvme identify controller

text:
# nvme_identify_ctrl(2)

## NAME
nvme_identify_ctrl - Retrieves nvme identify controller

## SYNOPSIS
int nvme_identify_ctrl (int fd , struct nvme_id_ctrl *id );

## ARGUMENTS
fd

File descriptor of nvme device

id

User space destination address to transfer the data,

## DESCRIPTION
Sends nvme identify with CNS value NVME_IDENTIFY_CNS_CTRL.

See struct nvme_id_ctrl for details on the data returned.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_ctrl_csi(2)

text:
# nvme_identify_ctrl_csi(2)

## NAME
nvme_identify_ctrl_csi - I/O command set specific Identify Controller data

## SYNOPSIS
int nvme_identify_ctrl_csi (int fd , enum nvme_csi csi , void *data );

## ARGUMENTS
fd

File descriptor of nvme device

csi

Command Set Identifier

data

User space destination address to transfer the data

## DESCRIPTION
An I/O Command Set specific Identify Controller data structure is returned to the host for the controller processing the command. The specific Identify Controller data structure to be returned is specified by csi.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_ctrl_list(2)

summary: Retrieves identify controller list

text:
# nvme_identify_ctrl_list(2)

## NAME
nvme_identify_ctrl_list - Retrieves identify controller list

## SYNOPSIS
int nvme_identify_ctrl_list (int fd , __u16 cntid , struct nvme_ctrl_list *cntlist );

## ARGUMENTS
fd

File descriptor of nvme device

cntid

Starting CNTLID to return in the list

cntlist

User space destination address to transfer the data

## DESCRIPTION
Up to 2047 controller identifiers is returned containing a controller identifier greater than or equal to the controller identifier specified in cntid.

See struct nvme_ctrl_list for a definition of the structure returned.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_domain_list(2)

summary: Domain list data

text:
# nvme_identify_domain_list(2)

## NAME
nvme_identify_domain_list - Domain list data

## SYNOPSIS
int nvme_identify_domain_list (int fd , __u16 domid , struct nvme_id_domain_list *list );

## ARGUMENTS
fd

File descriptor of nvme device

domid

Domain ID

list

User space destination address to transfer data

## DESCRIPTION
A list of 31 domain IDs is returned to the host containing domain attributes in increasing order that are greater than the value specified in the domid field.

See struct nvme_identify_domain_attr for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_endurance_group_list(2)

summary: Endurance group list data

text:
# nvme_identify_endurance_group_list(2)

## NAME
nvme_identify_endurance_group_list - Endurance group list data

## SYNOPSIS
int nvme_identify_endurance_group_list (int fd , __u16 endgrp_id , struct nvme_id_endurance_group_list *list );

## ARGUMENTS
fd

File descriptor of nvme device

endgrp_id

Endurance group identifier

list

Array of endurance group identifiers

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


text:
# nvme_identify_independent_identify_ns(2)

## NAME
nvme_identify_independent_identify_ns - I/O command set independent Identify namespace data

## SYNOPSIS
int nvme_identify_independent_identify_ns (int fd , __u32 nsid , struct nvme_id_independent_id_ns *ns );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Return namespaces greater than this identifier

ns

I/O Command Set Independent Identify Namespace data structure

## DESCRIPTION
The I/O command set independent Identify namespace data structure for the namespace identified with ns is returned to the host.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_iocs(2)

summary: I/O command set data structure

text:
# nvme_identify_iocs(2)

## NAME
nvme_identify_iocs - I/O command set data structure

## SYNOPSIS
int nvme_identify_iocs (int fd , __u16 cntlid , struct nvme_id_iocs *iocs );

## ARGUMENTS
fd

File descriptor of nvme device

cntlid

Controller ID

iocs

User space destination address to transfer the data

## DESCRIPTION
Retrieves list of the controller's supported io command set vectors. See struct nvme_id_iocs.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


text:
# nvme_identify_iocs_ns_csi_user_data_format(2)

## NAME
nvme_identify_iocs_ns_csi_user_data_format - Identify I/O command set namespace data structure

## SYNOPSIS
int nvme_identify_iocs_ns_csi_user_data_format (int fd , __u16 user_data_format , __u8 uuidx , enum nvme_csi csi , void *data );

## ARGUMENTS
fd

File descriptor of nvme device

user_data_format

Return namespaces capability of identifier

uuidx

UUID selection, if supported

csi

Command Set Identifier

data

User space destination address to transfer the data

## DESCRIPTION
I/O Command Set specific Identify Namespace data structure for the specified User Data Format index containing the namespace capabilities for the I/O Command Set specified in the CSI field.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.