void qemu_remove_led_event_handler(QEMUPutLEDEntry *entry);
void kbd_put_keycode(int keycode);
+#ifdef CONFIG_MARU
+void qemu_add_ps2kbd_event_handler(QEMUPutKBDEvent *func, void *opaque);
+void qemu_remove_ps2kbd_event_handler(void);
void ps2kbd_put_keycode(int keycode);
+#endif
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);
+#ifdef CONFIG_MARU
qemu_add_ps2kbd_event_handler(ps2_put_keycode, s);
+#endif
qemu_register_reset(ps2_kbd_reset, s);
return s;
}
static QEMUPutKBDEvent *qemu_put_kbd_event;
static void *qemu_put_kbd_event_opaque;
+#ifdef CONFIG_MARU
static QEMUPutKBDEvent *qemu_put_ps2kbd_event;
static void *qemu_put_ps2kbd_event_opaque;
+#endif
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;
}
+#ifdef CONFIG_MARU
+
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 = NULL;
}
+void ps2kbd_put_keycode(int keycode)
+{
+ if (qemu_put_ps2kbd_event) {
+ qemu_put_ps2kbd_event(qemu_put_ps2kbd_event_opaque, keycode);
+ }
+}
+
+#endif
+
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;
{
INFO("construct main window\n");
start_skin_server(11111, 0, 0);
-#if 0
+#if 1
if (start_skin_client(skin_argc, skin_argv) == 0) {
//TODO:
}
}
smi_irq = qemu_allocate_irqs(pc_acpi_smi_interrupt, first_cpu, 1);
/* TODO: Populate SPD eeprom data. */
- smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100,
+ smbus = maru_pm_init(pci_bus, piix3_devfn + 3, 0xb100,
gsi[9], *cmos_s3, *smi_irq,
kvm_enabled());
smbus_eeprom_init(smbus, 8, NULL, 0);
#include "range.h"
#include "ioport.h"
#include "debug_ch.h"
-#include "../skin/maruskin_server.h"
//#define DEBUG
# define PIIX4_DPRINTF(format, ...) do { } while (0)
#endif
+/* define debug channel */
+MULTI_DEBUG_CHANNEL(qemu, maru_pm);
+
#define ACPI_DBG_IO_ADDR 0xb044
#define GPE_BASE 0xafe0
#define PIIX4_PCI_HOTPLUG_STATUS 2
-/* define debug channel */
-MULTI_DEBUG_CHANNEL(qemu, maru_pm);
-
struct pci_status {
uint32_t up;
uint32_t down;
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
pm_update_sci(s);
break;
case 0x04:
-#if 0 // changed acpi_pm1_cnt_write for emulator
+#if 0
acpi_pm1_cnt_write(&s->pm1a, &s->pm1_cnt, val);
#else
maru_pm1_cnt_write(&s->pm1a, &s->pm1_cnt, val);
-#endif// end : changed acpi_pm1_cnt_write for emulator
+#endif
break;
default:
break;
(unsigned int)val);
}
-
static void pm_ioport_read(IORange *ioport, uint64_t addr, unsigned width,
uint64_t *data)
{
PCIDevice *dev;
PIIX4PMState *s;
- dev = pci_create(bus, devfn, "PIIX4_PM");
+ dev = pci_create(bus, devfn, "MARU_PM");
qdev_prop_set_uint32(&dev->qdev, "smb_io_base", smb_io_base);
s = DO_UPCAST(PIIX4PMState, dev, dev);
}
static PCIDeviceInfo piix4_pm_info = {
- .qdev.name = "PIIX4_PM",
+ .qdev.name = "MARU_PM",
.qdev.desc = "PM",
.qdev.size = sizeof(PIIX4PMState),
.qdev.vmsd = &vmstate_acpi,
void request_close( void ) {
INFO( "request_close\n" );
- kbd_put_keycode( 103 & 0x7f );
-//#ifdef _WIN32
-// Sleep( 1.6 * 1000 ); // 1.6 seconds
-//#else
-// usleep( 1.6 * 1000 * 1000 ); // 1.6 seconds
-//#endif
-// kbd_put_keycode( 103 | 0x80 );
+ ps2kbd_put_keycode( 103 & 0x7f );
+#ifdef _WIN32
+ Sleep( 1.6 * 1000 ); // 1.6 seconds
+#else
+ usleep( 1.6 * 1000 * 1000 ); // 1.6 seconds
+#endif
+ kbd_put_keycode( 103 | 0x80 );
}
void shutdown_skin_server(void) {
if ( client_sock ) {
+ INFO( "Send shutdown to skin.\n" );
if ( 0 > send_skin( client_sock, SEND_SHUTDOWN ) ) {
INFO( "fail to send shutdown to skin.\n" );
stop = 1;
#ifdef CONFIG_MARU
#include "tizen/src/maru_sdl.h"
+#include "tizen/src/skin/maruskin_server.h"
#endif
//#define DEBUG_NET
void qemu_system_shutdown_request(void)
{
+#ifdef CONFIG_MARU
+ shutdown_skin_server();
+#endif
shutdown_requested = 1;
qemu_notify_event();
}