1*107b5969SMarc-André Lureau /* 2*107b5969SMarc-André Lureau * VMState interface 3*107b5969SMarc-André Lureau * 4*107b5969SMarc-André Lureau * Copyright (c) 2009-2019 Red Hat Inc 5*107b5969SMarc-André Lureau * This work is licensed under the terms of the GNU GPL, version 2 or later. 6*107b5969SMarc-André Lureau * See the COPYING file in the top-level directory. 7*107b5969SMarc-André Lureau */ 8*107b5969SMarc-André Lureau 9*107b5969SMarc-André Lureau #ifndef VMSTATE_IF_H 10*107b5969SMarc-André Lureau #define VMSTATE_IF_H 11*107b5969SMarc-André Lureau 12*107b5969SMarc-André Lureau #include "qom/object.h" 13*107b5969SMarc-André Lureau 14*107b5969SMarc-André Lureau #define TYPE_VMSTATE_IF "vmstate-if" 15*107b5969SMarc-André Lureau 16*107b5969SMarc-André Lureau #define VMSTATE_IF_CLASS(klass) \ 17*107b5969SMarc-André Lureau OBJECT_CLASS_CHECK(VMStateIfClass, (klass), TYPE_VMSTATE_IF) 18*107b5969SMarc-André Lureau #define VMSTATE_IF_GET_CLASS(obj) \ 19*107b5969SMarc-André Lureau OBJECT_GET_CLASS(VMStateIfClass, (obj), TYPE_VMSTATE_IF) 20*107b5969SMarc-André Lureau #define VMSTATE_IF(obj) \ 21*107b5969SMarc-André Lureau INTERFACE_CHECK(VMStateIf, (obj), TYPE_VMSTATE_IF) 22*107b5969SMarc-André Lureau 23*107b5969SMarc-André Lureau typedef struct VMStateIf VMStateIf; 24*107b5969SMarc-André Lureau 25*107b5969SMarc-André Lureau typedef struct VMStateIfClass { 26*107b5969SMarc-André Lureau InterfaceClass parent_class; 27*107b5969SMarc-André Lureau 28*107b5969SMarc-André Lureau char * (*get_id)(VMStateIf *obj); 29*107b5969SMarc-André Lureau } VMStateIfClass; 30*107b5969SMarc-André Lureau 31*107b5969SMarc-André Lureau static inline char *vmstate_if_get_id(VMStateIf *vmif) 32*107b5969SMarc-André Lureau { 33*107b5969SMarc-André Lureau if (!vmif) { 34*107b5969SMarc-André Lureau return NULL; 35*107b5969SMarc-André Lureau } 36*107b5969SMarc-André Lureau 37*107b5969SMarc-André Lureau return VMSTATE_IF_GET_CLASS(vmif)->get_id(vmif); 38*107b5969SMarc-André Lureau } 39*107b5969SMarc-André Lureau 40*107b5969SMarc-André Lureau #endif /* VMSTATE_IF_H */ 41