title: nvme_lm_ctrl_data_queue_fid(2)

summary: Controller Data Queue - Set Feature

text:
# nvme_lm_ctrl_data_queue_fid(2)

## NAME
enum nvme_lm_ctrl_data_queue_fid - Controller Data Queue - Set Feature

## SYNOPSIS
enum nvme_lm_ctrl_data_queue_fid {

NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK ,

NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT

};

## Constants
NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK

Mask to set Enable Tail Pointer Trigger (ETPT)

NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT

Shift to set ETPT


package: libnvme-devel

title: nvme_lm_ctrl_data_queue_fid_data(2)

summary: Get Controller Data Queue feature data

text:
# nvme_lm_ctrl_data_queue_fid_data(2)

## NAME
struct nvme_lm_ctrl_data_queue_fid_data - Get Controller Data Queue feature data

## SYNOPSIS
struct nvme_lm_ctrl_data_queue_fid_data {

__le32 hp;

__le32 tpt;

};

## Members
hp

Head Pointer

tpt

Tail Pointer Trigger

branch: sisyphus


title: nvme_lm_io_completion_queue_data(2)

text:
# nvme_lm_io_completion_queue_data(2)

## NAME
struct nvme_lm_io_completion_queue_data - I/O Completion Queue data structure. Fields related to the contents of Create I/O Completion Queue command that created an I/O Completion Queue.

## SYNOPSIS
struct nvme_lm_io_completion_queue_data {

__le64 iocqprp1;

__le16 iocqqsize;

__le16 iocqqid;

__le16 iocqhp;

__le16 iocqtp;

__le32 iocqa;

__u8 rsvd20[4];

};

## Members
iocqprp1

I/O Completion Queue PRP Entry 1 (IOCQPRP1)

iocqqsize

I/O Completion Queue Size (IOCQQSIZE)

iocqqid

I/O Completion Queue Identifier (IOCQQID)

iocqhp

I/O Completion Queue Head Pointer (IOCQHP)

iocqtp

I/O Completion Queue Tail Pointer (IOCQTP)

iocqa

I/O Completion Queue Attributes (IOCQA)

rsvd20

Reserved


title: nvme_lm_io_submission_queue_data(2)

text:
# nvme_lm_io_submission_queue_data(2)

## NAME
struct nvme_lm_io_submission_queue_data - I/O Submission Queue data structure. Fields related to the contents of Create I/O Submission Queue command that created an I/O Submission Queue.

## SYNOPSIS
struct nvme_lm_io_submission_queue_data {

__le64 iosqprp1;

__le16 iosqqsize;

__le16 iosqqid;

__le16 iosqcqid;

__le16 iosqa;

__le16 iosqhp;

__le16 iosqtp;

__u8 rsvd20[4];

};

## Members
iosqprp1

I/O Submission PRP Entry 1 (IOSQPRP1)

iosqqsize

I/O Submission Queue Size (IOSQQSIZE)

iosqqid

I/O Submission Queue Identifier (IOSQQID)

iosqcqid

I/O Completion Queue Identifier (IOSQCQID)

iosqa

I/O Submission Queue Attributes (IOSQA)

iosqhp

I/O Submission Queue Head Pointer (IOSQHP)

iosqtp

I/O Submission Queue Tail Pointer (IOSQTP)

rsvd20

Reserved


title: nvme_lm_migration_recv_args(2)

text:
# nvme_lm_migration_recv_args(2)

## NAME
struct nvme_lm_migration_recv_args - Arguments for the Migration Receive command

## SYNOPSIS
struct nvme_lm_migration_recv_args {

__u64 offset;

__u32 *result;

void *data;

int args_size;

int fd;

__u32 timeout;

__u32 numd;

__u16 mos;

__u16 cntlid;

__u16 csuuidi;

__u8 sel;

__u8 uidx;

__u8 csuidxp;

};

## Members
offset

Offset: This field specifies the offset, in bytes, within the data available to be returned and specifies the starting point for that data for what is actually returned to the host.

result

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

data

Pointer to data

args_size

Length of structure

fd

File descriptor of nvme device

timeout

Timeout in ms

numd

Number of Dwords (NUMD): This field specifies the number of dwords to return. This is a 0's based value.

mos

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

cntlid

Controller ID: This field specifies the identifier of the controller to which the operation is performed.

csuuidi

Controller State UUID Index (CSUUIDI): A non-zero value in this field specifies the index to a specific entry in the Vendor Specific Controller State UUID Supported. list of the Supported Controller State Formats data structure.

sel

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

uidx

UUID Index (UIDX): If this field is set to a non-zero value, then the value of this field is the index of a UUID in the UUID List (refer to Figure 320) that is used by the command.

csuidxp

Controller State UUID Index Parameter (CSUIDXP): This field is vendor specific.


title: nvme_lm_migration_recv_fields(2)

summary: Migration Receive command fields

text:
# nvme_lm_migration_recv_fields(2)

## NAME
enum nvme_lm_migration_recv_fields - Migration Receive command fields

## SYNOPSIS
enum nvme_lm_migration_recv_fields {

NVME_LM_MIGRATION_RECV_MOS_SHIFT ,

NVME_LM_MIGRATION_RECV_MOS_MASK ,

NVME_LM_MIGRATION_RECV_SEL_SHIFT ,

NVME_LM_MIGRATION_RECV_SEL_MASK ,

NVME_LM_SEL_GET_CONTROLLER_STATE ,

NVME_LM_MIGRATION_RECV_UIDX_SHIFT ,

NVME_LM_MIGRATION_RECV_UIDX_MASK ,

NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT ,

NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK ,

NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT ,

NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK ,

NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT ,

NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK ,

NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT ,

NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK ,

NVME_LM_GET_CONTROLLER_STATE_CSUP

};

## Constants
NVME_LM_MIGRATION_RECV_MOS_SHIFT

Shift amount to set Management Specific Operation (MOS) field

NVME_LM_MIGRATION_RECV_MOS_MASK

Mask to set MOS field

NVME_LM_MIGRATION_RECV_SEL_SHIFT

Shift amount to set Select (SEL) field

NVME_LM_MIGRATION_RECV_SEL_MASK

Mask to set SEL field

NVME_LM_SEL_GET_CONTROLLER_STATE

Get Controller State select option

NVME_LM_MIGRATION_RECV_UIDX_SHIFT

Shift to set UUID Index (UIDX)

NVME_LM_MIGRATION_RECV_UIDX_MASK

Mask to set UIDX

NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT

Shift amount to set Controller State Version Index (CSVI) relative to MOS

NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK

Mask to set CSVI relative to MOS

NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT

Shift amount to set Controller State UUID Index Parameter (CSUIDXP)

NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK

Mask to set CSUIDXP

NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT

Shift amount to set Controller State UUID Index (CSUUIDI)

NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK

Mask to set CSUUIDI

NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT

Shift amount to set Controller ID (CNTLID)

NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK

Mask to set CNTLID

NVME_LM_GET_CONTROLLER_STATE_CSUP

Controller Suspended


title: nvme_lm_migration_send(2)

summary: Migration Send command

text:
# nvme_lm_migration_send(2)

## NAME
nvme_lm_migration_send - Migration Send command

## SYNOPSIS
int nvme_lm_migration_send (struct nvme_lm_migration_send_args *args );

## ARGUMENTS
args

struct nvme_lm_migration_send_args argument structure

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


title: nvme_lm_migration_send_args(2)

text:
# nvme_lm_migration_send_args(2)

## NAME
struct nvme_lm_migration_send_args - Arguments for the Migration Send command

## SYNOPSIS
struct nvme_lm_migration_send_args {

__u64 offset;

__u32 *result;

void *data;

int args_size;

int fd;

__u32 timeout;

__u32 numd;

__u16 mos;

__u16 cntlid;

__u16 csuuidi;

__u8 sel;

__u8 uidx;

__u8 stype;

__u8 seqind;

__u8 csvi;

bool dudmq;

};

## Members
offset

Offset: This field specifies the offset, in bytes, within the data available to be returned and specifies the starting point for that data for what is actually returned to the host.

result

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

data

Pointer to data

args_size

Length of structure

fd

File descriptor of nvme device

timeout

Timeout in ms

numd

Number of Dwords (NUMD): This field specifies the number of dwords being transferred

mos

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

cntlid

Controller ID: This field specifies the identifier of the controller to which the operation is performed.

csuuidi

Controller State UUID Index (CSUUIDI): A non-zero value in this field specifies the index to a specific entry in the Vendor Specific Controller State UUID Supported. list of the Supported Controller State Formats data structure.

sel

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

uidx

UUID Index (UIDX): If this field is set to a non-zero value, then the value of this field is the index of a UUID in the UUID List (refer to Figure 320) that is used by the command.

stype

Suspend Type (STYPE): This field specifies the type of suspend.

seqind

Sequence Identifier (SEQIND): This field identified the sequences of this Migration Send command in relation to other Migration Send commands.

csvi

Controller State Version Index (CSVI): A non-zero value in this field specifies the index to a specific entry in the NVMe Controller State Version list of the Supported Controller State Formats data structure.

dudmq

Delete User Data Migration Queue (DUDMQ): If set, the migration queue is deleted is deleted as part of the Suspend operation. If cleared, it is retained.


title: nvme_lm_migration_send_fields(2)

summary: Migration Send command fields

text:
# nvme_lm_migration_send_fields(2)

## NAME
enum nvme_lm_migration_send_fields - Migration Send command fields

## SYNOPSIS
enum nvme_lm_migration_send_fields {

NVME_LM_MIGRATION_SEND_MOS_SHIFT ,

NVME_LM_MIGRATION_SEND_MOS_MASK ,

NVME_LM_MIGRATION_SEND_SEL_SHIFT ,

NVME_LM_MIGRATION_SEND_SEL_MASK ,

NVME_LM_SEL_SUSPEND ,

NVME_LM_SEL_RESUME ,

NVME_LM_SEL_SET_CONTROLLER_STATE ,

NVME_LM_MIGRATION_SEND_UIDX_SHIFT ,

NVME_LM_MIGRATION_SEND_UIDX_MASK ,

NVME_LM_DUDMQ ,

NVME_LM_STYPE_SHIFT ,

NVME_LM_STYPE_MASK ,

NVME_LM_STYPE_SUSPEND_NOTIFICATION ,

NVME_LM_STYPE_SUSPEND ,

NVME_LM_SUSPEND_CNTLID_SHIFT ,

NVME_LM_SUSPEND_CNTLID_MASK ,

NVME_LM_RESUME_CNTLID_SHIFT ,

NVME_LM_RESUME_CNTLID_MASK ,

NVME_LM_SEQIND_SHIFT ,

NVME_LM_SEQIND_MASK ,

NVME_LM_SEQIND_NOT_FIRST_NOT_LAST ,

NVME_LM_SEQIND_FIRST ,

NVME_LM_SEQIND_LAST ,

NVME_LM_SEQIND_ENTIRE ,

NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT ,

NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK ,

NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT ,

NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK ,

NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT ,

NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK

};

## Constants
NVME_LM_MIGRATION_SEND_MOS_SHIFT

Shift to set Management Operation Specific (MOS) field

NVME_LM_MIGRATION_SEND_MOS_MASK

Mask to set MOS field

NVME_LM_MIGRATION_SEND_SEL_SHIFT

Shift amount to set Select (SEL) field

NVME_LM_MIGRATION_SEND_SEL_MASK

Mask to set SEL field

NVME_LM_SEL_SUSPEND

Migration Send - Suspend

NVME_LM_SEL_RESUME

Migration Send - Resume

NVME_LM_SEL_SET_CONTROLLER_STATE

Migration Send - Set Controller State

NVME_LM_MIGRATION_SEND_UIDX_SHIFT

Shift to set UUID Index (UIDX)

NVME_LM_MIGRATION_SEND_UIDX_MASK

Mask to set UIDX

NVME_LM_DUDMQ

Delete User Data Migration Queue

NVME_LM_STYPE_SHIFT

Shift amount to set Suspend Type (STYPE)

NVME_LM_STYPE_MASK

Mask to set STYPE

NVME_LM_STYPE_SUSPEND_NOTIFICATION

