void qemu_remove_led_event_handler(QEMUPutLEDEntry *entry);
void kbd_put_keycode(int keycode);
+void ps2kbd_put_keycode(int keycode);
void kbd_put_ledstate(int ledstate);
void kbd_mouse_event(int dx, int dy, int dz, int buttons_state);
s->scancode_set = 2;
vmstate_register(NULL, 0, &vmstate_ps2_keyboard, s);
qemu_add_kbd_event_handler(ps2_put_keycode, s);
+ qemu_add_ps2kbd_event_handler(ps2_put_keycode, s);
qemu_register_reset(ps2_kbd_reset, s);
return s;
}
static QEMUPutKBDEvent *qemu_put_kbd_event;
static void *qemu_put_kbd_event_opaque;
+static QEMUPutKBDEvent *qemu_put_ps2kbd_event;
+static void *qemu_put_ps2kbd_event_opaque;
static QTAILQ_HEAD(, QEMUPutLEDEntry) led_handlers = QTAILQ_HEAD_INITIALIZER(led_handlers);
static QTAILQ_HEAD(, QEMUPutMouseEntry) mouse_handlers =
QTAILQ_HEAD_INITIALIZER(mouse_handlers);
qemu_put_kbd_event = NULL;
}
+void qemu_add_ps2kbd_event_handler(QEMUPutKBDEvent *func, void *opaque)
+{
+ qemu_add_kbd_event_handler(func,opaque); // temporary code for compatibility with Xserver
+ qemu_put_ps2kbd_event_opaque = opaque;
+ qemu_put_ps2kbd_event = func;
+}
+
+void qemu_remove_ps2kbd_event_handler(void)
+{
+ qemu_put_ps2kbd_event_opaque = NULL;
+ qemu_put_ps2kbd_event = NULL;
+}
+
static void check_mode_change(void)
{
static int current_is_absolute, current_has_absolute;
}
}
+void ps2kbd_put_keycode(int keycode)
+{
+ if (qemu_put_ps2kbd_event) {
+ qemu_put_ps2kbd_event(qemu_put_ps2kbd_event_opaque, keycode);
+ }
+}
+
void kbd_put_ledstate(int ledstate)
{
QEMUPutLEDEntry *cursor;
#Generated automatically by emulator.
-#Thu Mar 08 17:39:01 KST 2012
-window.y=61
-window.x=969
+#Fri Mar 09 13:56:32 KST 2012
+window.y=48
+window.x=838
window.scale=1
-window.rotate=1
+window.rotate=0
#!/bin/bash
-./qemu-system-i386 --skin-args a --qemu-args -drive file=emulimg.x86,if=virtio -boot c -append "console=ttyS0 video=uvesafb:ywrap,480x800-32@60 proxy= dns1=168.126.63.1 sdb_port=26100 dpi=2070 root=/dev/vda rw ip=10.0.2.16::10.0.2.2:255.255.255.0::eth0:none 5" -serial file:emulator.klog -m 512 -M maru-x86-machine -net nic,model=virtio -soundhw all -usb -usbdevice maru-touchscreen -vga maru -bios bios.bin -L . -kernel bzImage -usbdevice keyboard -net user -rtc base=utc -enable-kvm
+./qemu-system-i386 --skin-args a --qemu-args -drive file=emulimg.x86,if=virtio -boot c -append "console=ttyS0 video=uvesafb:ywrap,480x800-32@60 proxy= dns1=168.126.63.1 sdb_port=26100 dpi=2070 root=/dev/vda rw ip=10.0.2.16::10.0.2.2:255.255.255.0::eth0:none 5" -serial file:emulator.klog -m 512 -M maru-x86-machine -net nic,model=virtio -soundhw all -usb -usbdevice maru-touchscreen -vga maru -bios bios.bin -L . -kernel bzImage -usbdevice keyboard -net user -rtc base=utc -enable-kvm -redir tcp:1202:10.0.2.16:22
#include "range.h"
#include "ioport.h"
#include "debug_ch.h"
+#include "../skin/maruskin_server.h"
//#define DEBUG
switch(sus_typ) {
case 0: /* soft power off */
qemu_system_shutdown_request();
+ shutdown_skin_server();
break;
case 1:
#if 0 // changed suspend operation for emulator
#include "maruskin_operation.h"
#include "maru_sdl.h"
#include "debug_ch.h"
-#include "console.h"
-//FIXME uncomment
-//#include "maru_pm.h"
+#include "../hw/maru_pm.h"
MULTI_DEBUG_CHANNEL(qemu, skin_operation);
void request_close( void ) {
INFO( "request_close\n" );
-//FIXME uncomment
-// ps2kbd_put_keycode( 103 & 0x7f );
+ kbd_put_keycode( 103 & 0x7f );
//#ifdef _WIN32
// Sleep( 1.6 * 1000 ); // 1.6 seconds
//#else
// usleep( 1.6 * 1000 * 1000 ); // 1.6 seconds
//#endif
-// ps2kbd_put_keycode( 103 | 0x80 );
+// kbd_put_keycode( 103 | 0x80 );
}
INFO( "RECV_CLOSE\n" );
request_close();
//XXX
- shutdown_skin_server();
+// shutdown_skin_server();
break;
}
case RECV_RESPONSE_SHUTDOWN: {
-Subproject commit 4747bd3c9d42da6a7aeb05a37cb4bde5bbd7f376
+Subproject commit 391b22a753b756bd073b81d99d63cd90442ee9f8