hw: cannot include hw/hw.h from user emulation
All qdev definitions are available from other headers, user-mode emulation does not need hw/hw.h. By considering system emulation only, it is simpler to disentangle hw/hw.h from NEED_CPU_H. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									1e00b8d57a
								
							
						
					
					
						commit
						741da0d38b
					
				
							
								
								
									
										21
									
								
								exec.c
								
								
								
								
							
							
						
						
									
										21
									
								
								exec.c
								
								
								
								
							| 
						 | 
				
			
			@ -25,23 +25,23 @@
 | 
			
		|||
#include "qemu/cutils.h"
 | 
			
		||||
#include "cpu.h"
 | 
			
		||||
#include "tcg.h"
 | 
			
		||||
#include "hw/hw.h"
 | 
			
		||||
#include "hw/qdev-core.h"
 | 
			
		||||
#if !defined(CONFIG_USER_ONLY)
 | 
			
		||||
#include "hw/boards.h"
 | 
			
		||||
#endif
 | 
			
		||||
#include "hw/qdev.h"
 | 
			
		||||
#include "sysemu/kvm.h"
 | 
			
		||||
#include "sysemu/sysemu.h"
 | 
			
		||||
#include "hw/xen/xen.h"
 | 
			
		||||
#include "qemu/timer.h"
 | 
			
		||||
#include "qemu/config-file.h"
 | 
			
		||||
#include "qemu/error-report.h"
 | 
			
		||||
#include "exec/memory.h"
 | 
			
		||||
#include "sysemu/dma.h"
 | 
			
		||||
#include "exec/address-spaces.h"
 | 
			
		||||
#if defined(CONFIG_USER_ONLY)
 | 
			
		||||
#include <qemu.h>
 | 
			
		||||
#else /* !CONFIG_USER_ONLY */
 | 
			
		||||
#include "hw/hw.h"
 | 
			
		||||
#include "exec/memory.h"
 | 
			
		||||
#include "sysemu/dma.h"
 | 
			
		||||
#include "exec/address-spaces.h"
 | 
			
		||||
#include "sysemu/xen-mapcache.h"
 | 
			
		||||
#include "trace.h"
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -641,7 +641,6 @@ void cpu_exec_exit(CPUState *cpu)
 | 
			
		|||