Suspend Notification - The specified controller is going to be suspended in the future with a subsequent Migration Send command

NVME_LM_STYPE_SUSPEND

Suspend - Suspend the controller

NVME_LM_SUSPEND_CNTLID_SHIFT

Shift amount to set Controller ID (CNTLID) when SEL is Suspend

NVME_LM_SUSPEND_CNTLID_MASK

Mask to set CNTLID with SEL Suspend

NVME_LM_RESUME_CNTLID_SHIFT

Shift amount to set Controller ID (CNTLID) when SEL is Resume

NVME_LM_RESUME_CNTLID_MASK

Mask to set CNTLID when SEL is Resume

NVME_LM_SEQIND_SHIFT

Shift amount to set Sequence Indicator (SEQIND) field relative to MOS

NVME_LM_SEQIND_MASK

Mask to set SEQIND field relative to MOS

NVME_LM_SEQIND_NOT_FIRST_NOT_LAST

This command is not the first or last of a sequence of two or more Migration Send commands with this management operation used to transfer the controller state from host to controller

NVME_LM_SEQIND_FIRST

This command is the first of a sequence of two or more Migration Send commands

NVME_LM_SEQIND_LAST

This command is the last command of a sequence of two or more Migration Send commands

NVME_LM_SEQIND_ENTIRE

This Migration Send command is the only command and contains the entire controller state for this management operation

NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT

Shift amount to set Controller State UUID Index (CSUUIDI)

NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK

Mask to set CSUUIDI

NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT

Shift amount to set Controller State Version Index (CSVI)

NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK

Mask to set CSVI

NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT

Shift amount to set Controller ID (CNTLID) when SEL is Set Controller State

NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK

Mask to set CNTLID when SEL is Set Controller State


title: nvme_lm_nvme_controller_state_data(2)

text:
# nvme_lm_nvme_controller_state_data(2)

## NAME
struct nvme_lm_nvme_controller_state_data - NVMe Controller State data structure describes the state of a NVMe Controller's I/O Submission and I/O Completion queues

## SYNOPSIS
struct nvme_lm_nvme_controller_state_data {

struct nvme_lm_nvme_controller_state_data_header hdr;

union {

struct nvme_lm_io_submission_queue_data sqs[0];

struct nvme_lm_io_completion_queue_data cqs[0];

};

};

## Members
hdr

Header

{unnamed_union}

anonymous

sqs

I/O Submission Queue list

cqs

I/O Completion Queue list


summary: Controller State data structure header

text:
# nvme_lm_nvme_controller_state_data_header(2)

## NAME
struct nvme_lm_nvme_controller_state_data_header - Controller State data structure header

## SYNOPSIS
struct nvme_lm_nvme_controller_state_data_header {

__le16 ver;

__le16 niosq;

__le16 niocq;

__le16 rsvd6;

};

## Members
ver

The version of this data structure.

niosq

The number of I/O Submission Queues contained in this data structure.

niocq

The number of I/O Completion Queues contained in this data structure.

rsvd6

Reserved


title: nvme_lm_queue_attributes(2)

text:
# nvme_lm_queue_attributes(2)

## NAME
enum nvme_lm_queue_attributes - I/O Submission and I/O Completion Queue Attributes

## SYNOPSIS
enum nvme_lm_queue_attributes {

NVME_LM_IOSQPC_MASK ,

NVME_LM_IOSQPC_SHIFT ,

NVME_LM_IOSQPRIO_MASK ,

NVME_LM_IOSQPRIO_SHIFT ,

NVME_LM_IOCQPC_MASK ,

NVME_LM_IOCQPC_SHIFT ,

NVME_LM_IOCQIEN_MASK ,

NVME_LM_IOCQIEN_SHIFT ,

NVME_LM_S0PT_MASK ,

NVME_LM_S0PT_SHIFT ,

NVME_LM_IOCQIV_MASK ,

NVME_LM_IOCQIV_SHIFT

};

## Constants
NVME_LM_IOSQPC_MASK

Mask to get the Physically Contiguous (PC) bit for this I/O submission queue.

NVME_LM_IOSQPC_SHIFT

Shift to get the PC bit for this I/O submission queue

NVME_LM_IOSQPRIO_MASK

Mask to get the Priority for this I/O submission queue.

NVME_LM_IOSQPRIO_SHIFT

Shift to get the Priority for this I/O submission queue.

NVME_LM_IOCQPC_MASK

Mask to get the Physicaly Contiguous (PC) bit for this I/O completion queue.

NVME_LM_IOCQPC_SHIFT

Shift to get the PC bit for this I/O completion queue.

NVME_LM_IOCQIEN_MASK

Mask to get the Interrupts Enabled bit for this I/O completion queue

NVME_LM_IOCQIEN_SHIFT

Shift to get the Interrupts Enabled bit for this I/O completion

NVME_LM_S0PT_MASK

Mask to get the value of the Phase Tag bit for Slot 0 of this I/O completion queue.

NVME_LM_S0PT_SHIFT

Shift to get the value of the Phase Tag bit for Slot 0 of this I/O completion queue.

NVME_LM_IOCQIV_MASK

Mask to get the Interrupt Vector (IV) for this I/O completion queue.

NVME_LM_IOCQIV_SHIFT

Shift to get the IV for this I/O completion queue.


title: nvme_lm_track_send(2)

summary: Track Send command

text:
# nvme_lm_track_send(2)

## NAME
nvme_lm_track_send - Track Send command

## SYNOPSIS
int nvme_lm_track_send (struct nvme_lm_track_send_args *args );

## ARGUMENTS
args

struct nvme_lm_track_send_args argument structure

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


title: nvme_lm_track_send_args(2)

summary: Arguments for the Track Send command

text:
# nvme_lm_track_send_args(2)

## NAME
struct nvme_lm_track_send_args - Arguments for the Track Send command

## SYNOPSIS
struct nvme_lm_track_send_args {

__u32 *result;

int args_size;

int fd;

__u32 timeout;

__u16 mos;

__u16 cdqid;

__u8 sel;

};

## Members
result

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

args_size

Length of structure

fd

File descriptor of nvme device

timeout

Timeout in ms

mos

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

cdqid

Controller Data Queue ID (CDQID)

sel

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


title: nvme_lm_track_send_fields(2)

summary: Track Send command fields

text:
# nvme_lm_track_send_fields(2)

## NAME
enum nvme_lm_track_send_fields - Track Send command fields

## SYNOPSIS
enum nvme_lm_track_send_fields {

NVME_LM_TRACK_SEND_MOS_SHIFT ,

NVME_LM_TRACK_SEND_MOS_MASK ,

NVME_LM_TRACK_SEND_SEL_SHIFT ,

NVME_LM_TRACK_SEND_SEL_MASK ,

NVME_LM_SEL_LOG_USER_DATA_CHANGES ,

NVME_LM_SEL_TRACK_MEMORY_CHANGES ,

NVME_LM_LACT_SHIFT ,

NVME_LM_LACT_MASK ,

NVME_LM_LACT_STOP_LOGGING ,

NVME_LM_LACT_START_LOGGING

};

## Constants
NVME_LM_TRACK_SEND_MOS_SHIFT

Shift to set Management Operation Specific (MOS) field

NVME_LM_TRACK_SEND_MOS_MASK

Mask to set MOS field

NVME_LM_TRACK_SEND_SEL_SHIFT

Shift to set Select (SEL) field

NVME_LM_TRACK_SEND_SEL_MASK

Mask to set SEL field

NVME_LM_SEL_LOG_USER_DATA_CHANGES

Log User Data Changes select option

NVME_LM_SEL_TRACK_MEMORY_CHANGES

Track Memory Changes select option

NVME_LM_LACT_SHIFT

Shift to set Logging Action (LACT) relative to MOS

NVME_LM_LACT_MASK

Mask to set LACT relative to MOS

NVME_LM_LACT_STOP_LOGGING

The controller shall stop logging user data changes to namespaces attached to the controller associated with the User Data Migration Queue specified in the CDQ ID.

NVME_LM_LACT_START_LOGGING

The controller shall start logging user data changes to namespaces attached to the controller associated with the User Data Migration Queue into that User Data Migration Queue where those user data changes are caused by the controller associated with that User Data Migration Queue processing commands.


title: nvme_lockdown(2)

summary: Issue lockdown command

text:
# nvme_lockdown(2)

## NAME
nvme_lockdown - Issue lockdown command

## SYNOPSIS
int nvme_lockdown (struct nvme_lockdown_args *args );

## ARGUMENTS
args

struct nvme_lockdown_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_lockdown_args(2)

summary: Arguments for the NVME Lockdown command

text:
# nvme_lockdown_args(2)

## NAME
struct nvme_lockdown_args - Arguments for the NVME Lockdown command

## SYNOPSIS
struct nvme_lockdown_args {

__u32 *result;

int args_size;

int fd;

__u32 timeout;

__u8 scp;

__u8 prhbt;

__u8 ifc;

__u8 ofi;

__u8 uuidx;

};

## Members
result

The command completion result from CQE dword0

args_size

Size of struct nvme_lockdown_args

fd

File descriptor of nvme device

timeout

Timeout in ms (0 for default timeout)

scp

Scope of the command

prhbt

Prohibit or allow the command opcode or Set Features command

ifc

Affected interface

ofi

Opcode or Feature Identifier

uuidx

UUID Index if controller supports this id selection method


title: nvme_lockdown_log(2)

summary: Command and Feature Lockdown Log

text:
# nvme_lockdown_log(2)

## NAME
struct nvme_lockdown_log - Command and Feature Lockdown Log

## SYNOPSIS
struct nvme_lockdown_log {

__u8 cfila;

__u8 rsvd1[2];

__u8 lngth;

__u8 cfil[508];

};

## Members
cfila

Contents of the Command and Feature Identifier List field in the log page.

rsvd1

Reserved

lngth

Length of Command and Feature Identifier List field

cfil

Command and Feature Identifier List


title: nvme_lockdown_log_contents(2)

summary: lockdown log page content attributes

text:
# nvme_lockdown_log_contents(2)

## NAME
enum nvme_lockdown_log_contents - lockdown log page content attributes

## SYNOPSIS
enum nvme_lockdown_log_contents {

NVME_LOCKDOWN_SUPPORTED_CMD ,

NVME_LOCKDOWN_PROHIBITED_CMD ,

NVME_LOCKDOWN_PROHIBITED_OUTOFBAND_CMD

};

## Constants
NVME_LOCKDOWN_SUPPORTED_CMD

Content value for Supported commands

NVME_LOCKDOWN_PROHIBITED_CMD

Content value for prohibited commands

NVME_LOCKDOWN_PROHIBITED_OUTOFBAND_CMD

Content value for prohibited side band commands


title: nvme_lockdown_log_scope(2)

summary: lockdown log page scope attributes

text:
# nvme_lockdown_log_scope(2)

## NAME
enum nvme_lockdown_log_scope - lockdown log page scope attributes

## SYNOPSIS
enum nvme_lockdown_log_scope {

NVME_LOCKDOWN_ADMIN_CMD ,

NVME_LOCKDOWN_FEATURE_ID ,

NVME_LOCKDOWN_MI_CMD_SET ,

NVME_LOCKDOWN_PCI_CMD_SET

};

## Constants
NVME_LOCKDOWN_ADMIN_CMD

Scope value for Admin commandS

NVME_LOCKDOWN_FEATURE_ID

Scope value for Feature ID

NVME_LOCKDOWN_MI_CMD_SET

Scope value for Management Interface commands

NVME_LOCKDOWN_PCI_CMD_SET

Scope value for PCI commands


title: nvme_lockdown_scope_contents(2)

summary: Lockdown Log shift and mask

text:
# nvme_lockdown_scope_contents(2)

## NAME
enum nvme_lockdown_scope_contents - Lockdown Log shift and mask

## SYNOPSIS
enum nvme_lockdown_scope_contents {

NVME_LOCKDOWN_SS_SHIFT ,

NVME_LOCKDOWN_SS_MASK ,

NVME_LOCKDOWN_CS_SHIFT ,

NVME_LOCKDOWN_CS_MASK

};

## Constants
NVME_LOCKDOWN_SS_SHIFT

