xref: /qemu/include/hw/vmstate-if.h (revision 8110fa1d)
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 
16db1015e9SEduardo Habkost typedef struct VMStateIfClass VMStateIfClass;
17*8110fa1dSEduardo Habkost DECLARE_CLASS_CHECKERS(VMStateIfClass, VMSTATE_IF,
18*8110fa1dSEduardo Habkost                        TYPE_VMSTATE_IF)
19107b5969SMarc-André Lureau #define VMSTATE_IF(obj)                             \
20107b5969SMarc-André Lureau     INTERFACE_CHECK(VMStateIf, (obj), TYPE_VMSTATE_IF)
21107b5969SMarc-André Lureau 
22107b5969SMarc-André Lureau typedef struct VMStateIf VMStateIf;
23107b5969SMarc-André Lureau 
24db1015e9SEduardo Habkost struct VMStateIfClass {
25107b5969SMarc-André Lureau     InterfaceClass parent_class;
26107b5969SMarc-André Lureau 
27107b5969SMarc-André Lureau     char * (*get_id)(VMStateIf *obj);
28db1015e9SEduardo Habkost };
29107b5969SMarc-André Lureau 
vmstate_if_get_id(VMStateIf * vmif)30107b5969SMarc-André Lureau static inline char *vmstate_if_get_id(VMStateIf *vmif)
31107b5969SMarc-André Lureau {
32107b5969SMarc-André Lureau     if (!vmif) {
33107b5969SMarc-André Lureau         return NULL;
34107b5969SMarc-André Lureau     }
35107b5969SMarc-André Lureau 
36107b5969SMarc-André Lureau     return VMSTATE_IF_GET_CLASS(vmif)->get_id(vmif);
37107b5969SMarc-André Lureau }
38107b5969SMarc-André Lureau 
39107b5969SMarc-André Lureau #endif /* VMSTATE_IF_H */
40