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é Lureaustatic 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