xnvme_cli

Enums

xnvme_cli_opt

enum xnvme_cli_opt

Command-Line Options, each command-line option can be one of xnvme_cli_opt_type.

Values:

enumerator XNVME_CLI_OPT_NONE

XNVME_CLI_OPT_NONE.

enumerator XNVME_CLI_OPT_CDW00

XNVME_CLI_OPT_CDW00.

enumerator XNVME_CLI_OPT_CDW01

XNVME_CLI_OPT_CDW01.

enumerator XNVME_CLI_OPT_CDW02

XNVME_CLI_OPT_CDW02.

enumerator XNVME_CLI_OPT_CDW03

XNVME_CLI_OPT_CDW03.

enumerator XNVME_CLI_OPT_CDW04

XNVME_CLI_OPT_CDW04.

enumerator XNVME_CLI_OPT_CDW05

XNVME_CLI_OPT_CDW05.

enumerator XNVME_CLI_OPT_CDW06

XNVME_CLI_OPT_CDW06.

enumerator XNVME_CLI_OPT_CDW07

XNVME_CLI_OPT_CDW07.

enumerator XNVME_CLI_OPT_CDW08

XNVME_CLI_OPT_CDW08.

enumerator XNVME_CLI_OPT_CDW09

XNVME_CLI_OPT_CDW09.

enumerator XNVME_CLI_OPT_CDW10

XNVME_CLI_OPT_CDW10.

enumerator XNVME_CLI_OPT_CDW11

XNVME_CLI_OPT_CDW11.

enumerator XNVME_CLI_OPT_CDW12

XNVME_CLI_OPT_CDW12.

enumerator XNVME_CLI_OPT_CDW13

XNVME_CLI_OPT_CDW13.

enumerator XNVME_CLI_OPT_CDW14

XNVME_CLI_OPT_CDW14.

enumerator XNVME_CLI_OPT_CDW15

XNVME_CLI_OPT_CDW15.

enumerator XNVME_CLI_OPT_CMD_INPUT

XNVME_CLI_OPT_CMD_INPUT.

enumerator XNVME_CLI_OPT_CMD_OUTPUT

XNVME_CLI_OPT_CMD_OUTPUT.

enumerator XNVME_CLI_OPT_DATA_NBYTES

XNVME_CLI_OPT_DATA_NBYTES.

enumerator XNVME_CLI_OPT_DATA_INPUT

XNVME_CLI_OPT_DATA_INPUT.

enumerator XNVME_CLI_OPT_DATA_OUTPUT

XNVME_CLI_OPT_DATA_OUTPUT.

enumerator XNVME_CLI_OPT_META_NBYTES

XNVME_CLI_OPT_META_NBYTES.

enumerator XNVME_CLI_OPT_META_INPUT

XNVME_CLI_OPT_META_INPUT.

enumerator XNVME_CLI_OPT_META_OUTPUT

XNVME_CLI_OPT_META_OUTPUT.

enumerator XNVME_CLI_OPT_LBAFL

XNVME_CLI_OPT_LBAFL.

enumerator XNVME_CLI_OPT_SLBA

XNVME_CLI_OPT_SLBA.

enumerator XNVME_CLI_OPT_ELBA

XNVME_CLI_OPT_ELBA.

enumerator XNVME_CLI_OPT_LBA

XNVME_CLI_OPT_LBA.

enumerator XNVME_CLI_OPT_NLB

XNVME_CLI_OPT_NLB.

enumerator XNVME_CLI_OPT_URI

XNVME_CLI_OPT_URI.

enumerator XNVME_CLI_OPT_SYS_URI

XNVME_CLI_OPT_SYS_URI.

enumerator XNVME_CLI_OPT_UUID

XNVME_CLI_OPT_UUID.

enumerator XNVME_CLI_OPT_NSID

XNVME_CLI_OPT_NSID.

enumerator XNVME_CLI_OPT_CNS

XNVME_CLI_OPT_CNS.

enumerator XNVME_CLI_OPT_CSI

XNVME_CLI_OPT_CSI.

enumerator XNVME_CLI_OPT_INDEX

XNVME_CLI_OPT_INDEX.

enumerator XNVME_CLI_OPT_SETID

XNVME_CLI_OPT_SETID.

enumerator XNVME_CLI_OPT_CNTID

XNVME_CLI_OPT_CNTID.

enumerator XNVME_CLI_OPT_LID

XNVME_CLI_OPT_LID.

