aboutsummaryrefslogtreecommitdiff
path: root/hw/nvme/nvme.h
diff options
context:
space:
mode:
Diffstat (limited to 'hw/nvme/nvme.h')
-rw-r--r--hw/nvme/nvme.h27
1 files changed, 21 insertions, 6 deletions
diff --git a/hw/nvme/nvme.h b/hw/nvme/nvme.h
index 5f2ae7b..bed8191 100644
--- a/hw/nvme/nvme.h
+++ b/hw/nvme/nvme.h
@@ -171,13 +171,27 @@ static const uint8_t nvme_fdp_evf_shifts[FDP_EVT_MAX] = {
[FDP_EVT_RUH_IMPLICIT_RU_CHANGE] = 33,
};
+#define NGUID_LEN 16
+
+typedef struct {
+ uint8_t data[NGUID_LEN];
+} NvmeNGUID;
+
+bool nvme_nguid_is_null(const NvmeNGUID *nguid);
+
+extern const PropertyInfo qdev_prop_nguid;
+
+#define DEFINE_PROP_NGUID_NODEFAULT(_name, _state, _field) \
+ DEFINE_PROP(_name, _state, _field, qdev_prop_nguid, NvmeNGUID)
+
typedef struct NvmeNamespaceParams {
- bool detached;
- bool shared;
- uint32_t nsid;
- QemuUUID uuid;
- uint64_t eui64;
- bool eui64_default;
+ bool detached;
+ bool shared;
+ uint32_t nsid;
+ QemuUUID uuid;
+ NvmeNGUID nguid;
+ uint64_t eui64;
+ bool eui64_default;
uint16_t ms;
uint8_t mset;
@@ -522,6 +536,7 @@ typedef struct NvmeParams {
uint16_t sriov_vi_flexible;
uint8_t sriov_max_vq_per_vf;
uint8_t sriov_max_vi_per_vf;
+ bool msix_exclusive_bar;
} NvmeParams;
typedef struct NvmeCtrl {