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_SSRS_SHIFT ,

NVME_CTRL_OACS_FNVMS_SHIFT ,

NVME_CTRL_OACS_FWDS_SHIFT ,

NVME_CTRL_OACS_NMS_SHIFT ,

NVME_CTRL_OACS_DSTS_SHIFT ,

NVME_CTRL_OACS_DIRS_SHIFT ,

NVME_CTRL_OACS_NSRS_SHIFT ,

NVME_CTRL_OACS_VMS_SHIFT ,

NVME_CTRL_OACS_DBCS_SHIFT ,

NVME_CTRL_OACS_GLSS_SHIFT ,

NVME_CTRL_OACS_CFLS_SHIFT ,

NVME_CTRL_OACS_HMLMS_SHIFT ,

NVME_CTRL_OACS_SSRS_MASK ,

NVME_CTRL_OACS_FNVMS_MASK ,

NVME_CTRL_OACS_FWDS_MASK ,

NVME_CTRL_OACS_NMS_MASK ,

NVME_CTRL_OACS_DSTS_MASK ,

NVME_CTRL_OACS_DIRS_MASK ,

NVME_CTRL_OACS_NSRS_MASK ,

NVME_CTRL_OACS_VMS_MASK ,

NVME_CTRL_OACS_DBCS_MASK ,

NVME_CTRL_OACS_GLSS_MASK ,

NVME_CTRL_OACS_CFLS_MASK ,

NVME_CTRL_OACS_HMLMS_MASK ,

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 ,

NVME_CTRL_OACS_HMLM

};

## Constants
NVME_CTRL_OACS_SSRS_SHIFT

Shift amount to get the Security Send Receive supported

NVME_CTRL_OACS_FNVMS_SHIFT

Shift amount to get the Format NVM supported

NVME_CTRL_OACS_FWDS_SHIFT

Shift amount to get the Firmware Download supported

NVME_CTRL_OACS_NMS_SHIFT

Shift amount to get the Namespace Management supported

NVME_CTRL_OACS_DSTS_SHIFT

Shift amount to get the Device Self-test supported

NVME_CTRL_OACS_DIRS_SHIFT

Shift amount to get the Directives supported

NVME_CTRL_OACS_NSRS_SHIFT

Shift amount to get the NVMe-MI Send Receive supported

NVME_CTRL_OACS_VMS_SHIFT

Shift amount to get the Virtualization Management supported

NVME_CTRL_OACS_DBCS_SHIFT

Shift amount to get the Doorbell Buffer Config supported

NVME_CTRL_OACS_GLSS_SHIFT

Shift amount to get the Get LBA Status supported

NVME_CTRL_OACS_CFLS_SHIFT

Shift amount to get the Command and Feature Lockdown supported

NVME_CTRL_OACS_HMLMS_SHIFT

Shift amount to get the Host Managed Live Migration support

NVME_CTRL_OACS_SSRS_MASK

Mask to get the Security Send Receive supported

NVME_CTRL_OACS_FNVMS_MASK

Mask to get the Format NVM supported

NVME_CTRL_OACS_FWDS_MASK

Mask to get the Firmware Download supported

NVME_CTRL_OACS_NMS_MASK

Mask to get the Namespace Management supported

NVME_CTRL_OACS_DSTS_MASK

Mask to get the Device Self-test supported

NVME_CTRL_OACS_DIRS_MASK

Mask to get the Directives supported

NVME_CTRL_OACS_NSRS_MASK

Mask to get the NVMe-MI Send Receive supported

NVME_CTRL_OACS_VMS_MASK

Mask to get the Virtualization Management supported

NVME_CTRL_OACS_DBCS_MASK

Mask to get the Doorbell Buffer Config supported

NVME_CTRL_OACS_GLSS_MASK

Mask to get the Get LBA Status supported

NVME_CTRL_OACS_CFLS_MASK

Mask to get the Command and Feature Lockdown supported

NVME_CTRL_OACS_HMLMS_MASK

Mask to get the Host Managed Live Migration support

NVME_CTRL_OACS_SECURITY

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

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.

NVME_CTRL_OACS_HMLM

If set, then the controller supports the command and Host Managed Live Migration capability.


package: libnvme-devel

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_SHIFT ,

NVME_CTRL_OAES_FA_SHIFT ,

NVME_CTRL_OAES_ANA_SHIFT ,

NVME_CTRL_OAES_PLEA_SHIFT ,

NVME_CTRL_OAES_LBAS_SHIFT ,

NVME_CTRL_OAES_EGE_SHIFT ,

NVME_CTRL_OAES_NS_SHIFT ,

NVME_CTRL_OAES_TTH_SHIFT ,

NVME_CTRL_OAES_RGCNS_SHIFT ,

NVME_CTRL_OAES_ANSAN_SHIFT ,

NVME_CTRL_OAES_ZD_SHIFT ,

NVME_CTRL_OAES_DL_SHIFT ,

NVME_CTRL_OAES_NA_MASK ,

NVME_CTRL_OAES_FA_MASK ,

NVME_CTRL_OAES_ANA_MASK ,

NVME_CTRL_OAES_PLEA_MASK ,

NVME_CTRL_OAES_LBAS_MASK ,

NVME_CTRL_OAES_EGE_MASK ,

NVME_CTRL_OAES_NS_MASK ,

NVME_CTRL_OAES_TTH_MASK ,

NVME_CTRL_OAES_RGCNS_MASK ,

NVME_CTRL_OAES_ANSAN_MASK ,

NVME_CTRL_OAES_ZD_MASK ,

NVME_CTRL_OAES_DL_MASK ,

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_TTH ,

NVME_CTRL_OAES_RGCNS ,

NVME_CTRL_OAES_ANSAN ,

NVME_CTRL_OAES_ZD ,

NVME_CTRL_OAES_DL

};

## Constants
NVME_CTRL_OAES_NA_SHIFT

Shift amount to get the Namespace Attribute Notices event supported

NVME_CTRL_OAES_FA_SHIFT

Shift amount to get the Firmware Activation Notices event supported

NVME_CTRL_OAES_ANA_SHIFT

Shift amount to get the ANA Change Notices supported

NVME_CTRL_OAES_PLEA_SHIFT

Shift amount to get the Predictable Latency Event Aggregate Log Change Notices event supported

NVME_CTRL_OAES_LBAS_SHIFT

Shift amount to get the LBA Status Information Notices event supported

NVME_CTRL_OAES_EGE_SHIFT

Shift amount to get the Endurance Group Events Aggregate Log Change Notices event supported

NVME_CTRL_OAES_NS_SHIFT

Shift amount to get the Normal NVM Subsystem Shutdown event supported

NVME_CTRL_OAES_TTH_SHIFT

Shift amount to get the Temperature Threshold Hysteresis Recovery event supported

NVME_CTRL_OAES_RGCNS_SHIFT

Shift amount to get the Reachability Groups Change Notices supported

NVME_CTRL_OAES_ANSAN_SHIFT

Shift amount to get the Allocated Namespace Attribute Notices supported

NVME_CTRL_OAES_ZD_SHIFT

Shift amount to get the Zone Descriptor Change Notifications supported

NVME_CTRL_OAES_DL_SHIFT

Shift amount to get the Discover Log Page Change Notifications supported

NVME_CTRL_OAES_NA_MASK

Mask to get the Namespace Attribute Notices event supported

NVME_CTRL_OAES_FA_MASK

Mask to get the Firmware Activation Notices event supported

NVME_CTRL_OAES_ANA_MASK

Mask to get the ANA Change Notices supported

NVME_CTRL_OAES_PLEA_MASK

Mask to get the Predictable Latency Event Aggregate Log Change Notices event supported

NVME_CTRL_OAES_LBAS_MASK

Mask to get the LBA Status Information Notices event supported

NVME_CTRL_OAES_EGE_MASK

Mask to get the Endurance Group Events Aggregate Log Change Notices event supported

NVME_CTRL_OAES_NS_MASK

Mask to get the Normal NVM Subsystem Shutdown event supported

NVME_CTRL_OAES_TTH_MASK

Mask to get the Temperature Threshold Hysteresis Recovery event supported

NVME_CTRL_OAES_RGCNS_MASK