enumerator XNVME_CLI_OPT_LSP

XNVME_CLI_OPT_LSP.

enumerator XNVME_CLI_OPT_LPO_NBYTES

XNVME_CLI_OPT_LPO_NBYTES.

enumerator XNVME_CLI_OPT_RAE

XNVME_CLI_OPT_RAE.

enumerator XNVME_CLI_OPT_CLEAR

XNVME_CLI_OPT_CLEAR.

enumerator XNVME_CLI_OPT_LBAFU

XNVME_CLI_OPT_LBAFU.

enumerator XNVME_CLI_OPT_SES

XNVME_CLI_OPT_SES.

enumerator XNVME_CLI_OPT_SEL

XNVME_CLI_OPT_SEL.

enumerator XNVME_CLI_OPT_MSET

XNVME_CLI_OPT_MSET.

enumerator XNVME_CLI_OPT_AUSE

XNVME_CLI_OPT_AUSE.

enumerator XNVME_CLI_OPT_OVRPAT

XNVME_CLI_OPT_OVRPAT.

enumerator XNVME_CLI_OPT_OWPASS

XNVME_CLI_OPT_OWPASS.

enumerator XNVME_CLI_OPT_OIPBP

XNVME_CLI_OPT_OIPBP.

enumerator XNVME_CLI_OPT_NODAS

XNVME_CLI_OPT_NODAS.

enumerator XNVME_CLI_OPT_ACTION

XNVME_CLI_OPT_ACTION.

enumerator XNVME_CLI_OPT_ZRMS

XNVME_CLI_OPT_ZRMS.

enumerator XNVME_CLI_OPT_PI

XNVME_CLI_OPT_PI.

enumerator XNVME_CLI_OPT_PIL

XNVME_CLI_OPT_PIL.

enumerator XNVME_CLI_OPT_FID

XNVME_CLI_OPT_FID.

enumerator XNVME_CLI_OPT_FEAT

XNVME_CLI_OPT_FEAT.

enumerator XNVME_CLI_OPT_SEED

XNVME_CLI_OPT_SEED.

enumerator XNVME_CLI_OPT_LIMIT

XNVME_CLI_OPT_LIMIT.

enumerator XNVME_CLI_OPT_IOSIZE

XNVME_CLI_OPT_IOSIZE.

enumerator XNVME_CLI_OPT_QDEPTH

XNVME_CLI_OPT_QDEPTH.

enumerator XNVME_CLI_OPT_DIRECT

XNVME_CLI_OPT_DIRECT.

enumerator XNVME_CLI_OPT_STATUS

XNVME_CLI_OPT_STATUS.

enumerator XNVME_CLI_OPT_SAVE

XNVME_CLI_OPT_SAVE.

enumerator XNVME_CLI_OPT_RESET

XNVME_CLI_OPT_RESET.

enumerator XNVME_CLI_OPT_VERBOSE

XNVME_CLI_OPT_VERBOSE.

enumerator XNVME_CLI_OPT_HELP

XNVME_CLI_OPT_HELP.

enumerator XNVME_CLI_OPT_COUNT

XNVME_CLI_OPT_COUNT.

enumerator XNVME_CLI_OPT_OFFSET

XNVME_CLI_OPT_OFFSET.

enumerator XNVME_CLI_OPT_OPCODE

XNVME_CLI_OPT_OPCODE.

enumerator XNVME_CLI_OPT_FLAGS

XNVME_CLI_OPT_FLAGS.

enumerator XNVME_CLI_OPT_ALL

XNVME_CLI_OPT_ALL.

enumerator XNVME_CLI_OPT_BE

XNVME_CLI_OPT_BE.

enumerator XNVME_CLI_OPT_MEM

XNVME_CLI_OPT_MEM.

enumerator XNVME_CLI_OPT_SYNC

XNVME_CLI_OPT_SYNC.

enumerator XNVME_CLI_OPT_ASYNC

XNVME_CLI_OPT_ASYNC.

enumerator XNVME_CLI_OPT_ADMIN

XNVME_CLI_OPT_ADMIN.

enumerator XNVME_CLI_OPT_SHM_ID

XNVME_CLI_OPT_SHM_ID.

enumerator XNVME_CLI_OPT_MAIN_CORE

XNVME_CLI_OPT_MAIN_CORE.

enumerator XNVME_CLI_OPT_CORE_MASK

XNVME_CLI_OPT_CORE_MASK.

