summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2011-06-20 14:06:26 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2011-07-23 11:26:06 -0500
commit9e8dd45164af05a5dab00324dd10b037f5bd1e2a (patch)
tree5dad08a23d9b4661ab5f7abba83427f6fc8498d9
parentide: Turn properties any IDE device must have into bus properties (diff)
downloadqemu-kvm-9e8dd45164af05a5dab00324dd10b037f5bd1e2a.tar.gz
qemu-kvm-9e8dd45164af05a5dab00324dd10b037f5bd1e2a.tar.bz2
qemu-kvm-9e8dd45164af05a5dab00324dd10b037f5bd1e2a.zip
notifier: Pass data argument to callback
This allows to pass additional information to the notifier callback which is useful if sender and receiver do not share any other distinct data structure. Will be used first for the clock reset notifier. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--hw/acpi_piix4.c2
-rw-r--r--hw/fw_cfg.c2
-rw-r--r--input.c2
-rw-r--r--migration.c12
-rw-r--r--notify.c4
-rw-r--r--notify.h4
-rw-r--r--ui/sdl.c2
-rw-r--r--ui/spice-core.c2
-rw-r--r--ui/spice-input.c4
-rw-r--r--ui/vnc.c4
-rw-r--r--usb-linux.c2
-rw-r--r--vl.c4
-rw-r--r--xen-all.c2
13 files changed, 23 insertions, 23 deletions
diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
index 03bd76836..29f0f76c3 100644
--- a/hw/acpi_piix4.c
+++ b/hw/acpi_piix4.c
@@ -313,7 +313,7 @@ static void piix4_powerdown(void *opaque, int irq, int power_failing)
acpi_pm1_evt_power_down(pm1a, tmr);
}
-static void piix4_pm_machine_ready(struct Notifier* n)
+static void piix4_pm_machine_ready(Notifier *n, void *opaque)
{
PIIX4PMState *s = container_of(n, PIIX4PMState, machine_ready);
uint8_t *pci_conf;
diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c
index 85c8c3c7b..34e7526d5 100644
--- a/hw/fw_cfg.c
+++ b/hw/fw_cfg.c
@@ -316,7 +316,7 @@ int fw_cfg_add_file(FWCfgState *s, const char *filename, uint8_t *data,
return 1;
}
-static void fw_cfg_machine_ready(struct Notifier* n)
+static void fw_cfg_machine_ready(struct Notifier *n, void *data)
{
uint32_t len;
FWCfgState *s = container_of(n, FWCfgState, machine_ready);
diff --git a/input.c b/input.c
index f0a02e783..310bad58f 100644
--- a/input.c
+++ b/input.c
@@ -59,7 +59,7 @@ static void check_mode_change(void)
if (is_absolute != current_is_absolute ||
has_absolute != current_has_absolute) {
- notifier_list_notify(&mouse_mode_notifiers);
+ notifier_list_notify(&mouse_mode_notifiers, NULL);
}
current_is_absolute = is_absolute;
diff --git a/migration.c b/migration.c
index af3a1f270..2a15b98db 100644
--- a/migration.c
+++ b/migration.c
@@ -124,7 +124,7 @@ int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
}
current_migration = s;
- notifier_list_notify(&migration_state_notifiers);
+ notifier_list_notify(&migration_state_notifiers, NULL);
return 0;
}
@@ -276,7 +276,7 @@ void migrate_fd_error(FdMigrationState *s)
{
DPRINTF("setting error state\n");
s->state = MIG_STATE_ERROR;
- notifier_list_notify(&migration_state_notifiers);
+ notifier_list_notify(&migration_state_notifiers, NULL);
migrate_fd_cleanup(s);
}
@@ -334,7 +334,7 @@ ssize_t migrate_fd_put_buffer(void *opaque, const void *data, size_t size)
monitor_resume(s->mon);
}
s->state = MIG_STATE_ERROR;
- notifier_list_notify(&migration_state_notifiers);
+ notifier_list_notify(&migration_state_notifiers, NULL);
}
return ret;
@@ -395,7 +395,7 @@ void migrate_fd_put_ready(void *opaque)
state = MIG_STATE_ERROR;
}
s->state = state;
- notifier_list_notify(&migration_state_notifiers);
+ notifier_list_notify(&migration_state_notifiers, NULL);
}
}
@@ -415,7 +415,7 @@ void migrate_fd_cancel(MigrationState *mig_state)
DPRINTF("cancelling migration\n");
s->state = MIG_STATE_CANCELLED;
- notifier_list_notify(&migration_state_notifiers);
+ notifier_list_notify(&migration_state_notifiers, NULL);
qemu_savevm_state_cancel(s->mon, s->file);
migrate_fd_cleanup(s);
@@ -429,7 +429,7 @@ void migrate_fd_release(MigrationState *mig_state)
if (s->state == MIG_STATE_ACTIVE) {
s->state = MIG_STATE_CANCELLED;
- notifier_list_notify(&migration_state_notifiers);
+ notifier_list_notify(&migration_state_notifiers, NULL);
migrate_fd_cleanup(s);
}
qemu_free(s);
diff --git a/notify.c b/notify.c
index bcd3fc532..a6bac1f78 100644
--- a/notify.c
+++ b/notify.c
@@ -29,11 +29,11 @@ void notifier_list_remove(NotifierList *list, Notifier *notifier)
QTAILQ_REMOVE(&list->notifiers, notifier, node);
}
-void notifier_list_notify(NotifierList *list)
+void notifier_list_notify(NotifierList *list, void *data)
{
Notifier *notifier, *next;
QTAILQ_FOREACH_SAFE(notifier, &list->notifiers, node, next) {
- notifier->notify(notifier);
+ notifier->notify(notifier, data);
}
}
diff --git a/notify.h b/notify.h
index b40522f58..54fc57cec 100644
--- a/notify.h
+++ b/notify.h
@@ -20,7 +20,7 @@ typedef struct Notifier Notifier;
struct Notifier
{
- void (*notify)(Notifier *notifier);
+ void (*notify)(Notifier *notifier, void *data);
QTAILQ_ENTRY(Notifier) node;
};
@@ -38,6 +38,6 @@ void notifier_list_add(NotifierList *list, Notifier *notifier);
void notifier_list_remove(NotifierList *list, Notifier *notifier);
-void notifier_list_notify(NotifierList *list);
+void notifier_list_notify(NotifierList *list, void *data);
#endif
diff --git a/ui/sdl.c b/ui/sdl.c
index f2bd4a035..6dbc5cb0e 100644
--- a/ui/sdl.c
+++ b/ui/sdl.c
@@ -481,7 +481,7 @@ static void sdl_grab_end(void)
sdl_update_caption();
}
-static void sdl_mouse_mode_change(Notifier *notify)
+static void sdl_mouse_mode_change(Notifier *notify, void *data)
{
if (kbd_mouse_is_absolute()) {
if (!absolute_enabled) {
diff --git a/ui/spice-core.c b/ui/spice-core.c
index 110041769..3d77c0144 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -416,7 +416,7 @@ void do_info_spice(Monitor *mon, QObject **ret_data)
*ret_data = QOBJECT(server);
}
-static void migration_state_notifier(Notifier *notifier)
+static void migration_state_notifier(Notifier *notifier, void *data)
{
int state = get_migration_state();
diff --git a/ui/spice-input.c b/ui/spice-input.c
index 37c8578a2..75abf5fbe 100644
--- a/ui/spice-input.c
+++ b/ui/spice-input.c
@@ -178,7 +178,7 @@ static const SpiceTabletInterface tablet_interface = {
.buttons = tablet_buttons,
};
-static void mouse_mode_notifier(Notifier *notifier)
+static void mouse_mode_notifier(Notifier *notifier, void *data)
{
QemuSpicePointer *pointer = container_of(notifier, QemuSpicePointer, mouse_mode);
bool is_absolute = kbd_mouse_is_absolute();
@@ -213,5 +213,5 @@ void qemu_spice_input_init(void)
pointer->absolute = false;
pointer->mouse_mode.notify = mouse_mode_notifier;
qemu_add_mouse_mode_change_notifier(&pointer->mouse_mode);
- mouse_mode_notifier(&pointer->mouse_mode);
+ mouse_mode_notifier(&pointer->mouse_mode, NULL);
}
diff --git a/ui/vnc.c b/ui/vnc.c
index 8602adc68..4425180a8 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -1346,7 +1346,7 @@ static void client_cut_text(VncState *vs, size_t len, uint8_t *text)
{
}
-static void check_pointer_type_change(Notifier *notifier)
+static void check_pointer_type_change(Notifier *notifier, void *data)
{
VncState *vs = container_of(notifier, VncState, mouse_mode_notifier);
int absolute = kbd_mouse_is_absolute();
@@ -1769,7 +1769,7 @@ static void set_encodings(VncState *vs, int32_t *encodings, size_t n_encodings)
}
}
vnc_desktop_resize(vs);
- check_pointer_type_change(&vs->mouse_mode_notifier);
+ check_pointer_type_change(&vs->mouse_mode_notifier, NULL);
}
static void set_pixel_conversion(VncState *vs)
diff --git a/usb-linux.c b/usb-linux.c
index 1a2deb35c..53cc5fc00 100644
--- a/usb-linux.c
+++ b/usb-linux.c
@@ -1260,7 +1260,7 @@ static int usb_host_close(USBHostDevice *dev)
return 0;
}
-static void usb_host_exit_notifier(struct Notifier* n)
+static void usb_host_exit_notifier(struct Notifier *n, void *data)
{
USBHostDevice *s = container_of(n, USBHostDevice, exit);
diff --git a/vl.c b/vl.c
index 99d92012c..4b6688b55 100644
--- a/vl.c
+++ b/vl.c
@@ -2009,7 +2009,7 @@ void qemu_remove_exit_notifier(Notifier *notify)
static void qemu_run_exit_notifiers(void)
{
- notifier_list_notify(&exit_notifiers);
+ notifier_list_notify(&exit_notifiers, NULL);
}
void qemu_add_machine_init_done_notifier(Notifier *notify)
@@ -2019,7 +2019,7 @@ void qemu_add_machine_init_done_notifier(Notifier *notify)
static void qemu_run_machine_init_done_notifiers(void)
{
- notifier_list_notify(&machine_init_done_notifiers);
+ notifier_list_notify(&machine_init_done_notifiers, NULL);
}
static const QEMUOption *lookup_opt(int argc, char **argv,
diff --git a/xen-all.c b/xen-all.c
index 8105c8368..167bed6db 100644
--- a/xen-all.c
+++ b/xen-all.c
@@ -839,7 +839,7 @@ static void xen_vm_change_state_handler(void *opaque, int running, int reason)
}
}
-static void xen_exit_notifier(Notifier *n)
+static void xen_exit_notifier(Notifier *n, void *data)
{
XenIOState *state = container_of(n, XenIOState, exit);