Mask to get the Reachability Groups Change Notices supported

NVME_CTRL_OAES_ANSAN_MASK

Mask to get the Allocated Namespace Attribute Notices supported

NVME_CTRL_OAES_ZD_MASK

Mask to get the Zone Descriptor Change Notifications supported

NVME_CTRL_OAES_DL_MASK

Mask to get the Discover Log Page Change Notifications supported

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_TTH

Temperature Threshold Hysteresis Recovery event supported

NVME_CTRL_OAES_RGCNS

Reachability Groups Change Notices supported

NVME_CTRL_OAES_ANSAN

Allocated Namespace Attribute Notices supported

NVME_CTRL_OAES_ZD

Zone Descriptor Change Notifications supported

NVME_CTRL_OAES_DL

Discover Log Page Change Notifications supported

branch: sisyphus


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 ,

NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITY ,

NVME_CTRL_ONCS_ALL_FAST_COPY ,

NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE ,

NVME_CTRL_ONCS_NAMESPACE_ZEROES

};

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

NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITY

If set, then the write portion of a Copy command is performed as a single write command to which the same atomicity requirements that apply to a write command apply.

NVME_CTRL_ONCS_ALL_FAST_COPY

If set, then all copy operations for the Copy command are fast copy operations.

NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE

If MAXWZD bit set, then the maximum data size for Write Zeroes command depends on the value of the Deallocate bit in the Write Zeroes command and the value in the WZDSL field in the I/O Command Set specific Identify Controller data structure.

NVME_CTRL_ONCS_NAMESPACE_ZEROES

If NSZS bit set, then the controller supports the Namespace Zeroes (NSZ) bit in the NVM Command Set Write Zeroes command.


title: nvme_id_ctrl_plsi(2)

summary: Power Loss Signaling Information

text:
# nvme_id_ctrl_plsi(2)

## NAME
enum nvme_id_ctrl_plsi - Power Loss Signaling Information

## SYNOPSIS
enum nvme_id_ctrl_plsi {

NVME_CTRL_PLSI_PLSEPF_SHIFT ,

NVME_CTRL_PLSI_PLSFQ_SHIFT ,

NVME_CTRL_PLSI_PLSEPF_MASK ,

NVME_CTRL_PLSI_PLSFQ_MASK

};

## Constants
NVME_CTRL_PLSI_PLSEPF_SHIFT

Shift amount to get the PLS Emergency Power Fail from the struct nvme_id_ctrl.plsi field.

NVME_CTRL_PLSI_PLSFQ_SHIFT

Shift amount to get the PLS Forced Quiescence from the struct nvme_id_ctrl.plsi field.

NVME_CTRL_PLSI_PLSEPF_MASK

Mask to get the PLS Emergency Power Fail from the struct nvme_id_ctrl.plsi field.

NVME_CTRL_PLSI_PLSFQ_MASK

Mask to get the PLS Forced Quiescence from the struct nvme_id_ctrl.plsi field.


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_trattr(2)

summary: Tracking Attributes

text:
# nvme_id_ctrl_trattr(2)

## NAME
enum nvme_id_ctrl_trattr - Tracking Attributes

## SYNOPSIS
enum nvme_id_ctrl_trattr {

NVME_CTRL_TRATTR_THMCS_SHIFT ,

NVME_CTRL_TRATTR_TUDCS_SHIFT ,

NVME_CTRL_TRATTR_MRTLL_SHIFT ,

NVME_CTRL_TRATTR_THMCS_MASK ,

NVME_CTRL_TRATTR_TUDCS_MASK ,

NVME_CTRL_TRATTR_MRTLL_MASK

};

## Constants
NVME_CTRL_TRATTR_THMCS_SHIFT

Shift amount to get the Track Host Memory Changes Support from the struct nvme_id_ctrl.trattr field.

NVME_CTRL_TRATTR_TUDCS_SHIFT

Shift amount to get the Track User Data Changes Support from the struct nvme_id_ctrl.trattr field.

NVME_CTRL_TRATTR_MRTLL_SHIFT

Shift amount to get the Memory Range Tracking Length Limit from the struct nvme_id_ctrl.trattr field.

NVME_CTRL_TRATTR_THMCS_MASK

Mask to get the Track Host Memory Changes Support from the struct nvme_id_ctrl.trattr field.

NVME_CTRL_TRATTR_TUDCS_MASK

Mask to get the Track User Data Changes Support from the struct nvme_id_ctrl.trattr field.

NVME_CTRL_TRATTR_MRTLL_MASK

Mask to get the Memory Range Tracking Length Limit from the struct nvme_id_ctrl.trattr field.


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 kpios;

__le16 maxkt;

__u8 rsvd18[2];

__le32 rgrpid;

__u8 rsvd24[4072];

};

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

kpios

Key Per I/O Status

maxkt

Maximum Key Tag

rsvd18

Reserved

rgrpid

Reachability Group Identifier

rsvd24

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_iocs_iocsc(2)

text:
# nvme_id_iocs_iocsc(2)

## NAME
enum nvme_id_iocs_iocsc - This field indicates the Identify I/O Command Set Data Structure

## SYNOPSIS
enum nvme_id_iocs_iocsc {

NVME_IOCS_IOCSC_NVMCS_SHIFT ,

NVME_IOCS_IOCSC_NVMCS_MASK ,

NVME_IOCS_IOCSC_KVCS_SHIFT ,

NVME_IOCS_IOCSC_KVCS_MASK ,

NVME_IOCS_IOCSC_ZNSCS_SHIFT ,

NVME_IOCS_IOCSC_ZNSCS_MASK ,

NVME_IOCS_IOCSC_SLMCS_SHIFT ,

NVME_IOCS_IOCSC_SLMCS_MASK ,

NVME_IOCS_IOCSC_CPNCS_SHIFT ,

NVME_IOCS_IOCSC_CPNCS_MASK

};

## Constants
NVME_IOCS_IOCSC_NVMCS_SHIFT

Shift amount to get the value of NVM Command Set

NVME_IOCS_IOCSC_NVMCS_MASK

Mask to get the value of NVM Command Set

NVME_IOCS_IOCSC_KVCS_SHIFT

Shift amount to get the value of Key Value Command Set

NVME_IOCS_IOCSC_KVCS_MASK

Mask to get the value of Key Value Command Set

NVME_IOCS_IOCSC_ZNSCS_SHIFT

Shift amount to get the value of Zoned Namespace Command Set

NVME_IOCS_IOCSC_ZNSCS_MASK

Mask to get the value of Zoned Namespace Command Set

NVME_IOCS_IOCSC_SLMCS_SHIFT

Shift amount to get the value of Subsystem Local Memory Command Set

NVME_IOCS_IOCSC_SLMCS_MASK

Mask to get the value of Subsystem Local Memory Command Set

NVME_IOCS_IOCSC_CPNCS_SHIFT

Shift amount to get the value of Computational Programs Namespace Command Set

NVME_IOCS_IOCSC_CPNCS_MASK

Mask to get the value of Computational Programs Namespace Command Set


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 kpios;

__u8 nulbaf;

__u8 rsvd83;

__le32 kpiodaag;

__u8 rsvd88[4];

__le32 anagrpid;

__u8 rsvd96[3];

__u8 nsattr;

__le16 nvmsetid;

__le16 endgid;

__u8 nguid[16];

__u8 eui64[8];

struct nvme_lbaf lbaf[64];

__u8 vs[3712];

};

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

kpios

Key Per I/O Status indicates namespace Key Per I/O capability status.

nulbaf

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

rsvd83

Reserved

kpiodaag

Key Per I/O Data Access Alignment and Granularity indicates the alignment and granularity in logical blocks that is required for commands that support a KPIOTAG value in the CETYPE field.

rsvd88

Reserved

anagrpid

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

rsvd96

Reserved

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.

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 epfrt;

__u8 fqvt;

__u8 epfvt;

__u8 epfr_fqv_ts;

__u8 epfvts;

__u8 rsvd28[4];

};

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

epfrt

Emergency power fail recovery time

fqvt

Forced quiescence vault time

epfvt

Emergency power fail vault time

epfr_fqv_ts

Bits 7-4: Forced quiescence vault time scale Bits 3-0: Emergency power fail recovery time scale

