aboutsummaryrefslogtreecommitdiff
path: root/hw/block/nvme-subsys.h
diff options
context:
space:
mode:
authorMinwoo Im <minwoo.im.dev@gmail.com>2021-02-06 00:30:10 +0900
committerKlaus Jensen <k.jensen@samsung.com>2021-03-09 11:00:57 +0100
commit037953b5b299daec4d92253858de32c15dd4e9f4 (patch)
tree2107afde74b3a959ed2c37fe0bd24a9f756fbc83 /hw/block/nvme-subsys.h
parent81d07f4ff51a2b5249f940975acfb9b0d787d593 (diff)
hw/block/nvme: support namespace detach
Given that now we have nvme-subsys device supported, we can manage namespace allocated, but not attached: detached. This patch introduced a parameter for nvme-ns device named 'detached'. This parameter indicates whether the given namespace device is detached from a entire NVMe subsystem('subsys' given case, shared namespace) or a controller('bus' given case, private namespace). - Allocated namespace 1) Shared ns in the subsystem 'subsys0': -device nvme-ns,id=ns1,drive=blknvme0,nsid=1,subsys=subsys0,detached=true 2) Private ns for the controller 'nvme0' of the subsystem 'subsys0': -device nvme-subsys,id=subsys0 -device nvme,serial=foo,id=nvme0,subsys=subsys0 -device nvme-ns,id=ns1,drive=blknvme0,nsid=1,bus=nvme0,detached=true 3) (Invalid case) Controller 'nvme0' has no subsystem to manage ns: -device nvme,serial=foo,id=nvme0 -device nvme-ns,id=ns1,drive=blknvme0,nsid=1,bus=nvme0,detached=true Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com> Reviewed-by: Keith Busch <kbusch@kernel.org> Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Diffstat (limited to 'hw/block/nvme-subsys.h')
-rw-r--r--hw/block/nvme-subsys.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/block/nvme-subsys.h b/hw/block/nvme-subsys.h
index 7a54a85120..507efcd23f 100644
--- a/hw/block/nvme-subsys.h
+++ b/hw/block/nvme-subsys.h
@@ -23,6 +23,7 @@ typedef struct NvmeSubsystem {
uint8_t subnqn[256];
NvmeCtrl *ctrls[NVME_SUBSYS_MAX_CTRLS];
+ /* Allocated namespaces for this subsystem */
NvmeNamespace *namespaces[NVME_SUBSYS_MAX_NAMESPACES];
struct {