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