Compare commits
6 Commits
qom-cpu-fo
...
pull-input
Author | SHA1 | Date | |
---|---|---|---|
|
bdcc3a28b7 | ||
|
0419f78fae | ||
|
e82597f6f8 | ||
|
63678e17cf | ||
|
58b590148c | ||
|
7d4d7975e5 |
18
configure
vendored
18
configure
vendored
@@ -198,6 +198,7 @@ audio_win_int=""
|
|||||||
cc_i386=i386-pc-linux-gnu-gcc
|
cc_i386=i386-pc-linux-gnu-gcc
|
||||||
libs_qga=""
|
libs_qga=""
|
||||||
debug_info="yes"
|
debug_info="yes"
|
||||||
|
stack_protector=""
|
||||||
|
|
||||||
# Don't accept a target_list environment variable.
|
# Don't accept a target_list environment variable.
|
||||||
unset target_list
|
unset target_list
|
||||||
@@ -950,6 +951,10 @@ for opt do
|
|||||||
;;
|
;;
|
||||||
--disable-werror) werror="no"
|
--disable-werror) werror="no"
|
||||||
;;
|
;;
|
||||||
|
--enable-stack-protector) stack_protector="yes"
|
||||||
|
;;
|
||||||
|
--disable-stack-protector) stack_protector="no"
|
||||||
|
;;
|
||||||
--disable-curses) curses="no"
|
--disable-curses) curses="no"
|
||||||
;;
|
;;
|
||||||
--enable-curses) curses="yes"
|
--enable-curses) curses="yes"
|
||||||
@@ -1219,6 +1224,7 @@ Advanced options (experts only):
|
|||||||
--disable-sparse disable sparse checker (default)
|
--disable-sparse disable sparse checker (default)
|
||||||
--disable-strip disable stripping binaries
|
--disable-strip disable stripping binaries
|
||||||
--disable-werror disable compilation abort on warning
|
--disable-werror disable compilation abort on warning
|
||||||
|
--disable-stack-protector disable compiler-provided stack protection
|
||||||
--disable-sdl disable SDL
|
--disable-sdl disable SDL
|
||||||
--enable-sdl enable SDL
|
--enable-sdl enable SDL
|
||||||
--with-sdlabi select preferred SDL ABI 1.2 or 2.0
|
--with-sdlabi select preferred SDL ABI 1.2 or 2.0
|
||||||
@@ -1439,9 +1445,15 @@ for flag in $gcc_flags; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if compile_prog "-Werror -fstack-protector-all" "" ; then
|
if test "$stack_protector" != "no" ; then
|
||||||
QEMU_CFLAGS="$QEMU_CFLAGS -fstack-protector-all"
|
gcc_flags="-fstack-protector-strong -fstack-protector-all"
|
||||||
LIBTOOLFLAGS="$LIBTOOLFLAGS -Wc,-fstack-protector-all"
|
for flag in $gcc_flags; do
|
||||||
|
if compile_prog "-Werror $flag" "" ; then
|
||||||
|
QEMU_CFLAGS="$QEMU_CFLAGS $flag"
|
||||||
|
LIBTOOLFLAGS="$LIBTOOLFLAGS -Wc,$flag"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Workaround for http://gcc.gnu.org/PR55489. Happens with -fPIE/-fPIC and
|
# Workaround for http://gcc.gnu.org/PR55489. Happens with -fPIE/-fPIC and
|
||||||
|
@@ -189,9 +189,9 @@ static void pci_do_device_reset(PCIDevice *dev)
|
|||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
dev->irq_state = 0;
|
|
||||||
pci_update_irq_status(dev);
|
|
||||||
pci_device_deassert_intx(dev);
|
pci_device_deassert_intx(dev);
|
||||||
|
assert(dev->irq_state == 0);
|
||||||
|
|
||||||
/* Clear all writable bits */
|
/* Clear all writable bits */
|
||||||
pci_word_test_and_clear_mask(dev->config + PCI_COMMAND,
|
pci_word_test_and_clear_mask(dev->config + PCI_COMMAND,
|
||||||
pci_get_word(dev->wmask + PCI_COMMAND) |
|
pci_get_word(dev->wmask + PCI_COMMAND) |
|
||||||
|
@@ -1022,7 +1022,7 @@ gd_update(int x, int y, int w, int h) "x=%d, y=%d, w=%d, h=%d"
|
|||||||
gd_key_event(int gdk_keycode, int qemu_keycode, const char *action) "translated GDK keycode %d to QEMU keycode %d (%s)"
|
gd_key_event(int gdk_keycode, int qemu_keycode, const char *action) "translated GDK keycode %d to QEMU keycode %d (%s)"
|
||||||
|
|
||||||
# ui/input.c
|
# ui/input.c
|
||||||
input_event_key_number(int conidx, int number, bool down) "con %d, key number 0x%d, down %d"
|
input_event_key_number(int conidx, int number, bool down) "con %d, key number 0x%x, down %d"
|
||||||
input_event_key_qcode(int conidx, const char *qcode, bool down) "con %d, key qcode %s, down %d"
|
input_event_key_qcode(int conidx, const char *qcode, bool down) "con %d, key qcode %s, down %d"
|
||||||
input_event_btn(int conidx, const char *btn, bool down) "con %d, button %s, down %d"
|
input_event_btn(int conidx, const char *btn, bool down) "con %d, button %s, down %d"
|
||||||
input_event_rel(int conidx, const char *axis, int value) "con %d, axis %s, value %d"
|
input_event_rel(int conidx, const char *axis, int value) "con %d, axis %s, value %d"
|
||||||
|
19
ui/input.c
19
ui/input.c
@@ -143,6 +143,9 @@ void qemu_input_event_send(QemuConsole *src, InputEvent *evt)
|
|||||||
|
|
||||||
/* send event */
|
/* send event */
|
||||||
s = qemu_input_find_handler(1 << evt->kind);
|
s = qemu_input_find_handler(1 << evt->kind);
|
||||||
|
if (!s) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
s->handler->event(s->dev, src, evt);
|
s->handler->event(s->dev, src, evt);
|
||||||
s->events++;
|
s->events++;
|
||||||
}
|
}
|
||||||
@@ -342,15 +345,21 @@ void do_mouse_set(Monitor *mon, const QDict *qdict)
|
|||||||
int found = 0;
|
int found = 0;
|
||||||
|
|
||||||
QTAILQ_FOREACH(s, &handlers, node) {
|
QTAILQ_FOREACH(s, &handlers, node) {
|
||||||
if (s->id == index) {
|
if (s->id != index) {
|
||||||
found = 1;
|
continue;
|
||||||
qemu_input_handler_activate(s);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
if (!(s->handler->mask & (INPUT_EVENT_MASK_REL |
|
||||||
|
INPUT_EVENT_MASK_ABS))) {
|
||||||
|
error_report("Input device '%s' is not a mouse", s->handler->name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
found = 1;
|
||||||
|
qemu_input_handler_activate(s);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!found) {
|
if (!found) {
|
||||||
monitor_printf(mon, "Mouse at given index not found\n");
|
error_report("Mouse at index '%d' not found", index);
|
||||||
}
|
}
|
||||||
|
|
||||||
qemu_input_check_mode_change();
|
qemu_input_check_mode_change();
|
||||||
|
Reference in New Issue
Block a user