Lockdown log scope select Shift

NVME_LOCKDOWN_SS_MASK

Lockdown log scope select Mask

NVME_LOCKDOWN_CS_SHIFT

Lockdown log contents Shift

NVME_LOCKDOWN_CS_MASK

Lockdown log contents Mask


title: nvme_log_ana_lsp(2)

text:
# nvme_log_ana_lsp(2)

## NAME
enum nvme_log_ana_lsp - Asymmetric Namespace Access - Return Groups Only

## SYNOPSIS
enum nvme_log_ana_lsp {

NVME_LOG_ANA_LSP_RGO_NAMESPACES ,

NVME_LOG_ANA_LSP_RGO_GROUPS_ONLY

};

## Constants
NVME_LOG_ANA_LSP_RGO_NAMESPACES

NVME_LOG_ANA_LSP_RGO_GROUPS_ONLY


title: nvme_log_phy_rx_eom_action(2)

text:
# nvme_log_phy_rx_eom_action(2)

## NAME
enum nvme_log_phy_rx_eom_action - Physical Interface Receiver Eye Opening Measurement Action

## SYNOPSIS
enum nvme_log_phy_rx_eom_action {

NVME_LOG_PHY_RX_EOM_READ ,

NVME_LOG_PHY_RX_EOM_START_READ ,

NVME_LOG_PHY_RX_EOM_ABORT_CLEAR

};

## Constants
NVME_LOG_PHY_RX_EOM_READ

Read Log Data

NVME_LOG_PHY_RX_EOM_START_READ

Start Measurement and Read Log Data

NVME_LOG_PHY_RX_EOM_ABORT_CLEAR

Abort Measurement and Clear Log Data


title: nvme_log_phy_rx_eom_quality(2)

text:
# nvme_log_phy_rx_eom_quality(2)

## NAME
enum nvme_log_phy_rx_eom_quality - Physical Interface Receiver Eye Opening Measurement Quality

## SYNOPSIS
enum nvme_log_phy_rx_eom_quality {

NVME_LOG_PHY_RX_EOM_GOOD ,

NVME_LOG_PHY_RX_EOM_BETTER ,

NVME_LOG_PHY_RX_EOM_BEST

};

## Constants
NVME_LOG_PHY_RX_EOM_GOOD

<= Better Quality

NVME_LOG_PHY_RX_EOM_BETTER

<= Best Quality, >= Good Quality

NVME_LOG_PHY_RX_EOM_BEST

>= Better Quality


title: nvme_lookup_ctrl(2)

summary: Lookup nvme_ctrl_t object

text:
# nvme_lookup_ctrl(2)

## NAME
nvme_lookup_ctrl - Lookup nvme_ctrl_t object

## SYNOPSIS
nvme_ctrl_t nvme_lookup_ctrl (nvme_subsystem_t s , const char *transport , const char *traddr , const char *host_traddr , const char *host_iface , const char *trsvcid , nvme_ctrl_t p );

## ARGUMENTS
s

nvme_subsystem_t object

transport

Transport name

traddr

Transport address

host_traddr

Host transport address

host_iface

Host interface name

trsvcid

Transport service identifier

p

Previous controller instance

## DESCRIPTION
Lookup a controller in s based on transport, traddr, host_traddr, host_iface, and trsvcid. transport must be specified, other fields may be required depending on the transport. A new object is created if none is found. If p is specified the lookup will start at p instead of the first controller.

## RETURN
Controller instance


title: nvme_lookup_host(2)

summary: Lookup nvme_host_t object

text:
# nvme_lookup_host(2)

## NAME
nvme_lookup_host - Lookup nvme_host_t object

## SYNOPSIS
nvme_host_t nvme_lookup_host (nvme_root_t r , const char *hostnqn , const char *hostid );

## ARGUMENTS
r

nvme_root_t object

hostnqn

Host NQN

hostid

Host ID

## DESCRIPTION
Lookup a nvme_host_t object based on hostnqn and hostid or create one if not found.

## RETURN
nvme_host_t object


title: nvme_lookup_key(2)

summary: Lookup key serial number

text:
# nvme_lookup_key(2)

## NAME
nvme_lookup_key - Lookup key serial number

## SYNOPSIS
long nvme_lookup_key (const char *type , const char *identity );

## ARGUMENTS
type

Key type

identity

Key description

## DESCRIPTION
Looks up the serial number of the key identity with type type in the current session keyring.

## RETURN
The key serial number of the key or 0 with errno set otherwise.


title: nvme_lookup_keyring(2)

summary: Lookup keyring serial number

text:
# nvme_lookup_keyring(2)

## NAME
nvme_lookup_keyring - Lookup keyring serial number

## SYNOPSIS
long nvme_lookup_keyring (const char *keyring );

## ARGUMENTS
keyring

Keyring name

## DESCRIPTION
Looks up the serial number of the keyring keyring.

## RETURN
The key serial number of the keyring or 0 with errno set otherwise.


title: nvme_lookup_subsystem(2)

summary: Lookup nvme_subsystem_t object

text:
# nvme_lookup_subsystem(2)

## NAME
nvme_lookup_subsystem - Lookup nvme_subsystem_t object

## SYNOPSIS
nvme_subsystem_t nvme_lookup_subsystem (struct nvme_host *h , const char *name , const char *subsysnqn );

## ARGUMENTS
h

nvme_host_t object

name

Name of the subsystem (may be NULL)

subsysnqn

Subsystem NQN

## DESCRIPTION
Lookup a nvme_subsystem_t object in h base on name (if present) and subsysnqn or create one if not found.

## RETURN
nvme_subsystem_t object


title: nvme_media_unit_config_desc(2)

summary: Media Unit Configuration Descriptor

text:
# nvme_media_unit_config_desc(2)

## NAME
struct nvme_media_unit_config_desc - Media Unit Configuration Descriptor

## SYNOPSIS
struct nvme_media_unit_config_desc {

__le16 muid;

__u8 rsvd2[4];

__le16 mudl;

};

## Members
muid

Media Unit Identifier

rsvd2

Reserved

mudl

Media Unit Descriptor Length


title: nvme_media_unit_stat_desc(2)

summary: Media Unit Status Descriptor

text:
# nvme_media_unit_stat_desc(2)

## NAME
struct nvme_media_unit_stat_desc - Media Unit Status Descriptor

## SYNOPSIS
struct nvme_media_unit_stat_desc {

__le16 muid;

__le16 domainid;

__le16 endgid;

__le16 nvmsetid;

__le16 cap_adj_fctr;

__u8 avl_spare;

__u8 percent_used;

__u8 mucs;

__u8 cio;

};

## Members
muid

Media Unit Identifier

domainid

Domain Identifier

endgid

Endurance Group Identifier

nvmsetid

NVM Set Identifier

cap_adj_fctr

Capacity Adjustment Factor

avl_spare

Available Spare

percent_used

Percentage Used

mucs

Number of Channels attached to media units

cio

Channel Identifiers Offset


title: nvme_media_unit_stat_log(2)

summary: Media Unit Status

text:
# nvme_media_unit_stat_log(2)

## NAME
struct nvme_media_unit_stat_log - Media Unit Status

## SYNOPSIS
struct nvme_media_unit_stat_log {

__le16 nmu;

__le16 cchans;

__le16 sel_config;

__u8 rsvd6[10];

struct nvme_media_unit_stat_desc mus_desc[];

};

## Members
nmu

Number unit status descriptor

cchans

Number of Channels

sel_config

Selected Configuration

rsvd6

Reserved

mus_desc

Media unit statistic descriptors


title: nvme_metadata_element_desc(2)

summary: Metadata Element Descriptor

text:
# nvme_metadata_element_desc(2)

## NAME
struct nvme_metadata_element_desc - Metadata Element Descriptor

## SYNOPSIS
struct nvme_metadata_element_desc {

__u8 type;

__u8 rev;

__le16 len;

__u8 val[0];

};

## Members
type

Element Type (ET)

rev

Element Revision (ER)

len

Element Length (ELEN)

val

Element Value (EVAL), UTF-8 string


title: nvme_mgmt_addr_desc(2)

summary: Management Address Descriptor

text:
# nvme_mgmt_addr_desc(2)

## NAME
struct nvme_mgmt_addr_desc - Management Address Descriptor

## SYNOPSIS
struct nvme_mgmt_addr_desc {

__u8 mat;

__u8 rsvd1[3];

__u8 madrs[508];

};

## Members
mat

Management Address Type

rsvd1

Reserved

madrs

Management Address


title: nvme_mgmt_addr_list_log(2)

summary: Management Address List Log

text:
# nvme_mgmt_addr_list_log(2)

## NAME
struct nvme_mgmt_addr_list_log - Management Address List Log

## SYNOPSIS
struct nvme_mgmt_addr_list_log {

struct nvme_mgmt_addr_desc mad[8];

};

## Members
mad

Management Address Descriptor


title: nvme_mi_admin_admin_passthru(2)

text:
# nvme_mi_admin_admin_passthru(2)

## NAME
nvme_mi_admin_admin_passthru - Submit an nvme admin passthrough command

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

## ARGUMENTS
ctrl

Controller to send command to

opcode

The nvme admin command to send

flags

NVMe command flags (not used)

rsvd

Reserved for future use

nsid

Namespace identifier

cdw2

Command dword 2

cdw3

Command dword 3

cdw10

Command dword 10

cdw11

Command dword 11

cdw12

Command dword 12

cdw13

Command dword 13

cdw14

Command dword 14

cdw15

Command dword 15

data_len

Length of the data transferred in this command in bytes

data

Pointer to user address of the data buffer

metadata_len

Length of metadata transferred in this command(not used)

metadata

Pointer to user address of the metadata buffer(not used)

timeout_ms

How long to wait for the command to complete

result

Optional field to return the result from the CQE dword 0

## DESCRIPTION
Send a customized NVMe Admin command request message and get the corresponding response message.

This interface supports no data, host to controller and controller to host but it doesn't support bidirectional data transfer. Also this interface only supports data transfer size range [0, 4096] (bytes) so the & data_len parameter must be less than 4097.

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


title: nvme_mi_admin_format_nvm(2)

summary: Format NVMe namespace

text:
# nvme_mi_admin_format_nvm(2)

## NAME
nvme_mi_admin_format_nvm - Format NVMe namespace

## SYNOPSIS
int nvme_mi_admin_format_nvm (nvme_mi_ctrl_t ctrl , struct nvme_format_nvm_args *args );

## ARGUMENTS
ctrl

Controller to send command to

args

Format NVM command arguments

## DESCRIPTION
Perform a low-level format to set the LBA data & metadata size. May destroy data & metadata on the specified namespaces

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


title: nvme_mi_admin_fw_commit(2)

text:
# nvme_mi_admin_fw_commit(2)

## NAME
nvme_mi_admin_fw_commit - Commit firmware using the specified action

## SYNOPSIS
int nvme_mi_admin_fw_commit (nvme_mi_ctrl_t ctrl , struct nvme_fw_commit_args *args );

## ARGUMENTS
ctrl

Controller to send firmware data to

args

struct nvme_fw_download_args argument structure

## DESCRIPTION
The Firmware Commit command modifies the firmware image or Boot Partitions.

## RETURN
0 on success, non-zero on failure


title: nvme_mi_admin_fw_download(2)

text:
# nvme_mi_admin_fw_download(2)

## NAME
nvme_mi_admin_fw_download - Download part or all of a firmware image to the controller

## SYNOPSIS
int nvme_mi_admin_fw_download (nvme_mi_ctrl_t ctrl , struct nvme_fw_download_args *args );

## ARGUMENTS
ctrl

Controller to send firmware data to

args

struct nvme_fw_download_args argument structure

## DESCRIPTION
The Firmware Image Download command downloads all or a portion of an image for a future update to the controller. The Firmware Image Download command downloads a new image (in whole or in part) to the controller.

The image may be constructed of multiple pieces that are individually downloaded with separate Firmware Image Download commands. Each Firmware Image Download command includes a Dword Offset and Number of Dwords that specify a dword range.

The new firmware image is not activated as part of the Firmware Image Download command. Use the nvme_mi_admin_fw_commit to activate a newly downloaded image.

