FEMU  原版 master 7e238cc
FEMU: Accurate, Scalable and Extensible NVMe SSD Emulator (FAST'18)
zns.h 文件参考
#include "../nvme.h"
zns.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

结构体

struct  NvmeZonedResult
 
struct  NvmeIdCtrlZoned
 
struct  NvmeZoneReportHeader
 
struct  NvmeZoneDescr
 
struct  NvmeLBAFE
 
struct  NvmeIdNsZoned
 
struct  NvmeZone
 
struct  NvmeNamespaceParams
 

宏定义

#define NVME_SET_CSI(vec, csi)   (vec |= (uint8_t)(1 << (csi)))
 

类型定义

typedef struct QEMU_PACKED NvmeZonedResult NvmeZonedResult
 
typedef struct NvmeIdCtrlZoned NvmeIdCtrlZoned
 
typedef struct QEMU_PACKED NvmeZoneReportHeader NvmeZoneReportHeader
 
typedef struct QEMU_PACKED NvmeZoneDescr NvmeZoneDescr
 
typedef enum NvmeZoneState NvmeZoneState
 
typedef struct QEMU_PACKED NvmeLBAFE NvmeLBAFE
 
typedef struct QEMU_PACKED NvmeIdNsZoned NvmeIdNsZoned
 
typedef struct NvmeZone NvmeZone
 
typedef struct NvmeNamespaceParams NvmeNamespaceParams
 

枚举

enum  NvmeZoneAttr { NVME_ZA_FINISHED_BY_CTLR = 1 << 0, NVME_ZA_FINISH_RECOMMENDED = 1 << 1, NVME_ZA_RESET_RECOMMENDED = 1 << 2, NVME_ZA_ZD_EXT_VALID = 1 << 7 }
 
enum  NvmeZoneReceiveAction { NVME_ZONE_REPORT = 0, NVME_ZONE_REPORT_EXTENDED = 1 }
 
enum  NvmeZoneReportType {
  NVME_ZONE_REPORT_ALL = 0, NVME_ZONE_REPORT_EMPTY = 1, NVME_ZONE_REPORT_IMPLICITLY_OPEN = 2, NVME_ZONE_REPORT_EXPLICITLY_OPEN = 3,
  NVME_ZONE_REPORT_CLOSED = 4, NVME_ZONE_REPORT_FULL = 5, NVME_ZONE_REPORT_READ_ONLY = 6, NVME_ZONE_REPORT_OFFLINE = 7
}
 
enum  NvmeZoneType { NVME_ZONE_TYPE_RESERVED = 0x00, NVME_ZONE_TYPE_SEQ_WRITE = 0x02 }
 
enum  NvmeZoneSendAction {
  NVME_ZONE_ACTION_RSD = 0x00, NVME_ZONE_ACTION_CLOSE = 0x01, NVME_ZONE_ACTION_FINISH = 0x02, NVME_ZONE_ACTION_OPEN = 0x03,
  NVME_ZONE_ACTION_RESET = 0x04, NVME_ZONE_ACTION_OFFLINE = 0x05, NVME_ZONE_ACTION_SET_ZD_EXT = 0x10
}
 
enum  NvmeZoneState {
  NVME_ZONE_STATE_RESERVED = 0x00, NVME_ZONE_STATE_EMPTY = 0x01, NVME_ZONE_STATE_IMPLICITLY_OPEN = 0x02, NVME_ZONE_STATE_EXPLICITLY_OPEN = 0x03,
  NVME_ZONE_STATE_CLOSED = 0x04, NVME_ZONE_STATE_READ_ONLY = 0x0D, NVME_ZONE_STATE_FULL = 0x0E, NVME_ZONE_STATE_OFFLINE = 0x0F
}
 

函数

static uint32_t zns_nsid (NvmeNamespace *ns)
 
static NvmeLBAFzns_ns_lbaf (NvmeNamespace *ns)
 
static uint8_t zns_ns_lbads (NvmeNamespace *ns)
 
static uint64_t zns_ns_nlbas (NvmeNamespace *ns)
 
static size_t zns_l2b (NvmeNamespace *ns, uint64_t lba)
 
static NvmeZoneState zns_get_zone_state (NvmeZone *zone)
 
static void zns_set_zone_state (NvmeZone *zone, NvmeZoneState state)
 
static uint64_t zns_zone_rd_boundary (NvmeNamespace *ns, NvmeZone *zone)
 
static uint64_t zns_zone_wr_boundary (NvmeZone *zone)
 
static bool zns_wp_is_valid (NvmeZone *zone)
 
static uint8_t * zns_get_zd_extension (NvmeNamespace *ns, uint32_t zone_idx)
 
static void zns_aor_inc_open (NvmeNamespace *ns)
 
static void zns_aor_dec_open (NvmeNamespace *ns)
 
static void zns_aor_inc_active (NvmeNamespace *ns)
 
static void zns_aor_dec_active (NvmeNamespace *ns)
 
void zns_ns_shutdown (NvmeNamespace *ns)
 
void zns_ns_cleanup (NvmeNamespace *ns)
 

宏定义说明

◆ NVME_SET_CSI

#define NVME_SET_CSI (   vec,
  csi 
)    (vec |= (uint8_t)(1 << (csi)))

类型定义说明

◆ NvmeIdCtrlZoned

◆ NvmeIdNsZoned

typedef struct QEMU_PACKED NvmeIdNsZoned NvmeIdNsZoned