epfvts

Bits 3-0: Emergency power fail vault time scale

rsvd28

Reserved


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_args(2)

summary: Arguments for the NVMe Identify command

text:
# nvme_identify_args(2)

## NAME
struct nvme_identify_args - Arguments for the NVMe Identify command

## SYNOPSIS
struct nvme_identify_args {

__u32 *result;

void *data;

int args_size;

int fd;

__u32 timeout;

enum nvme_identify_cns cns;

enum nvme_csi csi;

__u32 nsid;

__u16 cntid;

__u16 cns_specific_id;

__u8 uuidx;

};

## Members
result

The command completion result from CQE dword0

data

User space destination address to transfer the data

args_size

Size of struct nvme_identify_args

fd

File descriptor of nvme device

timeout

Timeout in ms (0 for default timeout)

cns

The Controller or Namespace structure, see enum nvme_identify_cns

csi

Command Set Identifier

nsid

Namespace identifier, if applicable

cntid

The Controller Identifier, if applicable

cns_specific_id

Identifier that is required for a particular CNS value

uuidx

UUID Index if controller supports this id selection method


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 ,

NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST ,

NVME_IDENTIFY_CNS_PORTS_LIST ,

NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS ,

NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS

};

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

I/O Command Set data structure

NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST

Get Underlying Namespace List

NVME_IDENTIFY_CNS_PORTS_LIST

Get Ports List

NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS

I/O Command Set Independent Identify Namespace data structure for the specified allocated NSID

NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS

Supported Controller State Formats identifying the supported NVMe Controller State data structures


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.


title: nvme_identify_ns(2)

summary: Retrieves nvme identify namespace

text:
# nvme_identify_ns(2)

## NAME
nvme_identify_ns - Retrieves nvme identify namespace

## SYNOPSIS
int nvme_identify_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

## DESCRIPTION
If the Namespace Identifier (NSID) field specifies an active NSID, then the Identify Namespace data structure is returned to the host for that specified namespace.

If the controller supports the Namespace Management capability and the NSID field is set to NVME_NSID_ALL, then the controller returns an Identify Namespace data structure that specifies capabilities that are common across namespaces for this controller.

See struct nvme_id_ns for details on 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_ns_csi(2)

text:
# nvme_identify_ns_csi(2)

## NAME
nvme_identify_ns_csi - I/O command set specific identify namespace data

## SYNOPSIS
int nvme_identify_ns_csi (int fd , __u32 nsid , __u8 uuidx , enum nvme_csi csi , void *data );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Namespace to identify

uuidx

UUID Index for differentiating vendor specific encoding

csi

Command Set Identifier

data

User space destination address to transfer the data

## DESCRIPTION
An I/O Command Set specific Identify Namespace data structure is returned for the namespace specified in nsid.

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


summary: Identify namespace user data format

text:
# nvme_identify_ns_csi_user_data_format(2)

## NAME
nvme_identify_ns_csi_user_data_format - Identify namespace user data format

## SYNOPSIS
int nvme_identify_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
Identify Namespace data structure for the specified User Data Format index containing the namespace capabilities for the NVM Command Set.

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


title: nvme_identify_ns_descs(2)

summary: Retrieves namespace descriptor list

text:
# nvme_identify_ns_descs(2)

## NAME
nvme_identify_ns_descs - Retrieves namespace descriptor list

## SYNOPSIS
int nvme_identify_ns_descs (int fd , __u32 nsid , struct nvme_ns_id_desc *descs );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

The namespace id to retrieve descriptors

descs

User space destination address to transfer the data

## DESCRIPTION
A list of Namespace Identification Descriptor structures is returned to the host for the namespace specified in the Namespace Identifier (NSID) field if it is an active NSID.

The data returned is in the form of an array of 'struct nvme_ns_id_desc'.

See struct nvme_ns_id_desc 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_ns_granularity(2)

text:
# nvme_identify_ns_granularity(2)

## NAME
nvme_identify_ns_granularity - Retrieves namespace granularity identification

## SYNOPSIS
int nvme_identify_ns_granularity (int fd , struct nvme_id_ns_granularity_list *gr_list );

## ARGUMENTS
fd

File descriptor of nvme device

gr_list

User space destination address to transfer the data

## DESCRIPTION
If the controller supports reporting of Namespace Granularity, then a Namespace Granularity List is returned to the host for up to sixteen namespace granularity descriptors

See struct nvme_id_ns_granularity_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_nsid_ctrl_list(2)

text:
# nvme_identify_nsid_ctrl_list(2)

## NAME
nvme_identify_nsid_ctrl_list - Retrieves controller list attached to an nsid

## SYNOPSIS
int nvme_identify_nsid_ctrl_list (int fd , __u32 nsid , __u16 cntid , struct nvme_ctrl_list *cntlist );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Return controllers that are attached to this nsid

cntid

Starting CNTLID to return in the list

cntlist

User space destination address to transfer the data

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

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


title: nvme_identify_nvmset_list(2)

summary: Retrieves NVM Set List

text:
# nvme_identify_nvmset_list(2)

## NAME
nvme_identify_nvmset_list - Retrieves NVM Set List

## SYNOPSIS
int nvme_identify_nvmset_list (int fd , __u16 nvmsetid , struct nvme_id_nvmset_list *nvmset );

## ARGUMENTS
fd

File descriptor of nvme device

nvmsetid

NVM Set Identifier

nvmset

User space destination address to transfer the data

## DESCRIPTION
Retrieves an NVM Set List, struct nvme_id_nvmset_list. The data structure is an ordered list by NVM Set Identifier, starting with the first NVM Set Identifier supported by the NVM subsystem that is equal to or greater than the NVM Set Identifier.

See struct nvme_id_nvmset_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_primary_ctrl(2)

text:
# nvme_identify_primary_ctrl(2)

## NAME
nvme_identify_primary_ctrl - Retrieve NVMe Primary Controller identification

## SYNOPSIS
int nvme_identify_primary_ctrl (int fd , __u16 cntid , struct nvme_primary_ctrl_cap *cap );

## ARGUMENTS
fd

File descriptor of nvme device

cntid

Return controllers starting at this identifier

cap

User space destination buffer address to transfer the data

## DESCRIPTION
See struct nvme_primary_ctrl_cap for the definition of the returned structure, cap.

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


title: nvme_identify_secondary_ctrl_list(2)

summary: Retrieves secondary controller list

text:
# nvme_identify_secondary_ctrl_list(2)

## NAME
nvme_identify_secondary_ctrl_list - Retrieves secondary controller list

## SYNOPSIS
int nvme_identify_secondary_ctrl_list (int fd , __u16 cntid , struct nvme_secondary_ctrl_list *sc_list );

## ARGUMENTS
fd

File descriptor of nvme device

cntid

Return controllers starting at this identifier

sc_list

User space destination address to transfer the data

## DESCRIPTION
A Secondary Controller List is returned to the host for up to 127 secondary controllers associated with the primary controller processing this command. The list contains entries for controller identifiers greater than or equal to the value specified in the Controller Identifier (cntid).

See struct nvme_secondary_ctrls_list for a 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_uuid(2)

summary: Retrieves device's UUIDs

text:
# nvme_identify_uuid(2)

## NAME
nvme_identify_uuid - Retrieves device's UUIDs

## SYNOPSIS
int nvme_identify_uuid (int fd , struct nvme_id_uuid_list *uuid_list );

## ARGUMENTS
fd

File descriptor of nvme device

uuid_list

User space destination address to transfer the data

## DESCRIPTION
Each UUID List entry is either 0h, the NVMe Invalid UUID, or a valid UUID. Valid UUIDs are those which are non-zero and are not the NVMe Invalid UUID.

See struct nvme_id_uuid_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_import_tls_key(2)

summary: Import a TLS key

text:
# nvme_import_tls_key(2)

## NAME
nvme_import_tls_key - Import a TLS key

## SYNOPSIS
unsigned char * nvme_import_tls_key (const char *encoded_key , int *key_len , unsigned int *hmac );

## ARGUMENTS
encoded_key

TLS key in PSK interchange format

key_len

Length of the resulting key data

hmac

HMAC algorithm

