xref: /openbmc/qemu/util/nvdimm-utils.c (revision 2f95279a)
1 #include "qemu/osdep.h"
2 #include "qemu/nvdimm-utils.h"
3 #include "hw/mem/nvdimm.h"
4 
5 static int nvdimm_device_list(Object *obj, void *opaque)
6 {
7     GSList **list = opaque;
8 
9     if (object_dynamic_cast(obj, TYPE_NVDIMM)) {
10         *list = g_slist_append(*list, DEVICE(obj));
11     }
12 
13     object_child_foreach(obj, nvdimm_device_list, opaque);
14     return 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  */
24 GSList *nvdimm_get_device_list(void)
25 {
26     GSList *list = NULL;
27 
28     object_child_foreach(qdev_get_machine(), nvdimm_device_list, &list);
29     return list;
30 }
31