KVM: Split QEMUMachine typedef into separate header

Older gcc versions (such as the one in SLES11) get confused when you declare
a typedef on the same struct twice.

To work around that limitation, let's extract the QEMUMachine typedef into a
separate header file that is guarded by preprocessor duplicate include checks.

This fixes the following type of compile errors for me:

  In file included from vl.c:125:
  include/hw/xen/xen.h:39: error: redefinition of typedef "QEMUMachine"
  include/sysemu/kvm.h:155: error: previous declaration of "QEMUMachine" was here

Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
Alexander Graf 2014-01-27 18:22:10 +01:00
parent 88ccd23a0c
commit 9c06a1f79f
6 changed files with 21 additions and 2 deletions

View File

@ -4,10 +4,9 @@
#define HW_BOARDS_H
#include "sysemu/blockdev.h"
#include "sysemu/qemumachine.h"
#include "hw/qdev.h"
typedef struct QEMUMachine QEMUMachine;
typedef struct QEMUMachineInitArgs {
const QEMUMachine *machine;
ram_addr_t ram_size;

View File

@ -10,6 +10,7 @@
#include "hw/irq.h"
#include "qemu-common.h"
#include "sysemu/qemumachine.h"
/* xen-machine.c */
enum xen_mode {

View File

@ -18,6 +18,7 @@
#include "config-host.h"
#include "qemu/queue.h"
#include "qom/cpu.h"
#include "sysemu/qemumachine.h"
#ifdef CONFIG_KVM
#include <linux/kvm.h>

View File

@ -0,0 +1,16 @@
/*
* QEMU Machine typedef
*
* Copyright Alexander Graf <agraf@suse.de>
*
* 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 QEMUMACHINE_H
#define QEMUMACHINE_H
typedef struct QEMUMachine QEMUMachine;
#endif /* !QEMUMACHINE_H */

View File

@ -16,6 +16,7 @@
#include "qemu-common.h"
#include "qapi/error.h"
#include "sysemu/qemumachine.h"
extern bool qtest_allowed;

View File

@ -14,6 +14,7 @@
#include "hw/hw.h"
#include "cpu.h"
#include "sysemu/kvm.h"
#include "sysemu/qemumachine.h"
#ifndef CONFIG_USER_ONLY
#include "hw/pci/msi.h"