enumerator XNVME_CLI_OPT_USE_CMB_SQS

XNVME_CLI_OPT_USE_CMB_SQS.

enumerator XNVME_CLI_OPT_CSS

XNVME_CLI_OPT_CSS.

enumerator XNVME_CLI_OPT_POLL_IO

XNVME_CLI_OPT_POLL_IO.

enumerator XNVME_CLI_OPT_POLL_SQ

XNVME_CLI_OPT_POLL_SQ.

enumerator XNVME_CLI_OPT_REGISTER_FILES

XNVME_CLI_OPT_REGISTER_FILES.

enumerator XNVME_CLI_OPT_REGISTER_BUFFERS

XNVME_CLI_OPT_REGISTER_BUFFERS.

enumerator XNVME_CLI_OPT_TRUNCATE

XNVME_CLI_OPT_TRUNCATE.

enumerator XNVME_CLI_OPT_RDONLY

XNVME_CLI_OPT_RDONLY.

enumerator XNVME_CLI_OPT_WRONLY

XNVME_CLI_OPT_WRONLY.

enumerator XNVME_CLI_OPT_RDWR

XNVME_CLI_OPT_RDWR.

enumerator XNVME_CLI_OPT_CREATE

XNVME_CLI_OPT_CREATE.

enumerator XNVME_CLI_OPT_CREATE_MODE

XNVME_CLI_OPT_CREATE_MODE.

enumerator XNVME_CLI_OPT_ADRFAM

XNVME_CLI_OPT_ADRFAM.

enumerator XNVME_CLI_OPT_DEV_NSID

XNVME_CLI_OPT_DEV_NSID.

enumerator XNVME_CLI_OPT_VEC_CNT

XNVME_CLI_OPT_VEC_CNT.

enumerator XNVME_CLI_OPT_SUBNQN

XNVME_OPT_SUBNQN.

enumerator XNVME_CLI_OPT_HOSTNQN

XNVME_CLI_OPT_HOSTNQN.

enumerator XNVME_CLI_OPT_DTYPE

XNVME_CLI_OPT_DTYPE.

enumerator XNVME_CLI_OPT_DSPEC

XNVME_CLI_OPT_DSPEC.

enumerator XNVME_CLI_OPT_DOPER

XNVME_CLI_OPT_DOPER.

enumerator XNVME_CLI_OPT_ENDIR

XNVME_CLI_OPT_ENDIR.

enumerator XNVME_CLI_OPT_TGTDIR

XNVME_CLI_OPT_TGTDIR.

enumerator XNVME_CLI_OPT_NSR

XNVME_CLI_OPT_NSR.

enumerator XNVME_CLI_OPT_POSA_TITLE

XNVME_CLI_OPT_POSA_TITLE.

enumerator XNVME_CLI_OPT_NON_POSA_TITLE

XNVME_CLI_OPT_NON_POSA_TITLE.

enumerator XNVME_CLI_OPT_ORCH_TITLE

XNVME_CLI_OPT_ORCH_TITLE.

enumerator XNVME_CLI_OPT_AD

XNVME_CLI_OPT_AD.

enumerator XNVME_CLI_OPT_IDW

XNVME_CLI_OPT_IDW.

enumerator XNVME_CLI_OPT_IDR

XNVME_CLI_OPT_IDR.

enumerator XNVME_CLI_OPT_LLB

XNVME_CLI_OPT_LLB.

enumerator XNVME_CLI_OPT_LSI

XNVME_CLI_OPT_LSI.

enumerator XNVME_CLI_OPT_PID

XNVME_CLI_OPT_PID.

enumerator XNVME_CLI_OPT_KV_KEY

XNVME_CLI_OPT_KV_KEY.

enumerator XNVME_CLI_OPT_KV_VAL

XNVME_CLI_OPT_KV_VAL.

enumerator XNVME_CLI_OPT_KV_STORE_UPDATE

XNVME_CLI_OPT_KV_STORE_UPDATE.

enumerator XNVME_CLI_OPT_KV_STORE_ADD

XNVME_CLI_OPT_KV_STORE_ADD.

enumerator XNVME_CLI_OPT_KV_STORE_COMPRESS

XNVME_CLI_OPT_KV_STORE_COMPRESS.

enumerator XNVME_CLI_OPT_PRACT

XNVME_CLI_OPT_PRACT.

enumerator XNVME_CLI_OPT_PRCHK

XNVME_CLI_OPT_PRCHK.

