qemu
1#include "qemu/osdep.h"2#include "qemu/nvdimm-utils.h"3#include "hw/mem/nvdimm.h"4
5static int nvdimm_device_list(Object *obj, void *opaque)6{
7GSList **list = opaque;8
9if (object_dynamic_cast(obj, TYPE_NVDIMM)) {10*list = g_slist_append(*list, DEVICE(obj));11}12
13object_child_foreach(obj, nvdimm_device_list, opaque);14return 0;15}
16
17/*
18* inquire NVDIMM devices and link them into the list which is
19* returned to the caller.
20*
21* Note: it is the caller's responsibility to free the list to avoid
22* memory leak.
23*/
24GSList *nvdimm_get_device_list(void)25{
26GSList *list = NULL;27
28object_child_foreach(qdev_get_machine(), nvdimm_device_list, &list);29return list;30}
31