|  | /* | 
|  | * VMState interface | 
|  | * | 
|  | * Copyright (c) 2009-2019 Red Hat Inc | 
|  | * This work is licensed under the terms of the GNU GPL, version 2 or later. | 
|  | * See the COPYING file in the top-level directory. | 
|  | */ | 
|  |  | 
|  | #ifndef VMSTATE_IF_H | 
|  | #define VMSTATE_IF_H | 
|  |  | 
|  | #include "qom/object.h" | 
|  |  | 
|  | #define TYPE_VMSTATE_IF "vmstate-if" | 
|  |  | 
|  | typedef struct VMStateIfClass VMStateIfClass; | 
|  | DECLARE_CLASS_CHECKERS(VMStateIfClass, VMSTATE_IF, | 
|  | TYPE_VMSTATE_IF) | 
|  | #define VMSTATE_IF(obj)                             \ | 
|  | INTERFACE_CHECK(VMStateIf, (obj), TYPE_VMSTATE_IF) | 
|  |  | 
|  | typedef struct VMStateIf VMStateIf; | 
|  |  | 
|  | struct VMStateIfClass { | 
|  | InterfaceClass parent_class; | 
|  |  | 
|  | char * (*get_id)(VMStateIf *obj); | 
|  | }; | 
|  |  | 
|  | static inline char *vmstate_if_get_id(VMStateIf *vmif) | 
|  | { | 
|  | if (!vmif) { | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | return VMSTATE_IF_GET_CLASS(vmif)->get_id(vmif); | 
|  | } | 
|  |  | 
|  | #endif /* VMSTATE_IF_H */ |