enumerator XNVME_CLI_OPT_APPTAG

XNVME_CLI_OPT_APPTAG.

enumerator XNVME_CLI_OPT_APPTAG_MASK

XNVME_CLI_OPT_APPTAG_MASK.

enumerator XNVME_CLI_OPT_END

XNVME_CLI_OPT_END.

xnvme_cli_opt_type

enum xnvme_cli_opt_type

XNVME_CLI_LFLG: .

/cli —verbose; always optional XNVME_CLI_LOPT: ./cli —arg 0x0; optionally provide a value XNVME_CLI_LREQ: ./cli —arg 0x0; require providing a value XNVME_CLI_POSA: ./cli arg1 arg2; required, ordered, and provides a value XNVME_CLI_SKIP: ; This argument is used for formatting etc.

Values:

enumerator XNVME_CLI_POSA

XNVME_CLI_POSA.

enumerator XNVME_CLI_LFLG

XNVME_CLI_LFLG.

enumerator XNVME_CLI_LOPT

XNVME_CLI_LOPT.

enumerator XNVME_CLI_LREQ

XNVME_CLI_LREQ.

enumerator XNVME_CLI_SKIP

XNVME_CLI_SKIP.

xnvme_cli_opt_value_type

enum xnvme_cli_opt_value_type

Values:

enumerator XNVME_CLI_OPT_VTYPE_URI
enumerator XNVME_CLI_OPT_VTYPE_NUM
enumerator XNVME_CLI_OPT_VTYPE_HEX
enumerator XNVME_CLI_OPT_VTYPE_FILE
enumerator XNVME_CLI_OPT_VTYPE_STR
enumerator XNVME_CLI_OPT_VTYPE_SKIP

xnvme_cli_opts

enum xnvme_cli_opts

Values:

enumerator XNVME_CLI_INIT_NONE
enumerator XNVME_CLI_INIT_DEV_OPEN

Structs

xnvme_cli

struct xnvme_cli

Public Members

const char *title

Setup by user.

const char *descr_short

Setup by user.

const char *descr_long

Setup by user.

int nsubs

Setup by user.

struct xnvme_cli_sub *subs

Setup by user.

int (*ver_pr)(int)

Setup by library if unset.

int argc

Setup by library.

char **argv

Setup by library.

struct xnvme_cli_args args

Setup by library.

int given[XNVME_CLI_OPT_END]

Setup by library.

struct xnvme_cli_sub *sub

Setup by library.

struct xnvme_timer timer

Used by xnvme_cli_timer_*.

xnvme_cli_args

struct xnvme_cli_args

Options are stored in an instance of this structure.

Public Members

struct xnvme_dev *dev

Created.

const char *uri
const char *sys_uri
const char *subnqn
const char *hostnqn
const char *cmd_input
const char *cmd_output
size_t data_nbytes
const char *data_input
const char *data_output
size_t meta_nbytes
const char *meta_input
const char *meta_output
uint32_t cdw[16]
uint64_t lbafl
uint64_t lba
uint32_t llb
uint32_t nlb
uint64_t slba
uint64_t elba
uint32_t uuid
uint32_t nsid
uint32_t dev_nsid
uint32_t cns
uint32_t csi
uint64_t index
uint32_t setid
uint64_t cntid
uint32_t lid
uint32_t lsp
uint64_t lpo_nbytes
uint32_t rae
uint32_t clear
uint32_t lbafu
uint32_t ses
uint32_t sel
uint32_t mset
uint32_t ause
uint32_t ovrpat
uint32_t owpass
uint32_t oipbp
uint32_t nodas
uint32_t action
uint32_t zrms
uint32_t pi
uint32_t pil
uint32_t fid
uint32_t feat
uint32_t seed
uint32_t iosize
uint32_t qdepth
uint32_t direct
uint32_t limit
uint64_t count
uint64_t offset
uint64_t opcode
uint64_t flags
uint64_t all
uint32_t status
uint32_t save
uint32_t reset
uint32_t verbose
uint32_t help
const char *be
const char *mem
const char *sync
const char *async
const char *admin
uint64_t shm_id
uint32_t main_core
const char *core_mask
struct xnvme_opts_css css

SPDK controller-setup: do command-set-selection.

