it reduces number of args passed in handlers by 1 and a number of used proxy wrappers saving ~20LOC. Also it allows to make cpu/mem hotplug code more universal as it would allow ARM to reuse it without rewrite by providing its own send_event callback to trigger events usiong GPIO instead of GPE as fixed hadrware ACPI model doen't have GPE at all. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
		
			
				
	
	
		
			34 lines
		
	
	
		
			946 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			946 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * QEMU ACPI hotplug utilities
 | 
						|
 *
 | 
						|
 * Copyright (C) 2013 Red Hat Inc
 | 
						|
 *
 | 
						|
 * Authors:
 | 
						|
 *   Igor Mammedov <imammedo@redhat.com>
 | 
						|
 *
 | 
						|
 * 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 ACPI_HOTPLUG_H
 | 
						|
#define ACPI_HOTPLUG_H
 | 
						|
 | 
						|
#include "hw/acpi/acpi.h"
 | 
						|
#include "hw/acpi/pc-hotplug.h"
 | 
						|
#include "hw/acpi/aml-build.h"
 | 
						|
#include "hw/hotplug.h"
 | 
						|
 | 
						|
typedef struct AcpiCpuHotplug {
 | 
						|
    MemoryRegion io;
 | 
						|
    uint8_t sts[ACPI_GPE_PROC_LEN];
 | 
						|
} AcpiCpuHotplug;
 | 
						|
 | 
						|
void legacy_acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
 | 
						|
                             AcpiCpuHotplug *g, DeviceState *dev, Error **errp);
 | 
						|
 | 
						|
void legacy_acpi_cpu_hotplug_init(MemoryRegion *parent, Object *owner,
 | 
						|
                                  AcpiCpuHotplug *gpe_cpu, uint16_t base);
 | 
						|
 | 
						|
void build_legacy_cpu_hotplug_aml(Aml *ctx, MachineState *machine,
 | 
						|
                                  uint16_t io_base);
 | 
						|
#endif
 |