◆ NvmeLBAFE

typedef struct QEMU_PACKED NvmeLBAFE NvmeLBAFE

◆ NvmeNamespaceParams

◆ NvmeZone

typedef struct NvmeZone NvmeZone

◆ NvmeZoneDescr

typedef struct QEMU_PACKED NvmeZoneDescr NvmeZoneDescr

◆ NvmeZonedResult

typedef struct QEMU_PACKED NvmeZonedResult NvmeZonedResult

◆ NvmeZoneReportHeader

typedef struct QEMU_PACKED NvmeZoneReportHeader NvmeZoneReportHeader

◆ NvmeZoneState

枚举类型说明

◆ NvmeZoneAttr

枚举值
NVME_ZA_FINISHED_BY_CTLR 
NVME_ZA_FINISH_RECOMMENDED 
NVME_ZA_RESET_RECOMMENDED 
NVME_ZA_ZD_EXT_VALID 

◆ NvmeZoneReceiveAction

枚举值
NVME_ZONE_REPORT 
NVME_ZONE_REPORT_EXTENDED 

◆ NvmeZoneReportType

枚举值
NVME_ZONE_REPORT_ALL 
NVME_ZONE_REPORT_EMPTY 
NVME_ZONE_REPORT_IMPLICITLY_OPEN 
NVME_ZONE_REPORT_EXPLICITLY_OPEN 
NVME_ZONE_REPORT_CLOSED 
NVME_ZONE_REPORT_FULL 
NVME_ZONE_REPORT_READ_ONLY 
NVME_ZONE_REPORT_OFFLINE 

◆ NvmeZoneSendAction

枚举值
NVME_ZONE_ACTION_RSD 
NVME_ZONE_ACTION_CLOSE 
NVME_ZONE_ACTION_FINISH 
NVME_ZONE_ACTION_OPEN 
NVME_ZONE_ACTION_RESET 
NVME_ZONE_ACTION_OFFLINE 
NVME_ZONE_ACTION_SET_ZD_EXT 

◆ NvmeZoneState

枚举值
NVME_ZONE_STATE_RESERVED 
NVME_ZONE_STATE_EMPTY 
NVME_ZONE_STATE_IMPLICITLY_OPEN 
NVME_ZONE_STATE_EXPLICITLY_OPEN 
NVME_ZONE_STATE_CLOSED 
NVME_ZONE_STATE_READ_ONLY 
NVME_ZONE_STATE_FULL 
NVME_ZONE_STATE_OFFLINE 

◆ NvmeZoneType

枚举值
NVME_ZONE_TYPE_RESERVED 
NVME_ZONE_TYPE_SEQ_WRITE 

函数说明

◆ zns_aor_dec_active()

static void zns_aor_dec_active ( NvmeNamespace ns)
inlinestatic
这是这个函数的调用关系图:

◆ zns_aor_dec_open()

static void zns_aor_dec_open ( NvmeNamespace ns)
inlinestatic
这是这个函数的调用关系图:

◆ zns_aor_inc_active()

static void zns_aor_inc_active ( NvmeNamespace ns)
inlinestatic
这是这个函数的调用关系图:

◆ zns_aor_inc_open()

static void zns_aor_inc_open ( NvmeNamespace ns)
inlinestatic
这是这个函数的调用关系图:

◆ zns_get_zd_extension()

static uint8_t* zns_get_zd_extension ( NvmeNamespace ns,
uint32_t  zone_idx 
)
inlinestatic
这是这个函数的调用关系图:

◆ zns_get_zone_state()

static NvmeZoneState zns_get_zone_state ( NvmeZone zone)
inlinestatic
这是这个函数的调用关系图:

◆ zns_l2b()

static size_t zns_l2b ( NvmeNamespace ns,
uint64_t  lba 
)
inlinestatic
函数调用图:
这是这个函数的调用关系图:

◆ zns_ns_cleanup()

void zns_ns_cleanup ( NvmeNamespace ns)

◆ zns_ns_lbads()

static uint8_t zns_ns_lbads ( NvmeNamespace ns)
inlinestatic
函数调用图:
这是这个函数的调用关系图:

◆ zns_ns_lbaf()

static NvmeLBAF* zns_ns_lbaf ( NvmeNamespace ns)
inlinestatic
这是这个函数的调用关系图:

◆ zns_ns_nlbas()

static uint64_t zns_ns_nlbas ( NvmeNamespace ns)
inlinestatic
函数调用图:
这是这个函数的调用关系图:

◆ zns_ns_shutdown()

void zns_ns_shutdown ( NvmeNamespace ns)
函数调用图:

◆ zns_nsid()

static uint32_t zns_nsid ( NvmeNamespace ns)
inlinestatic

◆ zns_set_zone_state()

static void zns_set_zone_state ( NvmeZone zone,
NvmeZoneState  state 
)
inlinestatic
这是这个函数的调用关系图:

◆ zns_wp_is_valid()

static bool zns_wp_is_valid ( NvmeZone zone)
inlinestatic
函数调用图:
这是这个函数的调用关系图:

◆ zns_zone_rd_boundary()

static uint64_t zns_zone_rd_boundary ( NvmeNamespace ns,
NvmeZone zone 
)
inlinestatic
这是这个函数的调用关系图:

◆ zns_zone_wr_boundary()

static uint64_t zns_zone_wr_boundary ( NvmeZone zone)
inlinestatic
这是这个函数的调用关系图: