libxnvme_cli.h#
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_SANACT#
 XNVME_CLI_OPT_SANACT.
- 
enumerator XNVME_CLI_OPT_ZSA#
 XNVME_CLI_OPT_ZSA.
- 
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_SDLBA#
 
- 
enumerator XNVME_CLI_OPT_END#
 XNVME_CLI_OPT_END.
- 
enumerator XNVME_CLI_OPT_NONE#
 
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.
- 
enumerator XNVME_CLI_POSA#
 
xnvme_cli_opt_value_type#
xnvme_cli_opts#
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_*.
- 
const char *title#
 
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#
 
- 
bool clear#
 
- 
uint32_t lbafu#
 
- 
uint32_t ses#
 
- 
uint32_t sel#
 
- 
uint32_t mset#
 
- 
bool ause#
 
- 
uint32_t ovrpat#
 
- 
uint32_t owpass#
 
- 
bool oipbp#
 
- 
bool nodas#
 
- 
uint32_t sanact#
 
- 
uint32_t zsa#
 
- 
uint32_t pi#
 
- 
uint32_t pil#
 
- 
uint32_t fid#
 
- 
uint32_t feat#
 
- 
uint32_t seed#
 
- 
uint32_t iosize#
 
- 
uint32_t qdepth#
 
- 
bool direct#
 
- 
uint32_t limit#
 
- 
uint64_t count#
 
- 
uint64_t offset#
 
- 
uint64_t opcode#
 
- 
uint64_t flags#
 
- 
bool all#
 
- 
uint32_t status#
 
- 
bool save#
 
- 
uint32_t reset#
 
- 
bool 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#
 
- 
bool ad#
 
- 
bool idw#
 
- 
bool 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#
 
- 
uint64_t sdlba#
 
- 
struct xnvme_dev *dev#
 
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.
- 
uint32_t capacity#
 
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#
 
- 
enum xnvme_cli_opt opt#
 
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]#
 
- 
const char *name#
 
xnvme_cli_sub_opt#
- 
struct xnvme_cli_sub_opt#
 
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#
xnvme_cli_timer_bw_pr#
xnvme_cli_timer_start#
xnvme_cli_timer_stop#
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.