## RETURN
0 on success, non-zero on failure


title: nvme_mi_admin_get_ana_log_atomic(2)

text:
# nvme_mi_admin_get_ana_log_atomic(2)

## NAME
nvme_mi_admin_get_ana_log_atomic - Retrieve Asymmetric Namespace Access log page atomically

## SYNOPSIS
int nvme_mi_admin_get_ana_log_atomic (nvme_mi_ctrl_t ctrl , bool rgo , bool rae , unsigned int retries , struct nvme_ana_log *log , __u32 *len );

## ARGUMENTS
ctrl

Controller to query

rgo

Whether to retrieve ANA groups only (no NSIDs)

rae

Whether to retain asynchronous events

retries

The maximum number of times to retry on log page changes

log

Pointer to a buffer to receive the ANA log page

len

Input: the length of the log page buffer. Output: the actual length of the ANA log page.

## DESCRIPTION
See struct nvme_ana_log for the definition of the returned structure.

## RETURN
If successful, returns 0 and sets *len to the actual log page length. If unsuccessful, returns the nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise. Sets errno = EINVAL if retries == 0. Sets errno = EAGAIN if unable to read the log page atomically because chgcnt changed during each of the retries attempts. Sets errno = ENOSPC if the full log page does not fit in the provided buffer.


title: nvme_mi_admin_get_endgid_log(2)

text:
# nvme_mi_admin_get_endgid_log(2)

## NAME
nvme_mi_admin_get_endgid_log - Helper for Get Endurance Group ID Log Page functions

