| #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; |
| } |