xref: /qemu/include/hw/vmstate-if.h (revision db1015e92e04835c9eb50c29625fe566d1202dbd)
1107b5969SMarc-André Lureau /*
2107b5969SMarc-André Lureau  * VMState interface
3107b5969SMarc-André Lureau  *
4107b5969SMarc-André Lureau  * Copyright (c) 2009-2019 Red Hat Inc
5107b5969SMarc-André Lureau  * This work is licensed under the terms of the GNU GPL, version 2 or later.
6107b5969SMarc-André Lureau  * See the COPYING file in the top-level directory.
7107b5969SMarc-André Lureau  */
8107b5969SMarc-André Lureau 
9107b5969SMarc-André Lureau #ifndef VMSTATE_IF_H
10107b5969SMarc-André Lureau #define VMSTATE_IF_H
11107b5969SMarc-André Lureau 
12107b5969SMarc-André Lureau #include "qom/object.h"
13107b5969SMarc-André Lureau 
14107b5969SMarc-André Lureau #define TYPE_VMSTATE_IF "vmstate-if"
15107b5969SMarc-André Lureau 
16*db1015e9SEduardo Habkost typedef struct VMStateIfClass VMStateIfClass;
17107b5969SMarc-André Lureau #define VMSTATE_IF_CLASS(klass)                                     \
18107b5969SMarc-André Lureau     OBJECT_CLASS_CHECK(VMStateIfClass, (klass), TYPE_VMSTATE_IF)
19107b5969SMarc-André Lureau #define VMSTATE_IF_GET_CLASS(obj)                           \
20107b5969SMarc-André Lureau     OBJECT_GET_CLASS(VMStateIfClass, (obj), TYPE_VMSTATE_IF)
21107b5969SMarc-André Lureau #define VMSTATE_IF(obj)                             \
22107b5969SMarc-André Lureau     INTERFACE_CHECK(VMStateIf, (obj), TYPE_VMSTATE_IF)
23107b5969SMarc-André Lureau 
24107b5969SMarc-André Lureau typedef struct VMStateIf VMStateIf;
25107b5969SMarc-André Lureau 
26*db1015e9SEduardo Habkost struct VMStateIfClass {
27107b5969SMarc-André Lureau     InterfaceClass parent_class;
28107b5969SMarc-André Lureau 
29107b5969SMarc-André Lureau     char * (*get_id)(VMStateIf *obj);
30*db1015e9SEduardo Habkost };
31107b5969SMarc-André Lureau 
32107b5969SMarc-André Lureau static inline char *vmstate_if_get_id(VMStateIf *vmif)
33107b5969SMarc-André Lureau {
34107b5969SMarc-André Lureau     if (!vmif) {
35107b5969SMarc-André Lureau         return NULL;
36107b5969SMarc-André Lureau     }
37107b5969SMarc-André Lureau 
38107b5969SMarc-André Lureau     return VMSTATE_IF_GET_CLASS(vmif)->get_id(vmif);
39107b5969SMarc-André Lureau }
40107b5969SMarc-André Lureau 
41107b5969SMarc-André Lureau #endif /* VMSTATE_IF_H */
42