## DESCRIPTION
Imports key_data in the PSK Interchange format as defined in section 3.6.1.5 of the NVMe TCP Transport specification.

## RETURN
The raw data of the PSK or NULL with errno set on error. It is the responsibility of the caller to free the returned string.


title: nvme_import_tls_key_versioned(2)

summary: Import a TLS key

text:
# nvme_import_tls_key_versioned(2)

## NAME
nvme_import_tls_key_versioned - Import a TLS key

## SYNOPSIS
unsigned char * nvme_import_tls_key_versioned (const char *encoded_key , unsigned char *version , unsigned char *hmac , size_t *key_len );

## ARGUMENTS
encoded_key

TLS key in PSK interchange format

version

Indicated the representation of the TLS PSK

hmac

HMAC algorithm used to transfor the configured PSK in a retained PSK

key_len

Length of the resulting key data

## DESCRIPTION
Imports key_data in the PSK Interchange format as defined in section 3.6.1.5 of the NVMe TCP Transport specification.

## RETURN
The raw data of the PSK or NULL with errno set on error. It is the responsibility of the caller to free the returned string.


title: nvme_init_copy_range(2)

summary: Constructs a copy range structure

text:
# nvme_init_copy_range(2)

## NAME
nvme_init_copy_range - Constructs a copy range structure

## SYNOPSIS
void nvme_init_copy_range (struct nvme_copy_range *copy , __u16 *nlbs , __u64 *slbas , __u32 *eilbrts , __u32 *elbatms , __u32 *elbats , __u16 nr );

## ARGUMENTS
copy

Copy range array

nlbs

Number of logical blocks

slbas

Starting LBA

eilbrts

Expected initial logical block reference tag

elbatms

Expected logical block application tag mask

elbats

Expected logical block application tag

nr

Number of descriptors to construct


title: nvme_init_copy_range_f1(2)

summary: Constructs a copy range f1 structure

text:
# nvme_init_copy_range_f1(2)

## NAME
nvme_init_copy_range_f1 - Constructs a copy range f1 structure

## SYNOPSIS
void nvme_init_copy_range_f1 (struct nvme_copy_range_f1 *copy , __u16 *nlbs , __u64 *slbas , __u64 *eilbrts , __u32 *elbatms , __u32 *elbats , __u16 nr );

## ARGUMENTS
copy

Copy range array

nlbs

Number of logical blocks

slbas

Starting LBA

eilbrts

Expected initial logical block reference tag

elbatms

Expected logical block application tag mask

elbats

Expected logical block application tag

nr

Number of descriptors to construct


title: nvme_init_copy_range_f2(2)

summary: Constructs a copy range f2 structure

text:
# nvme_init_copy_range_f2(2)

## NAME
nvme_init_copy_range_f2 - Constructs a copy range f2 structure

## SYNOPSIS
void nvme_init_copy_range_f2 (struct nvme_copy_range_f2 *copy , __u32 *snsids , __u16 *nlbs , __u64 *slbas , __u16 *sopts , __u32 *eilbrts , __u32 *elbatms , __u32 *elbats , __u16 nr );

## ARGUMENTS
copy

Copy range array

snsids

Source namespace identifier

nlbs

Number of logical blocks

slbas

Starting LBA

sopts

Source options

eilbrts

Expected initial logical block reference tag

elbatms

Expected logical block application tag mask

elbats

Expected logical block application tag

nr

Number of descriptors to construct


title: nvme_init_copy_range_f3(2)

summary: Constructs a copy range f3 structure

text:
# nvme_init_copy_range_f3(2)

## NAME
nvme_init_copy_range_f3 - Constructs a copy range f3 structure

## SYNOPSIS
void nvme_init_copy_range_f3 (struct nvme_copy_range_f3 *copy , __u32 *snsids , __u16 *nlbs , __u64 *slbas , __u16 *sopts , __u64 *eilbrts , __u32 *elbatms , __u32 *elbats , __u16 nr );

## ARGUMENTS
copy

Copy range array

snsids

Source namespace identifier

nlbs

Number of logical blocks

slbas

Starting LBA

sopts

Source options

eilbrts

Expected initial logical block reference tag

elbatms

Expected logical block application tag mask

elbats

Expected logical block application tag

nr

Number of descriptors to construct


title: nvme_init_ctrl(2)

text:
# nvme_init_ctrl(2)

## NAME
nvme_init_ctrl - Initialize nvme_ctrl_t object for an existing controller.

## SYNOPSIS
int nvme_init_ctrl (nvme_host_t h , nvme_ctrl_t c , int instance );

## ARGUMENTS
h

nvme_host_t object

c

nvme_ctrl_t object

instance

Instance number (e.g. 1 for nvme1)

## RETURN
The ioctl return code. Typically 0 on success.


title: nvme_init_ctrl_list(2)

text:
# nvme_init_ctrl_list(2)

## NAME
nvme_init_ctrl_list - Initialize an nvme_ctrl_list structure from an array.

## SYNOPSIS
void nvme_init_ctrl_list (struct nvme_ctrl_list *cntlist , __u16 num_ctrls , __u16 *ctrlist );

## ARGUMENTS
cntlist

The controller list structure to initialize

num_ctrls

The number of controllers in the array, ctrlist.

ctrlist

An array of controller identifiers in CPU native endian.

## DESCRIPTION
This is intended to be used with any command that takes a controller list argument. See nvme_ns_attach_ctrls and nvme_ns_detach.


title: nvme_init_default_logging(2)

summary: Initialize default (fallback) logging

text:
# nvme_init_default_logging(2)

## NAME
nvme_init_default_logging - Initialize default (fallback) logging

## SYNOPSIS
void nvme_init_default_logging (FILE *fp , int lvl , bool log_pid , bool log_tstamp );

## ARGUMENTS
fp

File descriptor for logging messages

lvl

Logging level to set

log_pid

Boolean to enable logging of the PID

log_tstamp

Boolean to enable logging of the timestamp

## DESCRIPTION
Sets the default logging settings for the library in case the root object is absent.


title: nvme_init_dsm_range(2)

summary: Constructs a data set range structure

text:
# nvme_init_dsm_range(2)

## NAME
nvme_init_dsm_range - Constructs a data set range structure

## SYNOPSIS
void nvme_init_dsm_range (struct nvme_dsm_range *dsm , __u32 *ctx_attrs , __u32 *llbas , __u64 *slbas , __u16 nr_ranges );

## ARGUMENTS
dsm

DSM range array

ctx_attrs

Array of context attributes

llbas

Array of length in logical blocks

slbas

Array of starting logical blocks

nr_ranges

The size of the dsm arrays

## DESCRIPTION
Each array must be the same size of size 'nr_ranges'. This is intended to be used with constructing a payload for nvme_dsm.

## RETURN
The nvme command status if a response was received or -errno otherwise.


title: nvme_init_logging(2)

summary: Initialize logging

text:
# nvme_init_logging(2)

## NAME
nvme_init_logging - Initialize logging

## SYNOPSIS
void nvme_init_logging (nvme_root_t r , int lvl , bool log_pid , bool log_tstamp );

## ARGUMENTS
r

nvme_root_t context

lvl

Logging level to set

log_pid

Boolean to enable logging of the PID

log_tstamp

Boolean to enable logging of the timestamp

## DESCRIPTION
Sets the default logging variables for the library.


title: nvme_insert_tls_key(2)

summary: Derive and insert TLS key

text:
# nvme_insert_tls_key(2)

## NAME
nvme_insert_tls_key - Derive and insert TLS key

## SYNOPSIS
long nvme_insert_tls_key (const char *keyring , const char *key_type , const char *hostnqn , const char *subsysnqn , int hmac , unsigned char *configured_key , int key_len );

## ARGUMENTS
keyring

Keyring to use

key_type

Type of the resulting key

hostnqn

Host NVMe Qualified Name

subsysnqn

Subsystem NVMe Qualified Name

hmac

HMAC algorithm

configured_key

Configured key data to derive the key from

key_len

Length of configured_key

## DESCRIPTION
Derives a 'retained' TLS key as specified in NVMe TCP 1.0a and stores it as type key_type in the keyring specified by keyring.

## RETURN
The key serial number if the key could be inserted into the keyring or 0 with errno otherwise.


title: nvme_insert_tls_key_compat(2)

summary: Derive and insert TLS key

text:
# nvme_insert_tls_key_compat(2)

## NAME
nvme_insert_tls_key_compat - Derive and insert TLS key

## SYNOPSIS
long nvme_insert_tls_key_compat (const char *keyring , const char *key_type , const char *hostnqn , const char *subsysnqn , int version , int hmac , unsigned char *configured_key , int key_len );

## ARGUMENTS
keyring

Keyring to use

key_type

Type of the resulting key

hostnqn

Host NVMe Qualified Name

subsysnqn

Subsystem NVMe Qualified Name

version

Key version to use

hmac

HMAC algorithm

configured_key

Configured key data to derive the key from

key_len

Length of configured_key

## DESCRIPTION
Derives a 'retained' TLS key as specified in NVMe TCP 1.0a (if version s set to '0') or NVMe TP8028 (if version is set to '1) and stores it as type key_type in the keyring specified by keyring. This version differs from nvme_insert_tls_key_versioned in that it uses the original implementation for HKDF Expand-Label which does not prefix the 'info' and 'label' strings with the length.

## RETURN
The key serial number if the key could be inserted into the keyring or 0 with errno otherwise.


title: nvme_insert_tls_key_versioned(2)

summary: Derive and insert TLS key

text:
# nvme_insert_tls_key_versioned(2)

## NAME
nvme_insert_tls_key_versioned - Derive and insert TLS key

## SYNOPSIS
long nvme_insert_tls_key_versioned (const char *keyring , const char *key_type , const char *hostnqn , const char *subsysnqn , int version , int hmac , unsigned char *configured_key , int key_len );

## ARGUMENTS
keyring

Keyring to use

key_type

Type of the resulting key

hostnqn

Host NVMe Qualified Name

subsysnqn

Subsystem NVMe Qualified Name

version

Key version to use

hmac

HMAC algorithm

configured_key

Configured key data to derive the key from

key_len

Length of configured_key

## DESCRIPTION
Derives a 'retained' TLS key as specified in NVMe TCP 1.0a (if version s set to '0') or NVMe TP8028 (if version is set to '1) and stores it as type key_type in the keyring specified by keyring.

## RETURN
The key serial number if the key could be inserted into the keyring or 0 with errno otherwise.


title: nvme_io(2)

summary: Submit an nvme user I/O command

text:
# nvme_io(2)

## NAME
nvme_io - Submit an nvme user I/O command

## SYNOPSIS
int nvme_io (struct nvme_io_args *args , __u8 opcode );

## ARGUMENTS
args

struct nvme_io_args argument structure

opcode

Opcode to execute

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


title: nvme_io_args(2)

summary: Arguments for NVMe I/O commands

text:
# nvme_io_args(2)

## NAME
struct nvme_io_args - Arguments for NVMe I/O commands

## SYNOPSIS
struct nvme_io_args {

__u64 slba;

__u64 storage_tag;

__u32 *result;

void *data;

void *metadata;

int args_size;

int fd;

__u32 timeout;

__u32 nsid;

__u32 reftag;

__u32 data_len;

__u32 metadata_len;

__u16 nlb;

__u16 control;

__u16 apptag;

__u16 appmask;

__u16 dspec;

__u8 dsm;

__u8 rsvd1[1];

__u64 reftag_u64;

__u8 sts;

__u8 pif;

};

## Members
slba

Starting logical block

storage_tag

This filed specifies Variable Sized Expected Logical Block Storage Tag (ELBST) or Logical Block Storage Tag (LBST)

result

The command completion result from CQE dword0

data

Pointer to user address of the data buffer

metadata

Pointer to user address of the metadata buffer

args_size

Size of struct nvme_io_args

fd

File descriptor of nvme device

timeout

Timeout in ms

nsid

Namespace ID

reftag

This field specifies the variable sized Expected Initial Logical Block Reference Tag (EILBRT) or Initial Logical Block Reference Tag (ILBRT). Used only if the namespace is formatted to use end-to-end protection information.

data_len

Length of user buffer, data, in bytes

metadata_len

Length of user buffer, metadata, in bytes

nlb

Number of logical blocks to send (0's based value)

control

Command control flags, see enum nvme_io_control_flags.

apptag

This field specifies the Application Tag Mask expected value. Used only if the namespace is formatted to use end-to-end protection information.

appmask

This field specifies the Application Tag expected value. Used only if the namespace is formatted to use end-to-end protection information.

dspec

Directive specific value

dsm

Data set management attributes, see enum nvme_io_dsm_flags

rsvd1

Reserved

reftag_u64

This field specifies the variable sized Expected Initial Logical Block Reference Tag (EILBRT) or Initial Logical Block Reference Tag (ILBRT). It is the 8 byte version required for enhanced protection information. Used only if the namespace is formatted to use end-to-end protection information.

sts

Storage tag size in bits, set by namespace Extended LBA Format

pif

Protection information format, determines how variable sized storage_tag and reftag are put into dwords 2, 3, and 14. Set by namespace Extended LBA Format.


title: nvme_io_control_flags(2)

summary: I/O control flags

text:
# nvme_io_control_flags(2)

## NAME
enum nvme_io_control_flags - I/O control flags

## SYNOPSIS
enum nvme_io_control_flags {

NVME_IO_DTYPE_STREAMS ,

NVME_IO_NSZ ,

NVME_IO_STC ,

NVME_IO_DEAC ,

NVME_IO_ZNS_APPEND_PIREMAP ,

NVME_IO_PRINFO_PRCHK_REF ,

NVME_IO_PRINFO_PRCHK_APP ,

NVME_IO_PRINFO_PRCHK_GUARD ,

NVME_IO_PRINFO_PRACT ,

NVME_IO_FUA ,

NVME_IO_LR

};

## Constants
NVME_IO_DTYPE_STREAMS

Directive Type Streams

NVME_IO_NSZ

Namespace Zeroes

NVME_IO_STC

Storage Tag Check

NVME_IO_DEAC

Deallocate

NVME_IO_ZNS_APPEND_PIREMAP

Protection Information Remap

NVME_IO_PRINFO_PRCHK_REF

Protection Information Check Reference Tag

NVME_IO_PRINFO_PRCHK_APP

Protection Information Check Application Tag

NVME_IO_PRINFO_PRCHK_GUARD

Protection Information Check Guard field

NVME_IO_PRINFO_PRACT

Protection Information Action

NVME_IO_FUA

Force Unit Access

NVME_IO_LR

Limited Retry


title: nvme_io_dsm_flags(2)

summary: Dataset Management flags

text:
# nvme_io_dsm_flags(2)

## NAME
enum nvme_io_dsm_flags - Dataset Management flags

## SYNOPSIS
enum nvme_io_dsm_flags {

NVME_IO_DSM_FREQ_UNSPEC ,

NVME_IO_DSM_FREQ_TYPICAL ,

NVME_IO_DSM_FREQ_RARE ,

NVME_IO_DSM_FREQ_READS ,

NVME_IO_DSM_FREQ_WRITES ,

NVME_IO_DSM_FREQ_RW ,

NVME_IO_DSM_FREQ_ONCE ,

NVME_IO_DSM_FREQ_PREFETCH ,

NVME_IO_DSM_FREQ_TEMP ,

NVME_IO_DSM_LATENCY_NONE ,

NVME_IO_DSM_LATENCY_IDLE ,

NVME_IO_DSM_LATENCY_NORM ,

NVME_IO_DSM_LATENCY_LOW ,

NVME_IO_DSM_SEQ_REQ ,

NVME_IO_DSM_COMPRESSED

};

## Constants
NVME_IO_DSM_FREQ_UNSPEC

No frequency information provided

NVME_IO_DSM_FREQ_TYPICAL

Typical number of reads and writes expected for this LBA range

NVME_IO_DSM_FREQ_RARE

Infrequent writes and infrequent reads to the LBA range indicated

NVME_IO_DSM_FREQ_READS

Infrequent writes and frequent reads to the LBA range indicated

NVME_IO_DSM_FREQ_WRITES

Frequent writes and infrequent reads to the LBA range indicated

NVME_IO_DSM_FREQ_RW

Frequent writes and frequent reads to the LBA range indicated

NVME_IO_DSM_FREQ_ONCE

NVME_IO_DSM_FREQ_PREFETCH

NVME_IO_DSM_FREQ_TEMP

NVME_IO_DSM_LATENCY_NONE

No latency information provided

NVME_IO_DSM_LATENCY_IDLE

Longer latency acceptable

NVME_IO_DSM_LATENCY_NORM

Typical latency

NVME_IO_DSM_LATENCY_LOW

Smallest possible latency

NVME_IO_DSM_SEQ_REQ

NVME_IO_DSM_COMPRESSED


title: nvme_io_mgmt_recv(2)

summary: I/O Management Receive command

text:
# nvme_io_mgmt_recv(2)

## NAME
nvme_io_mgmt_recv - I/O Management Receive command

## SYNOPSIS
int nvme_io_mgmt_recv (struct nvme_io_mgmt_recv_args *args );

## ARGUMENTS
args

struct nvme_io_mgmt_recv_args argument structure

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


title: nvme_io_mgmt_recv_args(2)

text:
# nvme_io_mgmt_recv_args(2)

## NAME
struct nvme_io_mgmt_recv_args - Arguments for the NVMe I/O Management Receive command

## SYNOPSIS
struct nvme_io_mgmt_recv_args {

void *data;

int args_size;

int fd;

__u32 nsid;

__u32 data_len;

__u32 timeout;

__u16 mos;

__u8 mo;

};

## Members
data

Userspace address of the data

args_size

Size of struct nvme_io_mgmt_recv_args

fd

File descriptor of nvme device

nsid

Namespace identifier

data_len

Length of data

timeout

Timeout in ms

mos

Management Operation Specific

mo

Management Operation


title: nvme_io_mgmt_recv_mo(2)

text:
# nvme_io_mgmt_recv_mo(2)

## NAME
enum nvme_io_mgmt_recv_mo - I/O Management Receive - Management Operation

## SYNOPSIS
enum nvme_io_mgmt_recv_mo {

NVME_IO_MGMT_RECV_RUH_STATUS

};

## Constants
NVME_IO_MGMT_RECV_RUH_STATUS

Reclaim Unit Handle Status


title: nvme_io_mgmt_send(2)

summary: I/O Management Send command

text:
# nvme_io_mgmt_send(2)

## NAME
nvme_io_mgmt_send - I/O Management Send command

## SYNOPSIS
int nvme_io_mgmt_send (struct nvme_io_mgmt_send_args *args );

## ARGUMENTS
args

struct nvme_io_mgmt_send_args argument structure

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


title: nvme_io_mgmt_send_args(2)

text:
# nvme_io_mgmt_send_args(2)

## NAME
struct nvme_io_mgmt_send_args - Arguments for the NVMe I/O Management Send command

## SYNOPSIS
struct nvme_io_mgmt_send_args {

void *data;

int args_size;

int fd;

__u32 nsid;

__u32 data_len;

__u32 timeout;

__u16 mos;

__u8 mo;

};

## Members
data

Userspace address of the data

args_size

Size of struct nvme_io_mgmt_send_args

fd

File descriptor of nvme device

nsid

Namespace identifier

data_len

Length of data

timeout

Timeout in ms

mos

Management Operation Specific

mo

Management Operation


title: nvme_io_mgmt_send_mo(2)

text:
# nvme_io_mgmt_send_mo(2)

## NAME
enum nvme_io_mgmt_send_mo - I/O Management Send - Management Operation

## SYNOPSIS
enum nvme_io_mgmt_send_mo {

NVME_IO_MGMT_SEND_RUH_UPDATE

};

## Constants
NVME_IO_MGMT_SEND_RUH_UPDATE

Reclaim Unit Handle Update


title: nvme_io_opcode(2)

summary: Opcodes for I/O Commands

text:
# nvme_io_opcode(2)

## NAME
enum nvme_io_opcode - Opcodes for I/O Commands

## SYNOPSIS
enum nvme_io_opcode {

nvme_cmd_flush ,

nvme_cmd_write ,

nvme_cmd_read ,

nvme_cmd_write_uncor ,

nvme_cmd_compare ,

nvme_cmd_write_zeroes ,

nvme_cmd_dsm ,

nvme_cmd_verify ,

nvme_cmd_resv_register ,

nvme_cmd_resv_report ,

nvme_cmd_resv_acquire ,

nvme_cmd_io_mgmt_recv ,

nvme_cmd_resv_release ,

nvme_cmd_cancel ,

nvme_cmd_copy ,

nvme_cmd_io_mgmt_send ,

nvme_zns_cmd_mgmt_send ,

nvme_zns_cmd_mgmt_recv ,

nvme_zns_cmd_append ,

nvme_cmd_fabric

};

## Constants
nvme_cmd_flush

Flush

nvme_cmd_write

Write

nvme_cmd_read

Read

nvme_cmd_write_uncor

Write Uncorrectable

nvme_cmd_compare

Compare

nvme_cmd_write_zeroes

write Zeros

nvme_cmd_dsm

Dataset Management

nvme_cmd_verify

Verify

nvme_cmd_resv_register

Reservation Register

nvme_cmd_resv_report

Reservation Report

nvme_cmd_resv_acquire

Reservation Acquire

nvme_cmd_io_mgmt_recv

I/O Management Receive

nvme_cmd_resv_release

Reservation Release

nvme_cmd_cancel

Cancel

nvme_cmd_copy

Copy

nvme_cmd_io_mgmt_send

I/O Management Send

nvme_zns_cmd_mgmt_send

Zone Management Send

nvme_zns_cmd_mgmt_recv

Zone Management Receive

nvme_zns_cmd_append

Zone Append

nvme_cmd_fabric

Fabric Commands


title: nvme_io_passthru(2)

summary: Submit an nvme io passthrough command

text:
# nvme_io_passthru(2)

## NAME
nvme_io_passthru - Submit an nvme io passthrough command

## SYNOPSIS
int nvme_io_passthru (int fd , __u8 opcode , __u8 flags , __u16 rsvd , __u32 nsid , __u32 cdw2 , __u32 cdw3 , __u32 cdw10 , __u32 cdw11 , __u32 cdw12 , __u32 cdw13 , __u32 cdw14 , __u32 cdw15 , __u32 data_len , void *data , __u32 metadata_len , void *metadata , __u32 timeout_ms , __u32 *result );

## ARGUMENTS
fd

File descriptor of nvme device

opcode

The nvme io command to send

flags

NVMe command flags (not used)

rsvd

Reserved for future use

nsid

Namespace identifier

cdw2

Command dword 2

cdw3

Command dword 3

cdw10

Command dword 10

cdw11

Command dword 11

cdw12

Command dword 12

cdw13

Command dword 13

cdw14

Command dword 14

cdw15

Command dword 15

data_len

Length of the data transferred in this command in bytes

data

Pointer to user address of the data buffer

metadata_len

Length of metadata transferred in this command

metadata

Pointer to user address of the metadata buffer

timeout_ms

How long the kernel waits for the command to complete

result

Optional field to return the result from the CQE dword 0

## DESCRIPTION
Parameterized form of nvme_submit_io_passthru. This sets up and submits a struct nvme_passthru_cmd.

Known values for opcode are defined in enum nvme_io_opcode.

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


title: nvme_io_passthru64(2)

summary: Submit an nvme io passthrough command

text:
# nvme_io_passthru64(2)

## NAME
nvme_io_passthru64 - Submit an nvme io passthrough command

## SYNOPSIS
int nvme_io_passthru64 (int fd , __u8 opcode , __u8 flags , __u16 rsvd , __u32 nsid , __u32 cdw2 , __u32 cdw3 , __u32 cdw10 , __u32 cdw11 , __u32 cdw12 , __u32 cdw13 , __u32 cdw14 , __u32 cdw15 , __u32 data_len , void *data , __u32 metadata_len , void *metadata , __u32 timeout_ms , __u64 *result );

## ARGUMENTS
fd

File descriptor of nvme device

opcode

The nvme io command to send

flags

NVMe command flags (not used)

rsvd

Reserved for future use

nsid

Namespace identifier

cdw2

Command dword 2

cdw3

Command dword 3

cdw10

Command dword 10

cdw11

Command dword 11

cdw12

Command dword 12

cdw13

Command dword 13

cdw14

Command dword 14

cdw15

Command dword 15

data_len

Length of the data transferred in this command in bytes

data

Pointer to user address of the data buffer

metadata_len

Length of metadata transferred in this command

metadata

Pointer to user address of the metadata buffer

timeout_ms

How long the kernel waits for the command to complete

result

Optional field to return the result from the CQE dword 0

## DESCRIPTION
Parameterized form of nvme_submit_io_passthru64. This sets up and submits a struct nvme_passthru_cmd64.

Known values for opcode are defined in enum nvme_io_opcode.

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


title: nvme_is_64bit_reg(2)

text:
# nvme_is_64bit_reg(2)

## NAME
nvme_is_64bit_reg - Checks if offset of the controller register is a know 64bit value.

## SYNOPSIS
bool nvme_is_64bit_reg (__u32 offset );

## ARGUMENTS
offset

Offset of controller register field in bytes

## DESCRIPTION
This function does not care about transport so that the offset is not going to be checked inside of this function for the unsupported fields in a specific transport. For example, BPMBL(Boot Partition Memory Buffer Location) register is not supported by fabrics, but it can be checked here.

## RETURN
true if given offset is 64bit register, otherwise it returns false.


title: nvme_kv_opcode(2)

summary: Opcodes for KV Commands

text:
# nvme_kv_opcode(2)

## NAME
enum nvme_kv_opcode - Opcodes for KV Commands

## SYNOPSIS
enum nvme_kv_opcode {

nvme_kv_cmd_flush ,

nvme_kv_cmd_store ,

nvme_kv_cmd_retrieve ,

nvme_kv_cmd_list ,

nvme_kv_cmd_resv_register ,

nvme_kv_cmd_resv_report ,

nvme_kv_cmd_delete ,

nvme_kv_cmd_resv_acquire ,

nvme_kv_cmd_exist ,

nvme_kv_cmd_resv_release

};

## Constants
nvme_kv_cmd_flush

Flush

nvme_kv_cmd_store

Store

nvme_kv_cmd_retrieve

Retrieve

nvme_kv_cmd_list

List

nvme_kv_cmd_resv_register

Reservation Register

nvme_kv_cmd_resv_report

Reservation Report

nvme_kv_cmd_delete

Delete

nvme_kv_cmd_resv_acquire

Reservation Acquire

nvme_kv_cmd_exist

Exist

nvme_kv_cmd_resv_release

Reservation Release


title: nvme_lba_range_type(2)

summary: LBA Range Type

text:
# nvme_lba_range_type(2)

## NAME
struct nvme_lba_range_type - LBA Range Type

## SYNOPSIS
struct nvme_lba_range_type {

struct nvme_lba_range_type_entry entry[NVME_FEAT_LBA_RANGE_MAX];

};

## Members
entry

LBA range type entry. See struct nvme_lba_range_type_entry


title: nvme_lba_range_type_entry(2)

summary: LBA Range Type - Data Structure Entry

text:
# nvme_lba_range_type_entry(2)

## NAME
struct nvme_lba_range_type_entry - LBA Range Type - Data Structure Entry

## SYNOPSIS
struct nvme_lba_range_type_entry {

__u8 type;

__u8 attributes;

__u8 rsvd2[14];

__le64 slba;

__le64 nlb;

__u8 guid[16];

__u8 rsvd48[16];

};

## Members
type

Specifies the Type of the LBA range

attributes

Specifies attributes of the LBA range

rsvd2

Reserved

slba

Starting LBA

nlb

Number of Logical Blocks

guid

Unique Identifier

rsvd48

Reserved


title: nvme_lba_rd(2)

summary: LBA Range Descriptor

text:
# nvme_lba_rd(2)

## NAME
struct nvme_lba_rd - LBA Range Descriptor

## SYNOPSIS
struct nvme_lba_rd {

__le64 rslba;

__le32 rnlb;

__u8 rsvd12[4];

};

## Members
rslba

Range Starting LBA

rnlb

Range Number of Logical Blocks

rsvd12

Reserved


title: nvme_lba_status(2)

summary: LBA Status Descriptor List

text:
# nvme_lba_status(2)

## NAME
struct nvme_lba_status - LBA Status Descriptor List

## SYNOPSIS
struct nvme_lba_status {

__le32 nlsd;

__u8 cmpc;

__u8 rsvd5[3];

struct nvme_lba_status_desc descs[];

};

## Members
nlsd

Number of LBA Status Descriptors

cmpc

Completion Condition

rsvd5

Reserved

descs

LBA status descriptor Entry


title: nvme_lba_status_atype(2)

text:
# nvme_lba_status_atype(2)

## NAME
enum nvme_lba_status_atype - Action type the controller uses to return LBA status

## SYNOPSIS
enum nvme_lba_status_atype {

NVME_LBA_STATUS_ATYPE_ALLOCATED ,

NVME_LBA_STATUS_ATYPE_SCAN_UNTRACKED ,

NVME_LBA_STATUS_ATYPE_TRACKED

};

## Constants
NVME_LBA_STATUS_ATYPE_ALLOCATED

Return tracked allocated LBAs status

NVME_LBA_STATUS_ATYPE_SCAN_UNTRACKED

Perform scan and return Untracked and Tracked Potentially Unrecoverable LBAs status

NVME_LBA_STATUS_ATYPE_TRACKED

Return Tracked Potentially Unrecoverable LBAs associated with physical storage


title: nvme_lba_status_cmpc(2)

text:
# nvme_lba_status_cmpc(2)

## NAME
enum nvme_lba_status_cmpc - Get LBA Status Command Completion Condition

## SYNOPSIS
enum nvme_lba_status_cmpc {

NVME_LBA_STATUS_CMPC_NO_CMPC ,

NVME_LBA_STATUS_CMPC_INCOMPLETE ,

NVME_LBA_STATUS_CMPC_COMPLETE

};

## Constants
NVME_LBA_STATUS_CMPC_NO_CMPC

No indication of the completion condition

NVME_LBA_STATUS_CMPC_INCOMPLETE

Command completed, but additional LBA Status Descriptor Entries are available to transfer or scan did not complete (if ATYPE = 10h)

NVME_LBA_STATUS_CMPC_COMPLETE

Completed the specified action over the number of LBAs specified in the Range Length field and transferred all available LBA Status Descriptors


title: nvme_lba_status_desc(2)

summary: LBA Status Descriptor Entry

text:
# nvme_lba_status_desc(2)

## NAME
struct nvme_lba_status_desc - LBA Status Descriptor Entry

## SYNOPSIS
struct nvme_lba_status_desc {

__le64 dslba;

__le32 nlb;

__u8 rsvd12;

__u8 status;

__u8 rsvd14[2];

};

## Members
dslba

Descriptor Starting LBA

nlb

Number of Logical Blocks

rsvd12

Reserved

status

Additional status about this LBA range

rsvd14

Reserved


title: nvme_lba_status_log(2)

summary: LBA Status Information Log

text:
# nvme_lba_status_log(2)

## NAME
struct nvme_lba_status_log - LBA Status Information Log

## SYNOPSIS
struct nvme_lba_status_log {

__le32 lslplen;

__le32 nlslne;

__le32 estulb;

__u8 rsvd12[2];

__le16 lsgc;

struct nvme_lbas_ns_element elements[];

};

## Members
lslplen

LBA Status Log Page Length

nlslne

Number of LBA Status Log Namespace Elements

estulb

Estimate of Unrecoverable Logical Blocks

rsvd12

Reserved

lsgc

LBA Status Generation Counter

elements

LBA Status Log Namespace Element List


title: nvme_lbaf(2)

summary: LBA Format Data Structure

text:
# nvme_lbaf(2)

## NAME
struct nvme_lbaf - LBA Format Data Structure

## SYNOPSIS
struct nvme_lbaf {

__le16 ms;

__u8 ds;

__u8 rp;

};

## Members
ms

Metadata Size indicates the number of metadata bytes provided per LBA based on the LBA Data Size indicated.

ds

LBA Data Size indicates the LBA data size supported, reported as a power of two.

rp

Relative Performance, see enum nvme_lbaf_rp.


title: nvme_lbaf_rp(2)

text:
# nvme_lbaf_rp(2)

## NAME
enum nvme_lbaf_rp - This field indicates the relative performance of the LBA format indicated relative to other LBA formats supported by the controller.

## SYNOPSIS
enum nvme_lbaf_rp {

NVME_LBAF_RP_BEST ,

NVME_LBAF_RP_BETTER ,

NVME_LBAF_RP_GOOD ,

NVME_LBAF_RP_DEGRADED ,

NVME_LBAF_RP_MASK

};

## Constants
NVME_LBAF_RP_BEST

Best performance

NVME_LBAF_RP_BETTER

Better performance

NVME_LBAF_RP_GOOD

Good performance

NVME_LBAF_RP_DEGRADED

Degraded performance

NVME_LBAF_RP_MASK

Mask to get the relative performance value from the field


title: nvme_lbart(2)

summary: LBA Range Type - Data Structure Entry

text:
# nvme_lbart(2)

## NAME
enum nvme_lbart - LBA Range Type - Data Structure Entry

## SYNOPSIS
enum nvme_lbart {

NVME_LBART_TYPE_GP ,

NVME_LBART_TYPE_FS ,

NVME_LBART_TYPE_RAID ,

NVME_LBART_TYPE_CACHE ,

NVME_LBART_TYPE_SWAP ,

NVME_LBART_ATTRIB_TEMP ,

NVME_LBART_ATTRIB_HIDE

};

## Constants
NVME_LBART_TYPE_GP

General Purpose

NVME_LBART_TYPE_FS

Filesystem

NVME_LBART_TYPE_RAID

RAID

NVME_LBART_TYPE_CACHE

Cache

NVME_LBART_TYPE_SWAP

Page / swap file

NVME_LBART_ATTRIB_TEMP

Temp

NVME_LBART_ATTRIB_HIDE

Hidden


title: nvme_lbas_ns_element(2)

summary: LBA Status Log Namespace Element

text:
# nvme_lbas_ns_element(2)

## NAME
struct nvme_lbas_ns_element - LBA Status Log Namespace Element

## SYNOPSIS
struct nvme_lbas_ns_element {

__le32 neid;

__le32 nlrd;

__u8 ratype;

__u8 rsvd8[7];

struct nvme_lba_rd lba_rd[];

};

## Members
neid

Namespace Element Identifier

nlrd

Number of LBA Range Descriptors

ratype

Recommended Action Type. see enum nvme_lba_status_atype

rsvd8

Reserved

lba_rd

LBA Range Descriptor


title: nvme_lm_cdq(2)

text:
# nvme_lm_cdq(2)

## NAME
nvme_lm_cdq - Controller Data Queue - Controller Data Queue command

## SYNOPSIS
int nvme_lm_cdq (struct nvme_lm_cdq_args *args );

## ARGUMENTS
args

struct nvme_lm_cdq_args argument structure

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


title: nvme_lm_cdq_args(2)

text:
# nvme_lm_cdq_args(2)

## NAME
struct nvme_lm_cdq_args - Arguments for Controller Data Queue (CDQ) command

## SYNOPSIS
struct nvme_lm_cdq_args {

__u32 *result;

void *data;

int args_size;

int fd;

__u32 timeout;

__u16 mos;

__u16 cntlid;

__u16 cdqid;

__u8 sel;

__u8 sz_u8;

__u8 rsvd1[4];

__u32 sz;

};

## Members
result

Set on completion to the command's CQE DWORD 0 controller response

data

Pointer to data

args_size

Length of structure

fd

File descriptor of nvme device

timeout

Timeout in ms

mos

Management Operation Specific (MOS): This field is specific to the SEL type

cntlid

Controller ID: For Create CDQ, specifies the target migratable controller

cdqid

Controller Data Queue ID (CDQID): For Create CDQ, this field is the CDQID created by the controller if no error is present. For Delete CDQ, this field is the CDQID to delete.

sel

Select (SEL): This field specifies the type of management operation to perform.

sz_u8

For Create CDQ, specifies the size of CDQ, in dwords - 1 byte

rsvd1

Reserved

sz

For Create CDQ, specifies the size of CDQ, in dwords - 4 byte


title: nvme_lm_cdq_fields(2)

summary: Controller Data Queue command fields

text:
# nvme_lm_cdq_fields(2)

## NAME
enum nvme_lm_cdq_fields - Controller Data Queue command fields

## SYNOPSIS
enum nvme_lm_cdq_fields {

NVME_LM_CDQ_MOS_SHIFT ,

NVME_LM_CDQ_MOS_MASK ,

NVME_LM_CDQ_SEL_SHIFT ,

NVME_LM_CDQ_SEL_MASK ,

NVME_LM_SEL_CREATE_CDQ ,

NVME_LM_SEL_DELETE_CDQ ,

NVME_LM_QT_SHIFT ,

NVME_LM_QT_MASK ,

NVME_LM_CQS_SHIFT ,

NVME_LM_CQS_MASK ,

NVME_LM_QT_USER_DATA_MIGRATION_QUEUE ,

NVME_LM_CREATE_CDQ_PC ,

NVME_LM_CREATE_CDQ_CNTLID_SHIFT ,

NVME_LM_CREATE_CDQ_CNTLID_MASK ,

NVME_LM_DELETE_CDQ_CDQID_SHIFT ,

NVME_LM_DELETE_CDQ_CDQID_MASK ,

NVME_LM_CREATE_CDQ_CDQID_SHIFT ,

NVME_LM_CREATE_CDQ_CDQID_MASK

};

## Constants
NVME_LM_CDQ_MOS_SHIFT

Shift to set Management Operation Specific (MOS) field

NVME_LM_CDQ_MOS_MASK

Mask to set MOS field

NVME_LM_CDQ_SEL_SHIFT

Shift to set Select (SEL) field

NVME_LM_CDQ_SEL_MASK

Mask to set SEL field

NVME_LM_SEL_CREATE_CDQ

Create CDQ select option

NVME_LM_SEL_DELETE_CDQ

Delete CDQ select option

NVME_LM_QT_SHIFT

Shift amount to set Queue Type (QT) field relative to MOS

NVME_LM_QT_MASK

Mask to set QT field relative to MOS

NVME_LM_CQS_SHIFT

Shift amount for Create Queue Specific (CQS) field

NVME_LM_CQS_MASK

Mask to set CQS field

NVME_LM_QT_USER_DATA_MIGRATION_QUEUE

User Data Migration Queue type

NVME_LM_CREATE_CDQ_PC

Physically Contiguous (PC)

NVME_LM_CREATE_CDQ_CNTLID_SHIFT

Shift amount to set CNTLID field relative to MOS

NVME_LM_CREATE_CDQ_CNTLID_MASK

Mask to set CNTLID field relative to MOS

NVME_LM_DELETE_CDQ_CDQID_SHIFT

Shift amount to set CDQID field for deletion

NVME_LM_DELETE_CDQ_CDQID_MASK

Mask to set CDQID field for deletion

NVME_LM_CREATE_CDQ_CDQID_SHIFT

Shift amount to get CDQID field from Create response in completion dword0

NVME_LM_CREATE_CDQ_CDQID_MASK

Mask to get CNTLID field from Create response in completion dword0


title: nvme_lm_controller_state_data(2)

text:
# nvme_lm_controller_state_data(2)

## NAME
struct nvme_lm_controller_state_data - Controller State data structure contains data on the controller's state.

## SYNOPSIS
struct nvme_lm_controller_state_data {

struct nvme_lm_controller_state_data_header hdr;

struct nvme_lm_nvme_controller_state_data data;

};

## Members
hdr

Header

data

Data


title: nvme_lm_controller_state_data_header(2)

text:
# nvme_lm_controller_state_data_header(2)

## NAME
struct nvme_lm_controller_state_data_header - Controller State data header structure describes the contents of the Controller State data

## SYNOPSIS
struct nvme_lm_controller_state_data_header {

__le16 ver;

__u8 csattr;

__u8 rsvd3[13];

__u8 nvmecss[16];

__u8 vss[16];

};

## Members
ver

Version of this data structure

csattr

Controller state attributes

rsvd3

Reserved

nvmecss

NVMe Controller state size in dwords

vss

Vendor specific size in dowrds