uint32_t use_cmb_sqs
const char *adrfam
uint32_t poll_io
uint32_t poll_sq
uint32_t register_files
uint32_t register_buffers
uint32_t truncate
uint32_t rdonly
uint32_t wronly
uint32_t rdwr
uint32_t create
uint32_t create_mode
uint32_t nr
uint32_t ad
uint32_t idw
uint32_t idr
uint32_t vec_cnt
uint32_t dtype
uint32_t dspec
uint32_t doper
uint32_t endir
uint32_t tgtdir
uint32_t nsr
uint32_t lsi
uint32_t pid
const char *kv_key
const char *kv_val
bool kv_store_add
bool kv_store_update
bool kv_store_compress
bool pract
uint8_t prchk
uint32_t apptag
uint32_t apptag_mask

xnvme_cli_enumeration

struct xnvme_cli_enumeration

List of devices found on the system usable with xNVMe.

Public Members

uint32_t capacity

Remaining unused entries.

uint32_t nentries

Used entries.

struct xnvme_ident entries[]

Device entries.

xnvme_cli_opt_attr

struct xnvme_cli_opt_attr

Public Members

enum xnvme_cli_opt opt
enum xnvme_cli_opt_value_type vtype
const char *name
const char *descr
char getoptval

xnvme_cli_sub

struct xnvme_cli_sub

Filled by the user of libxnvmc, usually statically right above main.

Public Members

const char *name

Short name of the sub-command.

const char *descr_short

Short sub-command description.

const char *descr_long

Long sub-command description.

xnvme_cli_subfunc command

Function to execute.

Options to parse into args and pass onto func

struct xnvme_cli_sub_opt opts[XNVME_CLI_SUB_OPTS_LEN]

xnvme_cli_sub_opt

struct xnvme_cli_sub_opt

Public Members

enum xnvme_cli_opt opt
enum xnvme_cli_opt_type type

Functions

xnvme_cli_args_pr

void xnvme_cli_args_pr(struct xnvme_cli_args *args, int opts)

xnvme_cli_enumeration_alloc

int xnvme_cli_enumeration_alloc(struct xnvme_cli_enumeration **list, uint32_t capacity)

xnvme_cli_enumeration_append

int xnvme_cli_enumeration_append(struct xnvme_cli_enumeration *list, const struct xnvme_ident *entry)

xnvme_cli_enumeration_fpp

int xnvme_cli_enumeration_fpp(FILE *stream, struct xnvme_cli_enumeration *list, int opts)

xnvme_cli_enumeration_fpr

int xnvme_cli_enumeration_fpr(FILE *stream, struct xnvme_cli_enumeration *list, int opts)

Prints the given xnvme_cli_enumeration to the given output stream.

Parameters:
  • stream – output stream used for printing

  • list – pointer to structure to print

  • opts – printer options, see xnvme_pr

Returns:

On success, the number of characters printed is returned.

xnvme_cli_enumeration_free

void xnvme_cli_enumeration_free(struct xnvme_cli_enumeration *list)

xnvme_cli_enumeration_pp

int xnvme_cli_enumeration_pp(struct xnvme_cli_enumeration *list, int opts)

xnvme_cli_enumeration_pr

int xnvme_cli_enumeration_pr(struct xnvme_cli_enumeration *list, int opts)

Prints the given xnvme_cli_enumeration to stdout.

Parameters:
  • list – pointer to structure to print

  • opts – printer options, see xnvme_pr

Returns:

On success, the number of characters printed is returned.

xnvme_cli_get_opt_attr

const struct xnvme_cli_opt_attr *xnvme_cli_get_opt_attr(enum xnvme_cli_opt opt)

xnvme_cli_perr

void xnvme_cli_perr(const char *msg, int err)

xnvme_cli_pinf

void xnvme_cli_pinf(const char *format, ...)

xnvme_cli_run

int xnvme_cli_run(struct xnvme_cli *cli, int argc, char **argv, int opts)

xnvme_cli_timer_bw_pr

void xnvme_cli_timer_bw_pr(struct xnvme_cli *cli, const char *prefix, size_t nbytes)

xnvme_cli_timer_start

uint64_t xnvme_cli_timer_start(struct xnvme_cli *cli)

xnvme_cli_timer_stop

uint64_t xnvme_cli_timer_stop(struct xnvme_cli *cli)

xnvme_cli_to_opts

int xnvme_cli_to_opts(const struct xnvme_cli *cli, struct xnvme_opts *opts)

Fill the given ‘opts’ with values parsed in the given ‘cli’.

Parameters:
  • cli – The command-line-interface to parse arguments for

  • opts – The device-options to fill

Returns:

On success, 0 is returned.