## SYNOPSIS
int nvme_mi_admin_get_endgid_log (nvme_mi_ctrl_t ctrl , bool rae , enum nvme_cmd_get_log_lid lid , __u16 endgid , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain Asynchronous Events

lid

Log identifier

endgid

Endurance Group ID

len

length of log buffer

log

pointer for resulting log data

## DESCRIPTION
Performs a Get Log Page Admin command for a specific log ID lid and endurance group ID endgid. Log data is expected to be len bytes, and is stored in log on success. The rae flag is passed as-is to the Get Log Page command, and is specific to the Log Page requested.

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


summary: Get arbitration feature

text:
# nvme_mi_admin_get_features_arbitration(2)

## NAME
nvme_mi_admin_get_features_arbitration - Get arbitration feature

## SYNOPSIS
int nvme_mi_admin_get_features_arbitration (nvme_mi_ctrl_t ctrl , enum nvme_get_features_sel sel , __u32 *result );

## ARGUMENTS
ctrl

Controller to send command to

sel

Select which type of attribute to return, see enum nvme_get_features_sel

result

The feature data is returned in this argument

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


title: nvme_mi_admin_get_features_data(2)

text:
# nvme_mi_admin_get_features_data(2)

## NAME
nvme_mi_admin_get_features_data - Helper function for &nvme_mi_admin_get_features()

## SYNOPSIS
int nvme_mi_admin_get_features_data (nvme_mi_ctrl_t ctrl , enum nvme_features_id fid , __u32 nsid , __u32 data_len , void *data , __u32 *result );

## ARGUMENTS
ctrl

Controller to send command to

fid

Feature identifier

nsid

Namespace ID, if applicable for fid

data_len

Length of feature data, if applicable for fid, in bytes

data

User address of feature data, if applicable

result

The command completion result from CQE dword0

## DESCRIPTION
Helper for optionally features that optionally return data, using the SEL_CURRENT selector value.

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


summary: Get power management feature

text:
# nvme_mi_admin_get_features_power_mgmt(2)

## NAME
nvme_mi_admin_get_features_power_mgmt - Get power management feature

## SYNOPSIS
int nvme_mi_admin_get_features_power_mgmt (nvme_mi_ctrl_t ctrl , enum nvme_get_features_sel sel , __u32 *result );

## ARGUMENTS
ctrl

Controller to send command to

sel

Select which type of attribute to return, see enum nvme_get_features_sel

result

The feature data is returned in this argument

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


title: nvme_mi_admin_get_log(2)

summary: Retrieve log page data from controller

text:
# nvme_mi_admin_get_log(2)

## NAME
nvme_mi_admin_get_log - Retrieve log page data from controller

## SYNOPSIS
int nvme_mi_admin_get_log (nvme_mi_ctrl_t ctrl , struct nvme_get_log_args *args );

## ARGUMENTS
ctrl

Controller to query

args

Get Log Page command arguments

## DESCRIPTION
Performs a Get Log Page Admin command as specified by args. Response data is stored in args->data, which should be a buffer of args->data_len bytes. Resulting data length is stored in args->data_len on successful command completion.

This request may be implemented as multiple log page commands, in order to fit within MI message-size limits.

See: struct nvme_get_log_args

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


title: nvme_mi_admin_get_log_ana(2)

text:
# nvme_mi_admin_get_log_ana(2)

## NAME
nvme_mi_admin_get_log_ana - Retrieve Asymmetric Namespace Access log page

## SYNOPSIS
int nvme_mi_admin_get_log_ana (nvme_mi_ctrl_t ctrl , enum nvme_log_ana_lsp lsp , bool rae , __u64 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

lsp

Log specific, see enum nvme_get_log_ana_lsp

rae

Retain asynchronous events

offset

Offset to the start of the log page

len

The allocated length of the log page

log

User address to store the ana log

## DESCRIPTION
This log consists of a header describing the log and descriptors containing the asymmetric namespace access information for ANA Groups that contain namespaces that are attached to the controller processing the command.

See struct nvme_ana_log 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_mi_admin_get_log_ana_groups(2)

text:
# nvme_mi_admin_get_log_ana_groups(2)

## NAME
nvme_mi_admin_get_log_ana_groups - Retrieve Asymmetric Namespace Access groups only log page

## SYNOPSIS
int nvme_mi_admin_get_log_ana_groups (nvme_mi_ctrl_t ctrl , bool rae , __u32 len , struct nvme_ana_group_desc *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the ana group log

## DESCRIPTION
See struct nvme_ana_group_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_mi_admin_get_log_ave_discover(2)

summary: Retrieve AVE Discovery Log

text:
# nvme_mi_admin_get_log_ave_discover(2)

## NAME
nvme_mi_admin_get_log_ave_discover - Retrieve AVE Discovery Log

## SYNOPSIS
int nvme_mi_admin_get_log_ave_discover (nvme_mi_ctrl_t ctrl , bool rae , __u32 len , struct nvme_ave_discover_log *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

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


title: nvme_mi_admin_get_log_boot_partition(2)

summary: Retrieve Boot Partition

text:
# nvme_mi_admin_get_log_boot_partition(2)

## NAME
nvme_mi_admin_get_log_boot_partition - Retrieve Boot Partition

## SYNOPSIS
int nvme_mi_admin_get_log_boot_partition (nvme_mi_ctrl_t ctrl , bool rae , __u8 lsp , __u32 len , struct nvme_boot_partition *part );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

lsp

The log specified field of LID

len

The allocated size, minimum struct nvme_boot_partition

part

User address to store the log page

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


text:
# nvme_mi_admin_get_log_changed_alloc_ns_list(2)

## NAME
nvme_mi_admin_get_log_changed_alloc_ns_list - Retrieve Changed Allocated Namespace List Log

## SYNOPSIS
int nvme_mi_admin_get_log_changed_alloc_ns_list (nvme_mi_ctrl_t ctrl , bool rae , __u32 len , struct nvme_ns_list *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

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


summary: Retrieve namespace changed list

text:
# nvme_mi_admin_get_log_changed_ns_list(2)

## NAME
nvme_mi_admin_get_log_changed_ns_list - Retrieve namespace changed list

## SYNOPSIS
int nvme_mi_admin_get_log_changed_ns_list (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_ns_list *ns_log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

ns_log

User address to store the log page

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

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


title: nvme_mi_admin_get_log_cmd_effects(2)

summary: Retrieve nvme command effects log

text:
# nvme_mi_admin_get_log_cmd_effects(2)

## NAME
nvme_mi_admin_get_log_cmd_effects - Retrieve nvme command effects log

## SYNOPSIS
int nvme_mi_admin_get_log_cmd_effects (nvme_mi_ctrl_t ctrl , enum nvme_csi csi , struct nvme_cmd_effects_log *effects_log );

## ARGUMENTS
ctrl

Controller to query

csi

Command Set Identifier

effects_log

User address to store the effects log

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

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


summary: Create host telemetry log

text:
# nvme_mi_admin_get_log_create_telemetry_host(2)

## NAME
nvme_mi_admin_get_log_create_telemetry_host - Create host telemetry log

## SYNOPSIS
int nvme_mi_admin_get_log_create_telemetry_host (nvme_mi_ctrl_t ctrl , struct nvme_telemetry_log *log );

## ARGUMENTS
ctrl

Controller to query

log

Userspace address of the log payload

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


summary: Create host telemetry log

text:
# nvme_mi_admin_get_log_create_telemetry_host_mcda(2)

## NAME
nvme_mi_admin_get_log_create_telemetry_host_mcda - Create host telemetry log

## SYNOPSIS
int nvme_mi_admin_get_log_create_telemetry_host_mcda (nvme_mi_ctrl_t ctrl , enum nvme_telemetry_da mcda , struct nvme_telemetry_log *log );

## ARGUMENTS
ctrl

Controller to query

mcda

Maximum Created Data Area

log

Userspace address of the log payload

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


summary: Retrieve the device self test log

text:
# nvme_mi_admin_get_log_device_self_test(2)

## NAME
nvme_mi_admin_get_log_device_self_test - Retrieve the device self test log

## SYNOPSIS
int nvme_mi_admin_get_log_device_self_test (nvme_mi_ctrl_t ctrl , struct nvme_self_test_log *log );

## ARGUMENTS
ctrl

Controller to query

log

Userspace address of the log payload

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

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


title: nvme_mi_admin_get_log_discovery(2)

summary: Retrieve Discovery log page

text:
# nvme_mi_admin_get_log_discovery(2)

## NAME
nvme_mi_admin_get_log_discovery - Retrieve Discovery log page

## SYNOPSIS
int nvme_mi_admin_get_log_discovery (nvme_mi_ctrl_t ctrl , bool rae , __u32 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

offset

Offset of this log to retrieve

len

The allocated size for this portion of the log

log

User address to store the discovery log

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

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


text:
# nvme_mi_admin_get_log_dispersed_ns_participating_nss(2)

## NAME
nvme_mi_admin_get_log_dispersed_ns_participating_nss - Retrieve Dispersed Namespace Participating NVM Subsystems Log

## SYNOPSIS
int nvme_mi_admin_get_log_dispersed_ns_participating_nss (nvme_mi_ctrl_t ctrl , __u32 nsid , __u32 len , struct nvme_dispersed_ns_participating_nss_log *log );

## ARGUMENTS
ctrl

Controller to query

nsid

Namespace Identifier

len

The allocated length of the log page

log

User address to store the log page

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


summary: Get Endurance Group log

text:
# nvme_mi_admin_get_log_endurance_group(2)

## NAME
nvme_mi_admin_get_log_endurance_group - Get Endurance Group log

## SYNOPSIS
int nvme_mi_admin_get_log_endurance_group (nvme_mi_ctrl_t ctrl , __u16 endgid , struct nvme_endurance_group_log *log );

## ARGUMENTS
ctrl

Controller to query

endgid

Starting group identifier to return in the list

log

User address to store the endurance log

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

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


summary: Retrieve Rotational Media Information

text:
# nvme_mi_admin_get_log_endurance_grp_evt(2)

## NAME
nvme_mi_admin_get_log_endurance_grp_evt - Retrieve Rotational Media Information

## SYNOPSIS
int nvme_mi_admin_get_log_endurance_grp_evt (nvme_mi_ctrl_t ctrl , bool rae , __u32 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

offset

Offset to the start of the log page

len

The allocated length of the log page

log

User address to store the log page

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


title: nvme_mi_admin_get_log_error(2)

summary: Retrieve nvme error log

text:
# nvme_mi_admin_get_log_error(2)

## NAME
nvme_mi_admin_get_log_error - Retrieve nvme error log

## SYNOPSIS
int nvme_mi_admin_get_log_error (nvme_mi_ctrl_t ctrl , unsigned int nr_entries , bool rae , struct nvme_error_log_page *err_log );

## ARGUMENTS
ctrl

Controller to query

nr_entries

Number of error log entries allocated

rae

Retain asynchronous events

err_log

Array of error logs of size 'entries'

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

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


text:
# nvme_mi_admin_get_log_fid_supported_effects(2)

## NAME
nvme_mi_admin_get_log_fid_supported_effects - Retrieve Feature Identifiers Supported and Effects

## SYNOPSIS
int nvme_mi_admin_get_log_fid_supported_effects (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_fid_supported_effects_log *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

log

FID Supported and Effects data structure

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


title: nvme_mi_admin_get_log_fw_slot(2)

summary: Retrieves the controller firmware log

text:
# nvme_mi_admin_get_log_fw_slot(2)

## NAME
nvme_mi_admin_get_log_fw_slot - Retrieves the controller firmware log

## SYNOPSIS
int nvme_mi_admin_get_log_fw_slot (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_firmware_slot *fw_log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

fw_log

User address to store the log page

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

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


title: nvme_mi_admin_get_log_host_discover(2)

summary: Retrieve Host Discovery Log

text:
# nvme_mi_admin_get_log_host_discover(2)

## NAME
nvme_mi_admin_get_log_host_discover - Retrieve Host Discovery Log

## SYNOPSIS
int nvme_mi_admin_get_log_host_discover (nvme_mi_ctrl_t ctrl , bool allhoste , bool rae , __u32 len , struct nvme_host_discover_log *log );

## ARGUMENTS
ctrl

Controller to query

allhoste

All host entries

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

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


title: nvme_mi_admin_get_log_lba_status(2)

summary: Retrieve LBA Status

text:
# nvme_mi_admin_get_log_lba_status(2)

## NAME
nvme_mi_admin_get_log_lba_status - Retrieve LBA Status

## SYNOPSIS
int nvme_mi_admin_get_log_lba_status (nvme_mi_ctrl_t ctrl , bool rae , __u64 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

offset

Offset to the start of the log page

len

The allocated length of the log page

log

User address to store the log page

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


title: nvme_mi_admin_get_log_lockdown(2)

summary: Retrieve lockdown Log

text:
# nvme_mi_admin_get_log_lockdown(2)

## NAME
nvme_mi_admin_get_log_lockdown - Retrieve lockdown Log

## SYNOPSIS
int nvme_mi_admin_get_log_lockdown (nvme_mi_ctrl_t ctrl , __u8 cnscp , struct nvme_lockdown_log *lockdown_log );

## ARGUMENTS
ctrl

Controller to query

cnscp

Contents and Scope of Command and Feature Identifier Lists

lockdown_log

Buffer to store the lockdown log

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


summary: Retrieve Media Unit Status

text:
# nvme_mi_admin_get_log_media_unit_stat(2)

## NAME
nvme_mi_admin_get_log_media_unit_stat - Retrieve Media Unit Status

## SYNOPSIS
int nvme_mi_admin_get_log_media_unit_stat (nvme_mi_ctrl_t ctrl , __u16 domid , struct nvme_media_unit_stat_log *mus );

## ARGUMENTS
ctrl

Controller to query

domid

Domain Identifier selection, if supported

mus

User address to store the Media Unit statistics log

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


title: nvme_mi_admin_get_log_mgmt_addr_list(2)

summary: Retrieve Management Address List Log

text:
# nvme_mi_admin_get_log_mgmt_addr_list(2)

## NAME
nvme_mi_admin_get_log_mgmt_addr_list - Retrieve Management Address List Log

## SYNOPSIS
int nvme_mi_admin_get_log_mgmt_addr_list (nvme_mi_ctrl_t ctrl , __u32 len , struct nvme_mgmt_addr_list_log *log );

## ARGUMENTS
ctrl

Controller to query

len

The allocated length of the log page

log

User address to store the log page

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


text:
# nvme_mi_admin_get_log_mi_cmd_supported_effects(2)

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

## SYNOPSIS
int nvme_mi_admin_get_log_mi_cmd_supported_effects (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_mi_cmd_supported_effects_log *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

log

MI Command Supported and Effects data structure

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


title: nvme_mi_admin_get_log_page(2)

summary: Retrieve log page data from controller

text:
# nvme_mi_admin_get_log_page(2)

## NAME
nvme_mi_admin_get_log_page - Retrieve log page data from controller

## SYNOPSIS
int nvme_mi_admin_get_log_page (nvme_mi_ctrl_t ctrl , __u32 xfer_len , struct nvme_get_log_args *args );

## ARGUMENTS
ctrl

Controller to query

xfer_len

The chunk size of the read

args

Get Log Page command arguments

## DESCRIPTION
Performs a Get Log Page Admin command as specified by args. Response data is stored in args->data, which should be a buffer of args->data_len bytes. Resulting data length is stored in args->data_len on successful command completion.

This request may be implemented as multiple log page commands, in order to fit within MI message-size limits.

See: struct nvme_get_log_args

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


summary: Retrieve Persistent Event Log

text:
# nvme_mi_admin_get_log_persistent_event(2)

## NAME
nvme_mi_admin_get_log_persistent_event - Retrieve Persistent Event Log

## SYNOPSIS
int nvme_mi_admin_get_log_persistent_event (nvme_mi_ctrl_t ctrl , enum nvme_pevent_log_action action , __u32 size , void *pevent_log );

## ARGUMENTS
ctrl

Controller to query

action

Action the controller should take during processing this command

size

Size of pevent_log

pevent_log

User address to store the persistent event log

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


title: nvme_mi_admin_get_log_phy_rx_eom(2)

text:
# nvme_mi_admin_get_log_phy_rx_eom(2)

## NAME
nvme_mi_admin_get_log_phy_rx_eom - Retrieve Physical Interface Receiver Eye Opening Measurement Log

## SYNOPSIS
int nvme_mi_admin_get_log_phy_rx_eom (nvme_mi_ctrl_t ctrl , __u8 lsp , __u16 controller , __u32 len , struct nvme_phy_rx_eom_log *log );

## ARGUMENTS
ctrl

Controller to query

lsp

Log specific, controls action and measurement quality

controller

Target controller ID

len

The allocated size, minimum struct nvme_phy_rx_eom_log

log

User address to store the log page

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


text:
# nvme_mi_admin_get_log_predictable_lat_event(2)

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

## SYNOPSIS
int nvme_mi_admin_get_log_predictable_lat_event (nvme_mi_ctrl_t ctrl , bool rae , __u32 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

offset

Offset into the predictable latency event

len

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

log

User address for log page data

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


summary: Predictable Latency Per NVM Set

text:
# nvme_mi_admin_get_log_predictable_lat_nvmset(2)

## NAME
nvme_mi_admin_get_log_predictable_lat_nvmset - Predictable Latency Per NVM Set

## SYNOPSIS
int nvme_mi_admin_get_log_predictable_lat_nvmset (nvme_mi_ctrl_t ctrl , __u16 nvmsetid , struct nvme_nvmset_predictable_lat_log *log );

## ARGUMENTS
ctrl

Controller to query

nvmsetid

NVM set id

log

User address to store the predictable latency log

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


summary: Retrieve Pull Model DDC Request Log

text:
# nvme_mi_admin_get_log_pull_model_ddc_req(2)

## NAME
nvme_mi_admin_get_log_pull_model_ddc_req - Retrieve Pull Model DDC Request Log

## SYNOPSIS
int nvme_mi_admin_get_log_pull_model_ddc_req (nvme_mi_ctrl_t ctrl , bool rae , __u32 len , struct nvme_pull_model_ddc_req_log *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

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


summary: Retrieve Reachability Associations Log

text:
# nvme_mi_admin_get_log_reachability_associations(2)

## NAME
nvme_mi_admin_get_log_reachability_associations - Retrieve Reachability Associations Log

## SYNOPSIS
int nvme_mi_admin_get_log_reachability_associations (nvme_mi_ctrl_t ctrl , bool rao , bool rae , __u32 len , struct nvme_reachability_associations_log *log );

## ARGUMENTS
ctrl

Controller to query

rao

Return associations only

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

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


summary: Retrieve Reachability Groups Log

text:
# nvme_mi_admin_get_log_reachability_groups(2)

## NAME
nvme_mi_admin_get_log_reachability_groups - Retrieve Reachability Groups Log

## SYNOPSIS
int nvme_mi_admin_get_log_reachability_groups (nvme_mi_ctrl_t ctrl , bool rgo , bool rae , __u32 len , struct nvme_reachability_groups_log *log );

## ARGUMENTS
ctrl

Controller to query

rgo

Return groups only

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

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


title: nvme_mi_admin_get_log_reservation(2)

summary: Retrieve Reservation Notification

text:
# nvme_mi_admin_get_log_reservation(2)

## NAME
nvme_mi_admin_get_log_reservation - Retrieve Reservation Notification

## SYNOPSIS
int nvme_mi_admin_get_log_reservation (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_resv_notification_log *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

log

User address to store the reservation log

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


text:
# nvme_mi_admin_get_log_rotational_media_info(2)

## NAME
nvme_mi_admin_get_log_rotational_media_info - Retrieve Rotational Media Information Log

## SYNOPSIS
int nvme_mi_admin_get_log_rotational_media_info (nvme_mi_ctrl_t ctrl , __u16 endgid , __u32 len , struct nvme_rotational_media_info_log *log );

## ARGUMENTS
ctrl

Controller to query

endgid

Endurance Group Identifier

len

The allocated length of the log page

log

User address to store the log page

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


title: nvme_mi_admin_get_log_sanitize(2)

summary: Retrieve Sanitize Status

text:
# nvme_mi_admin_get_log_sanitize(2)

## NAME
nvme_mi_admin_get_log_sanitize - Retrieve Sanitize Status

## SYNOPSIS
int nvme_mi_admin_get_log_sanitize (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_sanitize_log_page *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

log

User address to store the sanitize log

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

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


title: nvme_mi_admin_get_log_simple(2)

text:
# nvme_mi_admin_get_log_simple(2)

## NAME
nvme_mi_admin_get_log_simple - Helper for Get Log Page functions with no NSID or RAE requirements

## SYNOPSIS
int nvme_mi_admin_get_log_simple (nvme_mi_ctrl_t ctrl , enum nvme_cmd_get_log_lid lid , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

lid

Log identifier

len

length of log buffer

log

pointer for resulting log data

## DESCRIPTION
Performs a Get Log Page Admin command for a specific log ID lid, using NVME_NSID_ALL for the namespace identifier, and rae set to false.

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


title: nvme_mi_admin_get_log_smart(2)

summary: Retrieve nvme smart log

text:
# nvme_mi_admin_get_log_smart(2)

## NAME
nvme_mi_admin_get_log_smart - Retrieve nvme smart log

## SYNOPSIS
int nvme_mi_admin_get_log_smart (nvme_mi_ctrl_t ctrl , __u32 nsid , bool rae , struct nvme_smart_log *smart_log );

## ARGUMENTS
ctrl

Controller to query

nsid

Optional namespace identifier

rae

Retain asynchronous events

smart_log

User address to store the smart log

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

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


text:
# nvme_mi_admin_get_log_support_cap_config_list(2)

## NAME
nvme_mi_admin_get_log_support_cap_config_list - Retrieve Supported Capacity Configuration List

## SYNOPSIS
int nvme_mi_admin_get_log_support_cap_config_list (nvme_mi_ctrl_t ctrl , __u16 domid , struct nvme_supported_cap_config_list_log *cap );

## ARGUMENTS
ctrl

Controller to query

domid

Domain Identifier selection, if supported

cap

User address to store supported capabilities config list

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


summary: Retrieve nmve supported log pages

text:
# nvme_mi_admin_get_log_supported_log_pages(2)

## NAME
nvme_mi_admin_get_log_supported_log_pages - Retrieve nmve supported log pages

## SYNOPSIS
int nvme_mi_admin_get_log_supported_log_pages (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_supported_log_pages *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

log

Array of LID supported and Effects data structures

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


title: nvme_mi_admin_get_log_telemetry_ctrl(2)

text:
# nvme_mi_admin_get_log_telemetry_ctrl(2)

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

## SYNOPSIS
int nvme_mi_admin_get_log_telemetry_ctrl (nvme_mi_ctrl_t ctrl , bool rae , __u64 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

offset

Offset into the telemetry data

len

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

log

User address for log page data

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

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


title: nvme_mi_admin_get_log_telemetry_host(2)

summary: Get Telemetry Host-Initiated log page

text:
# nvme_mi_admin_get_log_telemetry_host(2)

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

## SYNOPSIS
int nvme_mi_admin_get_log_telemetry_host (nvme_mi_ctrl_t ctrl , __u64 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

offset

Offset into the telemetry data

len

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

log

User address for log page data

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

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


text:
# nvme_mi_admin_get_log_zns_changed_zones(2)

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

## SYNOPSIS
int nvme_mi_admin_get_log_zns_changed_zones (nvme_mi_ctrl_t ctrl , __u32 nsid , bool rae , struct nvme_zns_changed_zone_log *log );

## ARGUMENTS
ctrl

Controller to query

nsid

Namespace ID

rae

Retain asynchronous events

log

User address to store the changed zone log

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

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


title: nvme_mi_admin_get_nsid_log(2)

summary: Helper for Get Log Page functions

text:
# nvme_mi_admin_get_nsid_log(2)

## NAME
nvme_mi_admin_get_nsid_log - Helper for Get Log Page functions

## SYNOPSIS
int nvme_mi_admin_get_nsid_log (nvme_mi_ctrl_t ctrl , bool rae , enum nvme_cmd_get_log_lid lid , __u32 nsid , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain Asynchronous Events

lid

Log identifier

nsid

Namespace ID

len

length of log buffer

log

pointer for resulting log data

## DESCRIPTION
Performs a Get Log Page Admin command for a specific log ID lid and namespace ID nsid. Log data is expected to be len bytes, and is stored in log on success. The rae flag is passed as-is to the Get Log Page command, and is specific to the Log Page requested.

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


title: nvme_mi_admin_identify(2)

summary: Perform an Admin identify command.

text:
# nvme_mi_admin_identify(2)

## NAME
nvme_mi_admin_identify - Perform an Admin identify command.

## SYNOPSIS
int nvme_mi_admin_identify (nvme_mi_ctrl_t ctrl , struct nvme_identify_args *args );

## ARGUMENTS
ctrl

Controller to process identify command

args

Identify command arguments

## DESCRIPTION
Perform an Identify command, using the Identify command parameters in args. Stores the identify data in ->data, and (if set) the result from cdw0 into args->result.

Will return an error if the length of the response data (from the controller) is not a full NVME_IDENTIFY_DATA_SIZE.

See: struct nvme_identify_args

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


text:
# nvme_mi_admin_identify_active_ns_list(2)

## NAME
nvme_mi_admin_identify_active_ns_list - Perform an Admin identify for an active namespace list

## SYNOPSIS
int nvme_mi_admin_identify_active_ns_list (nvme_mi_ctrl_t ctrl , __u32 nsid , struct nvme_ns_list *list );

## ARGUMENTS
ctrl

Controller to process identify command

nsid

Namespace ID to specify list start

list

List data to populate

## DESCRIPTION
Perform an Identify command, for the active namespace list starting with IDs greater than or equal to nsid. Specify NVME_NSID_NONE for the start of the list.

Will return an error if the length of the response data (from the controller) is not a full NVME_IDENTIFY_DATA_SIZE, so list will be be fully populated on success.

See: struct nvme_ns_list

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


title: nvme_mi_admin_identify_allocated_ns(2)

text:
# nvme_mi_admin_identify_allocated_ns(2)

## NAME
nvme_mi_admin_identify_allocated_ns - Perform an Admin identify command for an allocated namespace

## SYNOPSIS
int nvme_mi_admin_identify_allocated_ns (nvme_mi_ctrl_t ctrl , __u32 nsid , struct nvme_id_ns *ns );

## ARGUMENTS
ctrl

Controller to process identify command

nsid

namespace ID

ns

Namespace identification to populate

## DESCRIPTION
Perform an Identify (namespace) command, setting the namespace id data in ns.

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


text:
# nvme_mi_admin_identify_allocated_ns_list(2)

## NAME
nvme_mi_admin_identify_allocated_ns_list - Perform an Admin identify for an allocated namespace list

## SYNOPSIS
int nvme_mi_admin_identify_allocated_ns_list (nvme_mi_ctrl_t ctrl , __u32 nsid , struct nvme_ns_list *list );

## ARGUMENTS
ctrl

Controller to process identify command

nsid

Namespace ID to specify list start

list

List data to populate

## DESCRIPTION
Perform an Identify command, for the allocated namespace list starting with IDs greater than or equal to nsid. Specify NVME_NSID_NONE for the start of the list.

Will return an error if the length of the response data (from the controller) is not a full NVME_IDENTIFY_DATA_SIZE, so list will be be fully populated on success.

See: struct nvme_ns_list

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


title: nvme_mi_admin_identify_cns_nsid(2)

text:
# nvme_mi_admin_identify_cns_nsid(2)

## NAME
nvme_mi_admin_identify_cns_nsid - Perform an Admin identify command using specific CNS/NSID parameters.

## SYNOPSIS
int nvme_mi_admin_identify_cns_nsid (nvme_mi_ctrl_t ctrl , enum nvme_identify_cns cns , __u32 nsid , void *data );

## ARGUMENTS
ctrl

Controller to process identify command

cns

Controller or Namespace Structure, specifying identified object

nsid

namespace ID

data

buffer for identify data response

## DESCRIPTION
Perform an Identify command, using the CNS specifier cns, and the namespace ID nsid if required by the CNS type.

Stores the identify data in data, which is expected to be a buffer of NVME_IDENTIFY_DATA_SIZE bytes.

Will return an error if the length of the response data (from the controller) is not a full NVME_IDENTIFY_DATA_SIZE.

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


title: nvme_mi_admin_identify_ctrl(2)

text:
# nvme_mi_admin_identify_ctrl(2)

## NAME
nvme_mi_admin_identify_ctrl - Perform an Admin identify for a controller

## SYNOPSIS
int nvme_mi_admin_identify_ctrl (nvme_mi_ctrl_t ctrl , struct nvme_id_ctrl *id );

## ARGUMENTS
ctrl

Controller to process identify command

id

Controller identify data to populate

## DESCRIPTION
Perform an Identify command, for the controller specified by ctrl, writing identify data to id.

Will return an error if the length of the response data (from the controller) is not a full NVME_IDENTIFY_DATA_SIZE, so id will be fully populated on success.

See: struct nvme_id_ctrl

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


title: nvme_mi_admin_identify_ctrl_list(2)

text:
# nvme_mi_admin_identify_ctrl_list(2)

## NAME
nvme_mi_admin_identify_ctrl_list - Perform an Admin identify for a controller list.

## SYNOPSIS
int nvme_mi_admin_identify_ctrl_list (nvme_mi_ctrl_t ctrl , __u16 cntid , struct nvme_ctrl_list *list );

## ARGUMENTS
ctrl

Controller to process identify command

cntid

Controller ID to specify list start

list

List data to populate

## DESCRIPTION
Perform an Identify command, for the controller list starting with IDs greater than or equal to cntid.

Will return an error if the length of the response data (from the controller) is not a full NVME_IDENTIFY_DATA_SIZE, so id will be fully populated on success.

See: struct nvme_ctrl_list

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


title: nvme_mi_admin_identify_ns(2)

text:
# nvme_mi_admin_identify_ns(2)

## NAME
nvme_mi_admin_identify_ns - Perform an Admin identify command for a namespace

## SYNOPSIS
int nvme_mi_admin_identify_ns (nvme_mi_ctrl_t ctrl , __u32 nsid , struct nvme_id_ns *ns );

## ARGUMENTS
ctrl

Controller to process identify command

nsid

namespace ID

ns

Namespace identification to populate

## DESCRIPTION
Perform an Identify (namespace) command, setting the namespace id data in ns. The namespace is expected to active and allocated.

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


title: nvme_mi_admin_identify_ns_descs(2)

text:
# nvme_mi_admin_identify_ns_descs(2)

## NAME
nvme_mi_admin_identify_ns_descs - Perform an Admin identify Namespace Identification Descriptor list command for a namespace

## SYNOPSIS
int nvme_mi_admin_identify_ns_descs (nvme_mi_ctrl_t ctrl , __u32 nsid , struct nvme_ns_id_desc *descs );

## ARGUMENTS
ctrl

Controller to process identify command

nsid

Namespace ID

descs

Namespace Identification Descriptor list to populate

## DESCRIPTION
Perform an Identify namespace identification description list command, setting the namespace identification description list in descs

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


text:
# nvme_mi_admin_identify_nsid_ctrl_list(2)

## NAME
nvme_mi_admin_identify_nsid_ctrl_list - Perform an Admin identify for a controller list with specific namespace ID

## SYNOPSIS
int nvme_mi_admin_identify_nsid_ctrl_list (nvme_mi_ctrl_t ctrl , __u32 nsid , __u16 cntid , struct nvme_ctrl_list *list );

## ARGUMENTS
ctrl

Controller to process identify command

nsid

Namespace identifier

cntid

Controller ID to specify list start

list

List data to populate

## DESCRIPTION
Perform an Identify command, for the controller list for nsid, starting with IDs greater than or equal to cntid.

Will return an error if the length of the response data (from the controller) is not a full NVME_IDENTIFY_DATA_SIZE, so id will be fully populated on success.

See: struct nvme_ctrl_list

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


title: nvme_mi_admin_identify_partial(2)

text:
# nvme_mi_admin_identify_partial(2)

## NAME
nvme_mi_admin_identify_partial - Perform an Admin identify command, and retrieve partial response data.

## SYNOPSIS
int nvme_mi_admin_identify_partial (nvme_mi_ctrl_t ctrl , struct nvme_identify_args *args , off_t offset , size_t size );

## ARGUMENTS
ctrl

Controller to process identify command

args

Identify command arguments

offset

offset of identify data to retrieve from response

size

size of identify data to return

## DESCRIPTION
Perform an Identify command, using the Identify command parameters in args. The offset and size arguments allow the caller to retrieve part of the identify response. See NVMe-MI section 6.2 for the semantics (and some handy diagrams) of the offset & size parameters.

Will return an error if the length of the response data (from the controller) did not match size.

Unless you're performing a vendor-unique identify command, You'll probably want to use one of the identify helpers (nvme_mi_admin_identify, nvme_mi_admin_identify_cns_nsid, or nvme_mi_admin_identify_<type>) instead of this. If the type of your identify command is standardized but not yet supported by libnvme-mi, please contact the maintainers.

See: struct nvme_identify_args

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


title: nvme_mi_admin_identify_primary_ctrl(2)

text:
# nvme_mi_admin_identify_primary_ctrl(2)

## NAME
nvme_mi_admin_identify_primary_ctrl - Perform an Admin identify for primary controller capabilities data structure.

## SYNOPSIS
int nvme_mi_admin_identify_primary_ctrl (nvme_mi_ctrl_t ctrl , __u16 cntid , struct nvme_primary_ctrl_cap *cap );

## ARGUMENTS
ctrl

Controller to process identify command

cntid

Controller ID to specify

cap

Primary Controller Capabilities data structure to populate

## DESCRIPTION
Perform an Identify command to get the Primary Controller Capabilities data for the controller specified by cntid

Will return an error if the length of the response data (from the controller) is not a full NVME_IDENTIFY_DATA_SIZE, so cap will be be fully populated on success.

See: struct nvme_primary_ctrl_cap

## RETURN
0 on success, non-zero on failure


text:
# nvme_mi_admin_identify_secondary_ctrl_list(2)

## NAME
nvme_mi_admin_identify_secondary_ctrl_list - Perform an Admin identify for a secondary controller list.

## SYNOPSIS
int nvme_mi_admin_identify_secondary_ctrl_list (nvme_mi_ctrl_t ctrl , __u16 cntid , struct nvme_secondary_ctrl_list *list );

## ARGUMENTS
ctrl

Controller to process identify command

cntid

Controller ID to specify list start

list

List data to populate

## DESCRIPTION
Perform an Identify command, for the secondary controllers associated with the current primary controller. Only entries with IDs greater than or equal to cntid are returned.

Will return an error if the length of the response data (from the controller) is not a full NVME_IDENTIFY_DATA_SIZE, so list will be be fully populated on success.

See: struct nvme_secondary_ctrl_list

## RETURN
0 on success, non-zero on failure


title: nvme_mi_admin_ns_attach(2)

text:
# nvme_mi_admin_ns_attach(2)

## NAME
nvme_mi_admin_ns_attach - Attach or detach namespace to controller(s)

## SYNOPSIS
int nvme_mi_admin_ns_attach (nvme_mi_ctrl_t ctrl , struct nvme_ns_attach_args *args );

## ARGUMENTS
ctrl

Controller to send command to

args

Namespace Attach command arguments

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


title: nvme_mi_admin_ns_attach_ctrls(2)

summary: Attach namespace to controllers

text:
# nvme_mi_admin_ns_attach_ctrls(2)

## NAME
nvme_mi_admin_ns_attach_ctrls - Attach namespace to controllers

## SYNOPSIS
int nvme_mi_admin_ns_attach_ctrls (nvme_mi_ctrl_t ctrl , __u32 nsid , struct nvme_ctrl_list *ctrlist );

## ARGUMENTS
ctrl

Controller to send command to

nsid

Namespace ID to attach

ctrlist

Controller list to modify attachment state of nsid

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


title: nvme_mi_admin_ns_detach_ctrls(2)

summary: Detach namespace from controllers

text:
# nvme_mi_admin_ns_detach_ctrls(2)

## NAME
nvme_mi_admin_ns_detach_ctrls - Detach namespace from controllers

## SYNOPSIS
int nvme_mi_admin_ns_detach_ctrls (nvme_mi_ctrl_t ctrl , __u32 nsid , struct nvme_ctrl_list *ctrlist );

## ARGUMENTS
ctrl

Controller to send command to

nsid

Namespace ID to detach

ctrlist

Controller list to modify attachment state of nsid

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


title: nvme_mi_admin_req_hdr(2)

summary: Admin command request header.

text:
# nvme_mi_admin_req_hdr(2)

## NAME
struct nvme_mi_admin_req_hdr - Admin command request header.

## SYNOPSIS
struct nvme_mi_admin_req_hdr {

struct nvme_mi_msg_hdr hdr;

__u8 opcode;

__u8 flags;

__le16 ctrl_id;

__le32 cdw1, cdw2, cdw3, cdw4, cdw5;

__le32 doff;

__le32 dlen;

__le32 rsvd0, rsvd1;

__le32 cdw10, cdw11, cdw12, cdw13, cdw14, cdw15;

};

## Members
hdr

Generic MI message header

opcode

Admin command opcode (using enum nvme_admin_opcode)

flags

Command Flags, indicating dlen and doff validity; Only defined in NVMe-MI version 1.1, no fields defined in 1.2 (where the dlen/doff are always considered valid).

ctrl_id

Controller ID target of command

cdw1

Submission Queue Entry doubleword 1

cdw2

Submission Queue Entry doubleword 2

cdw3

Submission Queue Entry doubleword 3

cdw4

Submission Queue Entry doubleword 4

cdw5

Submission Queue Entry doubleword 5

doff

Offset of data to return from command

dlen

Length of sent/returned data

rsvd0

Reserved

rsvd1

Reserved

cdw10

Submission Queue Entry doubleword 10

cdw11

Submission Queue Entry doubleword 11

cdw12

Submission Queue Entry doubleword 12

cdw13

Submission Queue Entry doubleword 13

cdw14

Submission Queue Entry doubleword 14

cdw15

Submission Queue Entry doubleword 15

## Description
Wire format for Admin command message headers, defined in section 6 of NVMe-MI.


title: nvme_mi_admin_resp_hdr(2)

summary: Admin command response header.

text:
# nvme_mi_admin_resp_hdr(2)

## NAME
struct nvme_mi_admin_resp_hdr - Admin command response header.

## SYNOPSIS
struct nvme_mi_admin_resp_hdr {

struct nvme_mi_msg_hdr hdr;

__u8 status;

__u8 rsvd0[3];

__le32 cdw0, cdw1, cdw3;

};

## Members
hdr

Generic MI message header

status

Generic response code, non-zero on failure

rsvd0

Reserved

cdw0

Completion Queue Entry doubleword 0

cdw1

Completion Queue Entry doubleword 1

cdw3

Completion Queue Entry doubleword 3

## Description
This is the generic response format with the three doublewords of completion queue data, plus optional response data.


title: nvme_mi_admin_sanitize_nvm(2)

summary: Start a subsystem Sanitize operation

text:
# nvme_mi_admin_sanitize_nvm(2)

## NAME
nvme_mi_admin_sanitize_nvm - Start a subsystem Sanitize operation

## SYNOPSIS
int nvme_mi_admin_sanitize_nvm (nvme_mi_ctrl_t ctrl , struct nvme_sanitize_nvm_args *args );

## ARGUMENTS
ctrl

Controller to send command to

args

Sanitize command arguments

## DESCRIPTION
A sanitize operation alters all user data in the NVM subsystem such that recovery of any previous user data from any cache, the non-volatile media, or any Controller Memory Buffer is not possible.

The Sanitize command starts a sanitize operation or to recover from a previously failed sanitize operation. The sanitize operation types that may be supported are Block Erase, Crypto Erase, and Overwrite. All sanitize operations are processed in the background, i.e., completion of the sanitize command does not indicate completion of the sanitize operation.

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


title: nvme_mi_admin_security_recv(2)

text:
# nvme_mi_admin_security_recv(2)

## NAME
nvme_mi_admin_security_recv - Perform a Security Receive command on a controller.

## SYNOPSIS
int nvme_mi_admin_security_recv (nvme_mi_ctrl_t ctrl , struct nvme_security_receive_args *args );

## ARGUMENTS
ctrl

Controller to send command to

args

Security Receive command arguments

## DESCRIPTION
Performs a Security Receive Admin command as specified by args. Response data is stored in args->data, which should be a buffer of args->data_len bytes. Resulting data length is stored in args->data_len on successful command completion.

Security Receive data length should not be greater than 4096 bytes to comply with specification limits.

See: struct nvme_get_log_args

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


title: nvme_mi_admin_security_send(2)

text:
# nvme_mi_admin_security_send(2)

## NAME
nvme_mi_admin_security_send - Perform a Security Send command on a controller.

## SYNOPSIS
int nvme_mi_admin_security_send (nvme_mi_ctrl_t ctrl , struct nvme_security_send_args *args );

## ARGUMENTS
ctrl

Controller to send command to

args

Security Send command arguments

## DESCRIPTION
Performs a Security Send Admin command as specified by args. Response data is stored in args->data, which should be a buffer of args->data_len bytes. Resulting data length is stored in args->data_len on successful command completion.

Security Send data length should not be greater than 4096 bytes to comply with specification limits.

See: struct nvme_get_log_args

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


summary: Set power management feature

text:
# nvme_mi_admin_set_features_power_mgmt(2)

## NAME
nvme_mi_admin_set_features_power_mgmt - Set power management feature

## SYNOPSIS
int nvme_mi_admin_set_features_power_mgmt (nvme_mi_ctrl_t ctrl , __u8 ps , __u8 wh , bool save , __u32 *result );

## ARGUMENTS
ctrl

Controller to send command to

ps

Power State

wh

Workload Hint

save

Save value across power states

result

The feature data is returned in this argument

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


title: nvme_mi_admin_xfer(2)

summary: Raw admin transfer interface.

text:
# nvme_mi_admin_xfer(2)

## NAME
nvme_mi_admin_xfer - Raw admin transfer interface.

## SYNOPSIS
int nvme_mi_admin_xfer (nvme_mi_ctrl_t ctrl , struct nvme_mi_admin_req_hdr *admin_req , size_t req_data_size , struct nvme_mi_admin_resp_hdr *admin_resp , off_t resp_data_offset , size_t *resp_data_size );

## ARGUMENTS
ctrl

controller to send the admin command to

admin_req

request data

req_data_size

size of request data payload

admin_resp

buffer for response data

resp_data_offset

offset into request data to retrieve from controller

resp_data_size

size of response data buffer, updated to received size

## DESCRIPTION
Performs an arbitrary NVMe Admin command, using the provided request data, in admin_req. The size of the request data *payload* is specified in req_data_size - this does not include the standard header length (so a header-only request would have a size of 0).

On success, response data is stored in admin_resp, which has an optional appended payload buffer of resp_data_size bytes. The actual payload transferred will be stored in resp_data_size. These sizes do not include the Admin request header, so 0 represents no payload.

As with all Admin commands, we can request partial data from the Admin Response payload, offset by resp_data_offset.

See: struct nvme_mi_admin_req_hdr and struct nvme_mi_admin_resp_hdr.

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


title: nvme_mi_aem_aeei_get_aee(2)

summary: return aee from aeei field

text:
# nvme_mi_aem_aeei_get_aee(2)

## NAME
nvme_mi_aem_aeei_get_aee - return aee from aeei field

## SYNOPSIS
bool nvme_mi_aem_aeei_get_aee (__le16 aeei );

## ARGUMENTS
aeei

aeei field from nvme_mi_aem_enable_item

## RETURN
aee value


title: nvme_mi_aem_aeei_get_aeeid(2)

summary: return aeeid from aeei field

text:
# nvme_mi_aem_aeei_get_aeeid(2)

## NAME
nvme_mi_aem_aeei_get_aeeid - return aeeid from aeei field

## SYNOPSIS
__u8 nvme_mi_aem_aeei_get_aeeid (__le16 aeei );

## ARGUMENTS
aeei

aeei field from nvme_mi_aem_enable_item

## RETURN
aeeid value


title: nvme_mi_aem_aeei_set_aee(2)

summary: set aee in the aeei field

text:
# nvme_mi_aem_aeei_set_aee(2)

## NAME
nvme_mi_aem_aeei_set_aee - set aee in the aeei field

## SYNOPSIS
void nvme_mi_aem_aeei_set_aee (struct nvme_mi_aem_enable_item *item , bool enabled );

## ARGUMENTS
item

Pointer to nvme_mi_aem_enable_item to update the aee field

enabled

aee value to use


title: nvme_mi_aem_aeei_set_aeeid(2)

summary: set aeeid in the aeei field

text:
# nvme_mi_aem_aeei_set_aeeid(2)

## NAME
nvme_mi_aem_aeei_set_aeeid - set aeeid in the aeei field

## SYNOPSIS
void nvme_mi_aem_aeei_set_aeeid (struct nvme_mi_aem_enable_item *item , __u8 aeeid );

## ARGUMENTS
item

Pointer to nvme_mi_aem_enable_item to update the aeei field

aeeid

aeeid value to use


title: nvme_mi_aem_aemti_get_aemgn(2)

summary: return aemgn from aemti field

text:
# nvme_mi_aem_aemti_get_aemgn(2)

## NAME
nvme_mi_aem_aemti_get_aemgn - return aemgn from aemti field

## SYNOPSIS
__u8 nvme_mi_aem_aemti_get_aemgn (__u8 aemti );

## ARGUMENTS
aemti

aemti field from nvme_mi_aem_occ_list_hdr

## RETURN
aemgn value


title: nvme_mi_aem_aeolli_get_aeoltl(2)

summary: return aeoltl from aeolli field

text:
# nvme_mi_aem_aeolli_get_aeoltl(2)

## NAME
nvme_mi_aem_aeolli_get_aeoltl - return aeoltl from aeolli field

## SYNOPSIS
__u32 nvme_mi_aem_aeolli_get_aeoltl (__u8 *aeolli );

## ARGUMENTS
aeolli

Pointer to 3 byte aeolli field from nvme_mi_aem_occ_list_hdr

## RETURN
aeoltl value


title: nvme_mi_aem_aeolli_set_aeoltl(2)

summary: set aeoltl in the aeolli field

text:
# nvme_mi_aem_aeolli_set_aeoltl(2)

## NAME
nvme_mi_aem_aeolli_set_aeoltl - set aeoltl in the aeolli field

## SYNOPSIS
void nvme_mi_aem_aeolli_set_aeoltl (struct nvme_mi_aem_occ_list_hdr *hdr , __u32 aeoltl );

## ARGUMENTS
hdr

Pointer to nvme_mi_aem_occ_list_hdr to set the aeolli field

aeoltl

aeoltl value to use


title: nvme_mi_aem_aesi_get_aese(2)

summary: return aese from aesi field

text:
# nvme_mi_aem_aesi_get_aese(2)

## NAME
nvme_mi_aem_aesi_get_aese - return aese from aesi field

## SYNOPSIS
bool nvme_mi_aem_aesi_get_aese (__le16 aesi );

## ARGUMENTS
aesi

aesi field from nvme_mi_aem_supported_item

## RETURN
A bool representing the aese value


title: nvme_mi_aem_aesi_get_aesid(2)

summary: return aesid from aesi field

text:
# nvme_mi_aem_aesi_get_aesid(2)

## NAME
nvme_mi_aem_aesi_get_aesid - return aesid from aesi field

## SYNOPSIS
__u8 nvme_mi_aem_aesi_get_aesid (__le16 aesi );

## ARGUMENTS
aesi

aesi field from nvme_mi_aem_supported_item

## RETURN
aesid value


title: nvme_mi_aem_aesi_set_aee(2)

summary: set aee in the aesi field

text:
# nvme_mi_aem_aesi_set_aee(2)

## NAME
nvme_mi_aem_aesi_set_aee - set aee in the aesi field

## SYNOPSIS
void nvme_mi_aem_aesi_set_aee (struct nvme_mi_aem_supported_item *item , bool enabled );

## ARGUMENTS
item

Pointer to nvme_mi_aem_supported_item to update the aesi field

enabled

aee value to use


title: nvme_mi_aem_aesi_set_aesid(2)

summary: set aesid in the aesi field

text:
# nvme_mi_aem_aesi_set_aesid(2)

## NAME
nvme_mi_aem_aesi_set_aesid - set aesid in the aesi field

## SYNOPSIS
void nvme_mi_aem_aesi_set_aesid (struct nvme_mi_aem_supported_item *item , __u8 aesid );

## ARGUMENTS
item

Pointer to nvme_mi_aem_supported_item to update the aesi field

aesid

aesid value to use


title: nvme_mi_aem_config(2)

summary: Provided for nvme_mi_aem_enable

text:
# nvme_mi_aem_config(2)

## NAME
struct nvme_mi_aem_config - Provided for nvme_mi_aem_enable

## SYNOPSIS
struct nvme_mi_aem_config {

enum nvme_mi_aem_handler_next_action (*aem_handler)(nvme_mi_ep_t ep,size_t num_events, void *userdata);

struct nvme_mi_aem_enabled_map enabled_map;

bool envfa;

bool empfa;

bool encfa;

__u8 aemd;

__u8 aerd;

};

## Members
aem_handler

Callback function for application processing of events

enabled_map

Map indicating which AE should be enabled on the endpoint

envfa

Enable SR-IOV virtual functions AE

empfa

Enable SR-IOV physical functions AE

encfa

Enable PCIe functions AE

aemd

AEM Delay (time in seconds from when event happens to AEM being batched and sent)

aerd

AEM Retry Delay (time in 100s of ms between AEM retries from the endpoint)

## Description
Application callbacks for nvme_mi_aem_process will be able to call nvme_mi_aem_get_next_event which will return a pointer to such an identifier for the next event the application should parse


title: nvme_mi_aem_disable(2)

summary: Disable AE on the provided endpoint

text:
# nvme_mi_aem_disable(2)

## NAME
nvme_mi_aem_disable - Disable AE on the provided endpoint

## SYNOPSIS
int nvme_mi_aem_disable (nvme_mi_ep_t ep );

## ARGUMENTS
ep

Endpoint to disable AEs

## RETURN
0 is a success, nonzero is an error and errno may be read for further details


title: nvme_mi_aem_enable(2)

summary: Enable AE on the provided endpoint

text:
# nvme_mi_aem_enable(2)

## NAME
nvme_mi_aem_enable - Enable AE on the provided endpoint

## SYNOPSIS
int nvme_mi_aem_enable (nvme_mi_ep_t ep , struct nvme_mi_aem_config *config , void *userdata );

## ARGUMENTS
ep

Endpoint to enable AEs

config

AE configuraiton including which events are enabled and the callback function

userdata

Application provided context pointer for callback function

## DESCRIPTION
This function is called to enable AE on the endpoint. Endpoint will provide initial state (if any) of enabled AEs and application can parse those via the aem_handler fn pointer in callbacks. Thes can be obtained in the callback by calling nvme_mi_aem_get_next_event.

Application should poll the fd that can be obtained from nvme_mi_aem_get_fd and then call nvme_mi_aem_process when poll indicates data available.

A call to nvme_mi_aem_process will grab AEM data and call the aem_handler fn pointer. At this point the application can call nvme_mi_aem_get_next_event to get information for each triggered event.

## RETURN
0 is a success, nonzero is an error and errno may be read for further details


title: nvme_mi_aem_enable_item(2)

summary: AE Enabled item entry

text:
# nvme_mi_aem_enable_item(2)

## NAME
struct nvme_mi_aem_enable_item - AE Enabled item entry

## SYNOPSIS
struct nvme_mi_aem_enable_item {

__u8 aeel;

__le16 aeei;

};

## Members
aeel

AE Enable Length (length of this structure which is 3)

aeei

AE Enable Info


title: nvme_mi_aem_enable_list(2)

text:
# nvme_mi_aem_enable_list(2)

## NAME
struct nvme_mi_aem_enable_list - AE enable list sent with SET CONFIG Asyncronous Event

## SYNOPSIS
struct nvme_mi_aem_enable_list {

struct nvme_mi_aem_enable_list_header hdr;

};

## Members
hdr

AE enable list header

## Description
Following this header should be hdr.numaee entries of nvme_mi_aem_enable_item structures


title: nvme_mi_aem_enable_list_header(2)

summary: AE Enable list header

text:
# nvme_mi_aem_enable_list_header(2)

## NAME
struct nvme_mi_aem_enable_list_header - AE Enable list header

## SYNOPSIS
struct nvme_mi_aem_enable_list_header {

__u8 numaee;

__u8 aeelver;

__le16 aeetl;

__u8 aeelhl;

};

## Members
numaee

Number of AE enable items following the header

aeelver

Version of the AE enable list (zero)

aeetl

Total length of the AE enable list including header and items

aeelhl

Header length of this header (5)


title: nvme_mi_aem_get_enabled(2)

text:
# nvme_mi_aem_get_enabled(2)

## NAME
nvme_mi_aem_get_enabled - Return information on which AEs are enabled

## SYNOPSIS
int nvme_mi_aem_get_enabled (nvme_mi_ep_t ep , struct nvme_mi_aem_enabled_map *enabled );

## ARGUMENTS
ep

Endpoint to check enabled status

enabled

nvme_mi_aem_enabled_map indexed by AE event ID of enabled state

## RETURN
0 is a success, nonzero is an error and errno may be read for further details


title: nvme_mi_aem_get_fd(2)

text:
# nvme_mi_aem_get_fd(2)

## NAME
nvme_mi_aem_get_fd - Returns the pollable fd for AEM data available

## SYNOPSIS
int nvme_mi_aem_get_fd (nvme_mi_ep_t ep );

## ARGUMENTS
ep

The endpoint being monitored for asynchronous data

## DESCRIPTION
This populated structure can be polled from the application to understand if a call to nvme_mi_aem_process is required (when a poll returns > 0).

## RETURN
The fd value or -1 if error


title: nvme_mi_aem_get_next_event(2)

summary: Get details for the next event to parse

text:
# nvme_mi_aem_get_next_event(2)

## NAME
nvme_mi_aem_get_next_event - Get details for the next event to parse

## SYNOPSIS
struct nvme_mi_event * nvme_mi_aem_get_next_event (nvme_mi_ep_t ep );

## ARGUMENTS
ep

The endpoint with the event

## DESCRIPTION
When inside a aem_handler, call this and a returned struct pointer will provide details of event information. Will return NULL when end of parsing is occurred. spec_info and vend_spec_info must be copied to persist as they will not be valid after the handler_next_action has returned.

## RETURN
Pointer no next nvme_mi_event or NULL if this is the last one


title: nvme_mi_aem_handler_next_action(2)

text:
# nvme_mi_aem_handler_next_action(2)

## NAME
enum nvme_mi_aem_handler_next_action - Next action for the AEM state machine handler

## SYNOPSIS
enum nvme_mi_aem_handler_next_action {

NVME_MI_AEM_HNA_ACK ,

NVME_MI_AEM_HNA_NONE

};

## Constants
NVME_MI_AEM_HNA_ACK

Send an ack for the AEM

NVME_MI_AEM_HNA_NONE

No further action

## Description
Used as return value for the AE callback generated when calling nvme_mi_aem_process


title: nvme_mi_aem_msg(2)

summary: AEM Message definition.

text:
# nvme_mi_aem_msg(2)

## NAME
struct nvme_mi_aem_msg - AEM Message definition.

## SYNOPSIS
struct nvme_mi_aem_msg {

struct nvme_mi_msg_hdr hdr;

struct nvme_mi_aem_occ_list_hdr occ_list_hdr;

};

## Members
hdr

the general response message header

occ_list_hdr

ae occurrence list header.

## Description
Every ae message will start with one of these. The occ_list_hder wil define information about how many ae occ data entries are included. Each entry is defined by the nvme_mi_aem_occ_data structure which will follow the occ_list_hdr. Each nvme_mi_aem_occ_data structure has a fixed length header but a variable length payload ude to occurrence specific and vendor specific info. For this reason, do not index the nvme_mi_ae_occ data structures by array or fixed offset.


title: nvme_mi_aem_occ_data(2)

summary: AEM Message definition.

text:
# nvme_mi_aem_occ_data(2)

## NAME
struct nvme_mi_aem_occ_data - AEM Message definition.

## SYNOPSIS
struct nvme_mi_aem_occ_data {

__u8 aelhlen;

__u8 aeosil;

__u8 aeovsil;

struct {

__u8 aeoi;

__le32 aeocidi;

__u8 aessi;

} aeoui;

};

## Members
aelhlen

AE Occurrence Header Length

aeosil

AE Occurrence Specific Info Length

aeovsil

AE Occurrence Vendor Specific Info Length

aeoui

AE Occurrence Unique ID made up of other subfields

## Description
A single entry of ae occurrence data that comes with an nvme_aem_msg. Following this structure is variable length AEOSI (occurrence specific info) and variable length AEVSI (vendor specific info). The length of AEOSI is specified by aeosil and the length of AEVSI is specified by AEVSI. Neither field is mandatory and shall be omitted if their length parameter is set to zero.


title: nvme_mi_aem_occ_list_hdr(2)

summary: AE occurrence list header

text:
# nvme_mi_aem_occ_list_hdr(2)

## NAME
struct nvme_mi_aem_occ_list_hdr - AE occurrence list header

## SYNOPSIS
struct nvme_mi_aem_occ_list_hdr {

__u8 numaeo;

__u8 aelver;

__u8 aeolli[3];

__u8 aeolhl;

__u8 aemti;

};

## Members
numaeo

Number of AE Occurrence Data Structures

aelver

AE Occurrence List Version Number

aeolli

AE Occurrence List Length Info (AEOLLI)

aeolhl

AE Occurrence List Header Length (shall be set to 7)

aemti

AEM Transmission Info

## Description
The header for the occurrence list. numaeo defines how many nvme_mi_aem_occ_data structures (including variable payaloads) are included. Following this header is each of the numaeo occurrence data structures.


title: nvme_mi_aem_open(2)

text:
# nvme_mi_aem_open(2)

## NAME
nvme_mi_aem_open - Prepare an existing endpoint to receive AEMs

## SYNOPSIS
int nvme_mi_aem_open (nvme_mi_ep_t ep );

## ARGUMENTS
ep

Endpoint to configure for AEMs

## RETURN
0 if success, -1 otherwise