void cpu_exec_init(CPUState *cpu, Error **errp)
 | 
			
		||||
{
 | 
			
		||||
    CPUClass *cc = CPU_GET_CLASS(cpu);
 | 
			
		||||
    int cpu_index;
 | 
			
		||||
    Error *local_err = NULL;
 | 
			
		||||
 | 
			
		||||
    cpu->as = NULL;
 | 
			
		||||
| 
						 | 
				
			
			@ -668,7 +667,7 @@ void cpu_exec_init(CPUState *cpu, Error **errp)
 | 
			
		|||
#if defined(CONFIG_USER_ONLY)
 | 
			
		||||
    cpu_list_lock();
 | 
			
		||||
#endif
 | 
			
		||||
    cpu_index = cpu->cpu_index = cpu_get_free_index(&local_err);
 | 
			
		||||
    cpu->cpu_index = cpu_get_free_index(&local_err);
 | 
			
		||||
    if (local_err) {
 | 
			
		||||
        error_propagate(errp, local_err);
 | 
			
		||||
#if defined(CONFIG_USER_ONLY)
 | 
			
		||||
| 
						 | 
				
			
			@ -678,14 +677,16 @@ void cpu_exec_init(CPUState *cpu, Error **errp)
 | 
			
		|||
    }
 | 
			
		||||
    QTAILQ_INSERT_TAIL(&cpus, cpu, node);
 | 
			
		||||
#if defined(CONFIG_USER_ONLY)
 | 
			
		||||
    (void) cc;
 | 
			
		||||
    cpu_list_unlock();
 | 
			
		||||
#endif
 | 
			
		||||
#else
 | 
			
		||||
    if (qdev_get_vmsd(DEVICE(cpu)) == NULL) {
 | 
			
		||||
        vmstate_register(NULL, cpu_index, &vmstate_cpu_common, cpu);
 | 
			
		||||
        vmstate_register(NULL, cpu->cpu_index, &vmstate_cpu_common, cpu);
 | 
			
		||||
    }
 | 
			
		||||
    if (cc->vmsd != NULL) {
 | 
			
		||||
        vmstate_register(NULL, cpu_index, cc->vmsd, cpu);
 | 
			
		||||
        vmstate_register(NULL, cpu->cpu_index, cc->vmsd, cpu);
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_USER_ONLY)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,10 +3,11 @@
 | 
			
		|||
#define QEMU_HW_H
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if !defined(CONFIG_USER_ONLY) && !defined(NEED_CPU_H)
 | 
			
		||||
#include "exec/cpu-common.h"
 | 
			
		||||
#ifdef CONFIG_USER_ONLY
 | 
			
		||||
#error Cannot include hw/hw.h from user emulation
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "exec/cpu-common.h"
 | 
			
		||||
#include "exec/ioport.h"
 | 
			
		||||
#include "hw/irq.h"
 | 
			
		||||
#include "block/aio.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
#define __OPENPIC_H__
 | 
			
		||||
 | 
			
		||||
#include "qemu-common.h"
 | 
			
		||||
#include "hw/qdev.h"
 | 
			
		||||
#include "hw/qdev-core.h"
 | 
			
		||||
#include "qom/cpu.h"
 | 
			
		||||
 | 
			
		||||
#define TYPE_OPENPIC "openpic"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,6 @@
 | 
			
		|||
 | 
			
		||||
#include "qemu/osdep.h"
 | 
			
		||||
#include "qemu-common.h"
 | 
			
		||||
#include "hw/hw.h"
 | 
			
		||||
#include "cpu.h"
 | 
			
		||||
#include "sysemu/kvm.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,6 @@
 | 
			
		|||
#include "qapi/visitor.h"
 | 
			
		||||
#include "sysemu/arch_init.h"
 | 
			
		||||
 | 
			
		||||
#include "hw/hw.h"
 | 
			
		||||
#if defined(CONFIG_KVM)
 | 
			
		||||
#include <linux/kvm_para.h>
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -43,6 +42,7 @@
 | 
			
		|||
#include "hw/qdev-properties.h"
 | 
			
		||||
#ifndef CONFIG_USER_ONLY
 | 
			
		||||
#include "exec/address-spaces.h"
 | 
			
		||||
#include "hw/hw.h"
 | 
			
		||||
#include "hw/xen/xen.h"
 | 
			
		||||
#include "hw/i386/apic_internal.h"
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,10 +30,11 @@
 | 
			
		|||
#include "qemu/cutils.h"
 | 
			
		||||
#include "qemu/timer.h"
 | 
			
		||||
#include "qemu/error-report.h"
 | 
			
		||||
#include "hw/hw.h"
 | 
			
		||||
#include "trace.h"
 | 
			
		||||
#include "qapi/visitor.h"
 | 
			
		||||
#include "migration/vmstate.h"
 | 
			
		||||
#ifndef CONFIG_USER_ONLY
 | 
			
		||||
#include "hw/hw.h"
 | 
			
		||||
#include "sysemu/arch_init.h"
 | 
			
		||||
#include "sysemu/sysemu.h"
 | 
			
		||||
#include "hw/s390x/sclp.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,7 +22,10 @@
 | 
			
		|||
#include "cpu.h"
 | 
			
		||||
#include "exec/helper-proto.h"
 | 
			
		||||
#include "exec/cpu_ldst.h"
 | 
			
		||||
 | 
			
		||||
#if !defined(CONFIG_USER_ONLY)
 | 
			
		||||
#include "hw/s390x/storage-keys.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*****************************************************************************/
 | 
			
		||||
/* Softmmu support */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,9 +30,9 @@
 | 
			
		|||
#include <linux/kvm.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include "exec/cpu_ldst.h"
 | 
			
		||||
#include "hw/watchdog/wdt_diag288.h"
 | 
			
		||||
 | 
			
		||||
#if !defined(CONFIG_USER_ONLY)
 | 
			
		||||
#include "hw/watchdog/wdt_diag288.h"
 | 
			
		||||
#include "sysemu/cpus.h"
 | 
			
		||||
#include "sysemu/sysemu.h"
 | 
			
		||||
#include "hw/s390x/ebcdic.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue