qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 3/5] pc-dimm: add pc_dimm_build_list()


From: Vladimir Sementsov-Ogievskiy
Subject: [Qemu-devel] [PATCH 3/5] pc-dimm: add pc_dimm_build_list()
Date: Thu, 4 Feb 2016 14:37:21 +0300

Like pc_dimm_build_list_sorted but not sorted - for cases where sorting
is not necessary.

Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>

CC: Stefan Hajnoczi <address@hidden>
CC: Xiao Guangrong <address@hidden>
CC: "Michael S. Tsirkin" <address@hidden>
CC: Igor Mammedov <address@hidden>
CC: Eric Blake <address@hidden>
CC: Markus Armbruster <address@hidden>
---
 hw/mem/pc-dimm.c         | 15 +++++++++++++++
 include/hw/mem/pc-dimm.h |  3 +++
 2 files changed, 18 insertions(+)

diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c
index 4a681bc..0f102c0 100644
--- a/hw/mem/pc-dimm.c
+++ b/hw/mem/pc-dimm.c
@@ -266,6 +266,21 @@ static int pc_dimm_build_list_sorted(Object *obj, void 
*opaque)
     return 0;
 }
 
+int pc_dimm_build_list(Object *obj, void *opaque)
+{
+    GSList **list = opaque;
+
+    if (object_dynamic_cast(obj, TYPE_PC_DIMM)) {
+        DeviceState *dev = DEVICE(obj);
+        if (dev->realized) { /* only realized DIMMs matter */
+            *list = g_slist_prepend(*list, dev);
+        }
+    }
+
+    object_child_foreach(obj, pc_dimm_build_list, opaque);
+    return 0;
+}
+
 uint64_t pc_dimm_get_free_addr(uint64_t address_space_start,
                                uint64_t address_space_size,
                                uint64_t *hint, uint64_t align, uint64_t size,
diff --git a/include/hw/mem/pc-dimm.h b/include/hw/mem/pc-dimm.h
index d83bf30..ab136a3 100644
--- a/include/hw/mem/pc-dimm.h
+++ b/include/hw/mem/pc-dimm.h
@@ -94,4 +94,7 @@ void pc_dimm_memory_plug(DeviceState *dev, MemoryHotplugState 
*hpms,
                          MemoryRegion *mr, uint64_t align, Error **errp);
 void pc_dimm_memory_unplug(DeviceState *dev, MemoryHotplugState *hpms,
                            MemoryRegion *mr);
+
+int pc_dimm_build_list(Object *obj, void *opaque);
+
 #endif
-- 
1.8.3.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]