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