[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 49/61] pci hot add: pass opaque argument to callback
From: |
Isaku Yamahata |
Subject: |
[Qemu-devel] [PATCH 49/61] pci hot add: pass opaque argument to callback. |
Date: |
Wed, 30 Sep 2009 19:18:25 +0900 |
pass opaque argument to callback.
Signed-off-by: Isaku Yamahata <address@hidden>
---
hw/acpi.c | 8 ++++++--
hw/acpi_piix4.c | 6 +++---
sysemu.h | 4 ++--
3 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/hw/acpi.c b/hw/acpi.c
index 44056a1..4b1c5c8 100644
--- a/hw/acpi.c
+++ b/hw/acpi.c
@@ -22,15 +22,19 @@
#include "acpi.h"
static qemu_system_device_hot_add_t device_hot_add_callback;
-void qemu_system_device_hot_add_register(qemu_system_device_hot_add_t callback)
+static void *device_hot_add_arg;
+
+void qemu_system_device_hot_add_register(qemu_system_device_hot_add_t callback,
+void *opaque)
{
device_hot_add_callback = callback;
+ device_hot_add_arg = opaque;
}
void qemu_system_device_hot_add(int pcibus, int slot, int state)
{
if (device_hot_add_callback)
- device_hot_add_callback(pcibus, slot, state);
+ device_hot_add_callback(pcibus, slot, state, device_hot_add_arg);
}
struct acpi_table_header
diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
index 5f3ee9a..c11e1b9 100644
--- a/hw/acpi_piix4.c
+++ b/hw/acpi_piix4.c
@@ -526,7 +526,7 @@ static void pciej_write(void *opaque, uint32_t addr,
uint32_t val)
#endif
}
-static void piix4_device_hot_add(int bus, int slot, int state);
+static void piix4_device_hot_add(int bus, int slot, int state, void* opaque);
void piix4_acpi_system_hot_add_init(void)
{
@@ -539,7 +539,7 @@ void piix4_acpi_system_hot_add_init(void)
register_ioport_write(PCI_EJ_BASE, 4, 4, pciej_write, NULL);
register_ioport_read(PCI_EJ_BASE, 4, 4, pciej_read, NULL);
- qemu_system_device_hot_add_register(piix4_device_hot_add);
+ qemu_system_device_hot_add_register(piix4_device_hot_add, NULL);
}
static void enable_device(struct pci_status *p, struct gpe_regs *g, int slot)
@@ -554,7 +554,7 @@ static void disable_device(struct pci_status *p, struct
gpe_regs *g, int slot)
p->down |= (1 << slot);
}
-static void piix4_device_hot_add(int bus, int slot, int state)
+static void piix4_device_hot_add(int bus, int slot, int state, void *opaque)
{
pci0_status.up = 0;
pci0_status.down = 0;
diff --git a/sysemu.h b/sysemu.h
index 8bf90ee..1450c65 100644
--- a/sysemu.h
+++ b/sysemu.h
@@ -198,8 +198,8 @@ extern QemuOpts *drive_add(const char *file, const char
*fmt, ...);
extern DriveInfo *drive_init(QemuOpts *arg, void *machine, int *fatal_error);
/* acpi */
-typedef void (*qemu_system_device_hot_add_t)(int pcibus, int slot, int state);
-void qemu_system_device_hot_add_register(qemu_system_device_hot_add_t
callback);
+typedef void (*qemu_system_device_hot_add_t)(int pcibus, int slot, int state,
void *opaque);
+void qemu_system_device_hot_add_register(qemu_system_device_hot_add_t
callback, void *opaque);
void qemu_system_device_hot_add(int pcibus, int slot, int state);
/* device-hotplug */
--
1.6.0.2
- [Qemu-devel] [PATCH 28/61] pci: factor out while(bus) bus->next loop logic into pci_find_bus_from()., (continued)
- [Qemu-devel] [PATCH 28/61] pci: factor out while(bus) bus->next loop logic into pci_find_bus_from()., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 21/61] pci: introduce constant PCI_NUM_PINS for the number of interrupt pins, 4., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 17/61] pc: split out pci device init from pc_init1() into pc_pci_device_init(), Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 15/61] pc: split out vga initialization from pc_init1() into pc_vga_init()., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 09/61] pc: remove a global variable, floppy_controller., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 59/61] ioapic: make irr accept more than 32 pins., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 16/61] pc: split out basic device init from pc_init1() into pc_basic_device_init(), Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 14/61] pc: split out memory allocation from pc_init1() into pc_memory_init(), Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 56/61] ioapic: clean up of #ifdef DEBUG_IOAPIC., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 03/61] acpi: add acpi constants from linux header files and use them., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 49/61] pci hot add: pass opaque argument to callback.,
Isaku Yamahata <=
- [Qemu-devel] [PATCH 01/61] acpi: split out pc smbus routines from acpi.c into pc_smbus.c, Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 61/61] pc_q35: apic mode for pci interrupt routing., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 11/61] pc: introduce a function to allocate cpu irq., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 51/61] vmstate: add a macro for pointer to struct, VMSTATE_STRUCT_POINTER., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 54/61] pci: add opaque argument to pci_map_irq_fn()., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 30/61] pci_host.h: split non-inline static function in pci_host.h into pci_host_c.h, Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 37/61] pci: add helper function for pci config write function to check address., Isaku Yamahata, 2009/09/30
- [Qemu-devel] [PATCH 36/61] pci: use QLIST_ macro instead of direct list manipulation., Isaku Yamahata, 2009/09/30