| #include "qemu/osdep.h" | |
| #include "qemu/nvdimm-utils.h" | |
| #include "hw/mem/nvdimm.h" | |
| static int nvdimm_device_list(Object *obj, void *opaque) | |
| { | |
| GSList **list = opaque; | |
| if (object_dynamic_cast(obj, TYPE_NVDIMM)) { | |
| *list = g_slist_append(*list, DEVICE(obj)); | |
| } | |
| object_child_foreach(obj, nvdimm_device_list, opaque); | |
| return 0; | |
| } | |
| /* | |
| * inquire NVDIMM devices and link them into the list which is | |
| * returned to the caller. | |
| * | |
| * Note: it is the caller's responsibility to free the list to avoid | |
| * memory leak. | |
| */ | |
| GSList *nvdimm_get_device_list(void) | |
| { | |
| GSList *list = NULL; | |
| object_child_foreach(qdev_get_machine(), nvdimm_device_list, &list); | |
| return list; | |
| } |