|
static bool | is_oc20_admin_cmd (uint8_t opcode) |
|
static uint16_t | oc20_dma_read (FemuCtrl *n, uint8_t *ptr, uint32_t len, NvmeCmd *cmd) |
|
static uint16_t | oc20_dma_write (FemuCtrl *n, uint8_t *ptr, uint32_t len, NvmeCmd *cmd) |
|
static uint16_t | oc20_init_chunk_info (Oc20Namespace *lns) |
|
static Oc20CS * | oc20_chunk_get_state (FemuCtrl *n, NvmeNamespace *ns, uint64_t lba) |
|
static uint16_t | oc20_advance_wp (FemuCtrl *n, NvmeNamespace *ns, uint64_t lba, uint16_t nlb, NvmeRequest *req) |
|
static void | oc20_parse_lba_list (FemuCtrl *n, NvmeNamespace *ns, NvmeCmd *cmd, NvmeRequest *req, Oc20AddrBucket *bucket, int *nr) |
|
static int | oc20_advance_status (FemuCtrl *n, NvmeNamespace *ns, NvmeCmd *cmd, NvmeRequest *req) |
|
static uint16_t | oc20_rw_check_chunk_write (FemuCtrl *n, NvmeCmd *cmd, uint64_t lba, uint32_t ws, NvmeRequest *req) |
|
static uint16_t | oc20_rw_check_write_req (FemuCtrl *n, NvmeCmd *cmd, NvmeRequest *req) |
|
static uint16_t | oc20_rw_check_chunk_read (FemuCtrl *n, NvmeCmd *cmd, NvmeRequest *req, uint64_t lba) |
|
static uint16_t | oc20_rw_check_read_req (FemuCtrl *n, NvmeCmd *cmd, NvmeRequest *req) |
|
static uint16_t | oc20_rw_check_vector_req (FemuCtrl *n, NvmeCmd *cmd, NvmeRequest *req) |
|
static uint16_t | oc20_chunk_set_free (FemuCtrl *n, NvmeNamespace *ns, uint64_t lba, hwaddr mptr, NvmeRequest *req) |
|
static uint16_t | oc20_rw_check_req (FemuCtrl *n, NvmeCmd *cmd, NvmeRequest *req) |
|
static unsigned | get_unsigned (char *string, const char *key, unsigned int *value) |
|
static int | get_ch_lun_chk (char *chunkinfo, unsigned int *grp, unsigned int *lun, unsigned int *chk) |
|
static int | get_chunk_meta_index (FemuCtrl *n, NvmeNamespace *ns, unsigned int grp, unsigned int lun, unsigned int chk) |
|
static int | set_resetfail_chunk (FemuCtrl *n, NvmeNamespace *ns, char *chunkinfo) |
|
static int | set_writefail_sector (FemuCtrl *n, NvmeNamespace *ns, char *secinfo) |
|
static int | oc20_resetfail_load (FemuCtrl *n, NvmeNamespace *ns, Error **errp) |
|
static int | oc20_writefail_load (FemuCtrl *n, NvmeNamespace *ns, Error **errp) |
|
static Oc20Namespace * | cmd_lns (FemuCtrl *n, NvmeCmd *cmd) |
|
static NvmeNamespace * | cmd_ns (FemuCtrl *n, NvmeCmd *cmd) |
|
static uint16_t | oc20_rw (FemuCtrl *n, NvmeCmd *cmd, NvmeRequest *req, bool vector) |
|
static uint16_t | oc20_identify (FemuCtrl *n, NvmeCmd *cmd) |
|
static uint16_t | oc20_erase (FemuCtrl *n, NvmeCmd *cmd, NvmeRequest *req) |
|
static uint16_t | oc20_chunk_info (FemuCtrl *n, NvmeCmd *cmd, uint32_t buf_len, uint64_t off) |
|
static uint16_t | oc20_get_log (FemuCtrl *n, NvmeCmd *cmd) |
|
static uint16_t | oc20_set_log (FemuCtrl *n, NvmeCmd *cmd) |
|
static uint16_t | oc20_admin_cmd (FemuCtrl *n, NvmeCmd *cmd) |
|
static uint16_t | oc20_io_cmd (FemuCtrl *n, NvmeNamespace *ns, NvmeCmd *cmd, NvmeRequest *req) |
|
static void | oc20_free_namespace (FemuCtrl *n, NvmeNamespace *ns) |
|
static void | oc20_nvme_ns_init_identify (FemuCtrl *n, NvmeIdNs *id_ns) |
|
static uint64_t | nvme_ns_calc_blks (FemuCtrl *n, NvmeNamespace *ns) |
|
static void | nvme_ns_init_predef (FemuCtrl *n, NvmeNamespace *ns) |
|
static void | femu_oc20_init_id_ctrl (FemuCtrl *n, NvmeNamespace *ns, Oc20NamespaceGeometry *ln) |
|
static int | oc20_init_namespace (FemuCtrl *n, NvmeNamespace *ns, Error **errp) |
|
static int | oc20_init_namespaces (FemuCtrl *n, Error **errp) |
|
static void | oc20_set_ctrl_str (FemuCtrl *n) |
|
static void | oc20_release_locks (FemuCtrl *n) |
|
static int | oc20_init_misc (FemuCtrl *n) |
|
static void | oc20_init (FemuCtrl *n, Error **errp) |
|
static void | oc20_exit (FemuCtrl *n) |
|
int | nvme_register_ocssd20 (FemuCtrl *n) |
|