package: make it buildable on Windows and MacOSX
authorSeokYeon Hwang <syeon.hwang@samsung.com>
Sat, 2 Jul 2016 06:07:15 +0000 (15:07 +0900)
committerSeokYeon Hwang <syeon.hwang@samsung.com>
Tue, 5 Jul 2016 09:43:22 +0000 (18:43 +0900)
VIRTFS is disabled temporarily. It is work again soon.

Change-Id: Ifa8ced8577e78c1cea8dbf314aedb4b33bfb2528
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
Signed-off-by: Sooyoung Ha <yoosah.ha@samsung.com>
17 files changed:
Makefile.objs
configure
target-i386/hax-all.c
target-i386/hax-interface.h
tizen/src/ecs/Makefile.objs
tizen/src/ecs/ecs_msg_device.c
tizen/src/ecs/ecs_msg_injector.c
tizen/src/ecs/ecs_sdcard.h
tizen/src/emul_state.c
tizen/src/emulator_options.c
tizen/src/hw/pci/maru_camera_darwin.m
tizen/src/hw/pci/maru_camera_qtimage.cpp
tizen/src/hw/pci/maru_camera_win32.c
tizen/src/hw/virtio/maru_virtio_nfc.c
tizen/src/ui/menu/contextmenu.cpp
tizen/src/util/device_hotplug.c
tizen/src/util/osutil-win32.c

index 1d3f862..07d760f 100644 (file)
@@ -46,7 +46,8 @@ common-obj-y += net/
 common-obj-y += qdev-monitor.o device-hotplug.o
 common-obj-$(CONFIG_WIN32) += os-win32.o
 common-obj-$(CONFIG_POSIX) += os-posix.o
-common-obj-y += fsdev/
+
+common-obj-$(CONFIG_VIRTFS) += fsdev/
 
 common-obj-y += migration/
 common-obj-y += qemu-char.o #aio.o
index 3bbc31c..e36f463 100755 (executable)
--- a/configure
+++ b/configure
@@ -4921,10 +4921,12 @@ if test "$softmmu" = yes ; then
       tools="$tools fsdev/virtfs-proxy-helper\$(EXESUF)"
     elif test "$darwin" = yes ; then
       echo "Enable VirtFS on Darwin"
-      virtfs=yes
+#     virtfs=yes
+      virtfs=no
     elif test "$mingw32" = yes ; then
       echo "Enable VirtFS on Windows"
-      virtfs=yes
+#     virtfs=yes
+      virtfs=no
     else
       if test "$virtfs" = yes; then
         error_exit "VirtFS is supported only on Linux and requires libcap-devel and libattr-devel"
index 39d874d..916fcd4 100644 (file)
@@ -1257,7 +1257,7 @@ static int hax_get_fpu(CPUArchState *env)
     memcpy(env->fpregs, fpu.st_mm, sizeof(env->fpregs));
 
     memcpy(env->xmm_regs, fpu.mmx_1, sizeof(fpu.mmx_1));
-    memcpy((XMMReg *)(env->xmm_regs) + 8, fpu.mmx_2, sizeof(fpu.mmx_2));
+    memcpy((ZMMReg *)(env->xmm_regs) + 8, fpu.mmx_2, sizeof(fpu.mmx_2));
     env->mxcsr = fpu.mxcsr;
 
     return 0;
@@ -1278,7 +1278,7 @@ static int hax_set_fpu(CPUArchState *env)
 
     memcpy(fpu.st_mm, env->fpregs, sizeof (env->fpregs));
     memcpy(fpu.mmx_1, env->xmm_regs, sizeof (fpu.mmx_1));
-    memcpy(fpu.mmx_2, (XMMReg *)(env->xmm_regs) + 8, sizeof (fpu.mmx_2));
+    memcpy(fpu.mmx_2, (ZMMReg *)(env->xmm_regs) + 8, sizeof (fpu.mmx_2));
 
     fpu.mxcsr = env->mxcsr;
 
index 4523ce1..0f9dbde 100644 (file)
 struct fx_layout {
     uint16_t    fcw;
     uint16_t    fsw;
-    uint8       ftw;
-    uint8       res1;
+    uint8_t     ftw;
+    uint8_t     res1;
     uint16_t    fop;
     union {
         struct {
-            uint32      fip;
+            uint32_t    fip;
             uint16_t    fcs;
             uint16_t    res2;
         };
-        uint64  fpu_ip;
+        uint64_t  fpu_ip;
     };
     union {
         struct {
-            uint32      fdp;
+            uint32_t    fdp;
             uint16_t    fds;
             uint16_t    res3;
         };
-        uint64 fpu_dp;
+        uint64_t fpu_dp;
     };
-    uint32      mxcsr;
-    uint32      mxcsr_mask;
-    uint8       st_mm[8][16];
-    uint8       mmx_1[8][16];
-    uint8       mmx_2[8][16];
-    uint8       pad[96];
+    uint32_t      mxcsr;
+    uint32_t      mxcsr_mask;
+    uint8_t       st_mm[8][16];
+    uint8_t       mmx_1[8][16];
+    uint8_t       mmx_2[8][16];
+    uint8_t       pad[96];
 }  __attribute__ ((aligned (8)));
 
 struct vmx_msr {
-    uint64 entry;
-    uint64 value;
+    uint64_t entry;
+    uint64_t value;
 } __attribute__ ((__packed__));
 
 /*
@@ -66,13 +66,13 @@ struct hax_msr_data
 } __attribute__ ((__packed__));
 
 union interruptibility_state_t {
-    uint32 raw;
+    uint32_t raw;
     struct {
-        uint32 sti_blocking   : 1;
-        uint32 movss_blocking : 1;
-        uint32 smi_blocking   : 1;
-        uint32 nmi_blocking   : 1;
-        uint32 reserved       : 28;
+        uint32_t sti_blocking   : 1;
+        uint32_t movss_blocking : 1;
+        uint32_t smi_blocking   : 1;
+        uint32_t nmi_blocking   : 1;
+        uint32_t reserved       : 28;
     };
     uint64_t pad;
 };
@@ -83,25 +83,25 @@ typedef union interruptibility_state_t interruptibility_state_t;
 struct segment_desc_t {
     uint16_t selector;
     uint16_t _dummy;
-    uint32 limit;
-    uint64 base;
+    uint32_t limit;
+    uint64_t base;
     union {
         struct {
-            uint32 type             : 4;
-            uint32 desc             : 1;
-            uint32 dpl              : 2;
-            uint32 present          : 1;
-            uint32                  : 4;
-            uint32 available        : 1;
-            uint32 long_mode        : 1;
-            uint32 operand_size     : 1;
-            uint32 granularity      : 1;
-            uint32 null             : 1;
-            uint32                  : 15;
+            uint32_t type             : 4;
+            uint32_t desc             : 1;
+            uint32_t dpl              : 2;
+            uint32_t present          : 1;
+            uint32_t                  : 4;
+            uint32_t available        : 1;
+            uint32_t long_mode        : 1;
+            uint32_t operand_size     : 1;
+            uint32_t granularity      : 1;
+            uint32_t null             : 1;
+            uint32_t                  : 15;
         };
-        uint32 ar;
+        uint32_t ar;
     };
-    uint32 ipad;
+    uint32_t ipad;
 };
 
 typedef struct segment_desc_t segment_desc_t;
@@ -109,84 +109,84 @@ typedef struct segment_desc_t segment_desc_t;
 struct vcpu_state_t
 {
     union {
-        uint64 _regs[16];
+        uint64_t _regs[16];
         struct {
             union {
                 struct {
-                    uint8 _al,
+                    uint8_t _al,
                           _ah;
                 };
                 uint16_t    _ax;
-                uint32    _eax;
-                uint64    _rax;
+                uint32_t    _eax;
+                uint64_t    _rax;
             };
             union {
                 struct {
-                    uint8 _cl,
+                    uint8_t _cl,
                           _ch;
                 };
                 uint16_t    _cx;
-                uint32    _ecx;
-                uint64    _rcx;
+                uint32_t    _ecx;
+                uint64_t    _rcx;
             };
             union {
                 struct {
-                    uint8 _dl,
+                    uint8_t _dl,
                           _dh;
                 };
                 uint16_t    _dx;
-                uint32    _edx;
-                uint64    _rdx;
+                uint32_t    _edx;
+                uint64_t    _rdx;
             };
             union {
                 struct {
-                    uint8 _bl,
+                    uint8_t _bl,
                           _bh;
                 };
                 uint16_t    _bx;
-                uint32    _ebx;
-                uint64    _rbx;
+                uint32_t    _ebx;
+                uint64_t    _rbx;
             };
             union {
                 uint16_t    _sp;
-                uint32    _esp;
-                uint64    _rsp;
+                uint32_t    _esp;
+                uint64_t    _rsp;
             };
             union {
                 uint16_t    _bp;
-                uint32    _ebp;
-                uint64    _rbp;
+                uint32_t    _ebp;
+                uint64_t    _rbp;
             };
             union {
                 uint16_t    _si;
-                uint32    _esi;
-                uint64    _rsi;
+                uint32_t    _esi;
+                uint64_t    _rsi;
             };
             union {
                 uint16_t    _di;
-                uint32    _edi;
-                uint64    _rdi;
+                uint32_t    _edi;
+                uint64_t    _rdi;
             };
 
-            uint64 _r8;
-            uint64 _r9;
-            uint64 _r10;
-            uint64 _r11;
-            uint64 _r12;
-            uint64 _r13;
-            uint64 _r14;
-            uint64 _r15;
+            uint64_t _r8;
+            uint64_t _r9;
+            uint64_t _r10;
+            uint64_t _r11;
+            uint64_t _r12;
+            uint64_t _r13;
+            uint64_t _r14;
+            uint64_t _r15;
         };
     };
 
     union {
-        uint32 _eip;
-        uint64 _rip;
+        uint32_t _eip;
+        uint64_t _rip;
     };
 
     union {
-        uint32 _eflags;
-        uint64 _rflags;
+        uint32_t _eflags;
+        uint64_t _rflags;
     };
 
     segment_desc_t _cs;
@@ -201,27 +201,27 @@ struct vcpu_state_t
     segment_desc_t _gdt;
     segment_desc_t _idt;
 
-    uint64 _cr0;
-    uint64 _cr2;
-    uint64 _cr3;
-    uint64 _cr4;
+    uint64_t _cr0;
+    uint64_t _cr2;
+    uint64_t _cr3;
+    uint64_t _cr4;
 
-    uint64 _dr0;
-    uint64 _dr1;
-    uint64 _dr2;
-    uint64 _dr3;
-    uint64 _dr6;
-    uint64 _dr7;
-    uint64 _pde;
+    uint64_t _dr0;
+    uint64_t _dr1;
+    uint64_t _dr2;
+    uint64_t _dr3;
+    uint64_t _dr6;
+    uint64_t _dr7;
+    uint64_t _pde;
 
-    uint32 _efer;
+    uint32_t _efer;
 
-    uint32 _sysenter_cs;
-    uint64 _sysenter_eip;
-    uint64 _sysenter_esp;
+    uint32_t _sysenter_cs;
+    uint64_t _sysenter_eip;
+    uint64_t _sysenter_esp;
 
-    uint32 _activity_state;
-    uint32 pad;
+    uint32_t _activity_state;
+    uint32_t pad;
     interruptibility_state_t _interruptibility_state;
 };
 
index b43f474..36ab220 100644 (file)
@@ -3,6 +3,6 @@ obj-y += ecs.o ecs_msg.o ecs_msg_injector.o ecs_msg_device.o
 obj-y += ecs_mon.o ecs-json-streamer.o
 obj-y += ecs_eventcast.o
 obj-y += ecs_sensor.o
-obj-y += ecs_hds.o
+obj-$(CONFIG_VIRTFS) += ecs_hds.o
 obj-y += ecs_nfc.o
 obj-y += ecs_sdcard.o
index d6287b0..3fcd1a1 100644 (file)
@@ -35,7 +35,6 @@
 
 #include "qmp-commands.h"
 #include "net/slirp.h"
-#include "fsdev/qemu-fsdev.h"
 #include "monitor/qdev.h"
 #include "hw/virtio/maru_virtio_sensor.h"
 #include "hw/virtio/maru_virtio_nfc.h"
@@ -336,7 +335,9 @@ bool msgproc_device_req(ECS_Client *ccli, ECS__DeviceReq *msg)
         /* check to emulator target image path */
         send_target_image_information(ccli);
     } else if (!strcmp(cmd, "hds")) {
+#ifdef CONFIG_VIRTFS
         msgproc_device_req_hds(ccli, msg, cmd);
+#endif
     } else if (!strcmp(cmd, "input")) {
         msgproc_device_req_input(ccli, msg, cmd);
     } else if (!strcmp(cmd, "vmname")) {
index 2f76da3..42be6a4 100644 (file)
@@ -456,7 +456,9 @@ static bool injector_req_handle(char *cat, type_action action, const char *data)
         LOG_INFO("emuld connection is %d\n", action);
         set_emuld_connection(action);
     } else if (!strcmp(cat, "hds")) {
+#ifdef CONFIG_VIRTFS
         msgproc_injector_do_hds(cat, action, data);
+#endif
         return true;
     } else if (!strcmp(cat, MSG_TYPE_PACKAGE)) {
         do_package(cat, action, data);
index d00a6bc..81ade4d 100644 (file)
@@ -35,7 +35,6 @@
 #include "qemu/osdep.h"
 #include "qemu-common.h"
 #include "monitor/qdev.h"
-#include "fsdev/qemu-fsdev.h"
 #include "qmp-commands.h"
 #include "sysemu/blockdev.h"
 
index 6d83085..61fd714 100644 (file)
@@ -52,7 +52,9 @@ extern bool hax_allowed;
 #include "sysemu/block-backend.h"
 #include "net/net.h"
 #include "qmp-commands.h"
+#ifdef CONFIG_VIRTFS
 #include "fsdev/qemu-fsdev.h"
+#endif
 
 #include "emulator.h"
 #include "emulator_options.h"
@@ -408,6 +410,7 @@ const char *get_profile_name(void)
     return get_variable("profile");
 }
 
+#ifdef CONFIG_VIRTFS
 // host directory sharing path
 const char* get_host_directory_sharing_path(void)
 {
@@ -416,6 +419,12 @@ const char* get_host_directory_sharing_path(void)
 
     return sharing_path;
 }
+#else
+const char* get_host_directory_sharing_path(void)
+{
+    return NULL;
+}
+#endif
 
 // GPU virtualization
 static bool gpu_accel_enabled;
index 19f823c..209bbab 100644 (file)
 #include <string.h>
 #include <assert.h>
 #include <locale.h>
+
+#include "qemu/osdep.h"
 #include "qemu/queue.h"
 
 #include "emulator_options.h"
 #include "emul_state.h"
+
 #define LINE_LIMIT 1024
 #define TOKEN_LIMIT 1024
 #define OPTION_LIMIT 256
index 537efad..991d7b7 100644 (file)
@@ -36,6 +36,8 @@
 #import <Cocoa/Cocoa.h>
 #import <AVFoundation/AVFoundation.h>
 
+#include "qemu/osdep.h"
+#include "qemu/cutils.h"
 #include "qemu-common.h"
 #include "maru_camera.h"
 #include "maru_camera_convert.h"
index b16dc6f..0bb982b 100644 (file)
 #include <QFileInfo>
 #include <QDirIterator>
 #include <QImageReader>
+#define QObject qemu_QObject
 #include "maru_camera_image.h"
 #include "qemu/osdep.h"
 #include "ui/qemu-pixman.h"
+#undef QObject
 
 // Internal classes
 // TODO: Add debug info and logs
index 07d5df6..210d27d 100644 (file)
@@ -28,7 +28,9 @@
  */
 
 
+#include "qemu/osdep.h"
 #include "qemu-common.h"
+#include "qemu/cutils.h"
 #include "sysemu/hax.h"
 #include "maru_camera.h"
 #include "debug_ch.h"
index 37bb5f2..435b3de 100644 (file)
@@ -31,9 +31,9 @@
 #include "qemu/osdep.h"
 #include "hw/maru_device_ids.h"
 #include "maru_virtio_nfc.h"
-#include "debug_ch.h"
 #include "ecs/ecs.h"
 
+#include "debug_ch.h"
 MULTI_DEBUG_CHANNEL(qemu, nfc);
 
 #define NFC_DEVICE_NAME "virtio-nfc"
@@ -171,8 +171,8 @@ static void flush_nfc_recv_queue(void)
             break;
         }
 
-        INFO(">> virtqueue_pop. index: %d, out_num : %d, in_num : %d\n",
-             index, elem->out_num, elem->in_num);
+        INFO(">> virtqueue_pop. out_num : %d, in_num : %d\n",
+                elem->out_num, elem->in_num);
 
         memcpy(elem->in_sg[0].iov_base, &msginfo->info,
                sizeof(struct nfc_msg_info));
index ce68121..0fbfdb5 100644 (file)
@@ -45,12 +45,16 @@ void qemu_system_reset_request(void);
 #define MENU_ACTION_REBOOT      1
 void send_shutdown_request(int action);
 
+#define QObject qemu_QObject
 #include "util/net_helper.h"
 #include "util/osutil.h"
 #include "util/device_hotplug.h"
 #include "util/ui_operations.h"
+#undef QObject
 }
 
+#undef connect
+
 ContextMenu::ContextMenu(QWidget *parent) : QMenu(parent)
 {
     this->parent = (MainWindow *)parent;
@@ -89,7 +93,7 @@ ContextMenu::ContextMenu(QWidget *parent) : QMenu(parent)
     rebootTimer = new QTimer(this);
     rebootTimer->setInterval(HARDWARE_REBOOT_INTERVAL);
     rebootTimer->setSingleShot(true);
-    connect(rebootTimer, SIGNAL(timeout()), this, SLOT(slotDeviceReset()));
+    QObject::connect(rebootTimer, SIGNAL(timeout()), this, SLOT(slotDeviceReset()));
 
     createItems(this, this->parent->getUiInfo()->getMenuList());
 
@@ -230,7 +234,7 @@ void ContextMenu::createOnTopItem(QMenu *menu, MenuItem *item)
     actionOnTop->setIcon(QIcon(QPixmap(":/icons/alwaysontop.png")));
 #endif
     actionOnTop->setCheckable(true);
-    connect(actionOnTop, SIGNAL(triggered(bool)), this, SLOT(slotOnTop(bool)));
+    QObject::connect(actionOnTop, SIGNAL(triggered(bool)), this, SLOT(slotOnTop(bool)));
 
     /* shortcut */
     if (item->getShortcuts().isEmpty() == false) {
@@ -252,7 +256,7 @@ void ContextMenu::createMoveItem(QMenu *menu, MenuItem *item)
     actionMove = menu->addAction(
         menuName.isEmpty() ? MENU_MOVE_ITEM_TEXT : menuName);
     actionMove->setIcon(QIcon(QPixmap(":/icons/move.png")));
-    connect(actionMove, SIGNAL(triggered()), this, SLOT(slotMove()));
+    QObject::connect(actionMove, SIGNAL(triggered()), this, SLOT(slotMove()));
 
     /* shortcut */
     if (item->getShortcuts().isEmpty() == false) {
@@ -279,7 +283,7 @@ void ContextMenu::createSwitchItem(QMenu *menu, MenuItem *item)
 
         switchGroup = new QActionGroup(this);
         switchMapper = new QSignalMapper(this);
-        connect(switchMapper, SIGNAL(mapped(int)), this, SLOT(slotSwitch(int)));
+        QObject::connect(switchMapper, SIGNAL(mapped(int)), this, SLOT(slotSwitch(int)));
 
         /* shortcuts */
         QAction *switchAction = switchMenu->menuAction();
@@ -309,7 +313,7 @@ void ContextMenu::createSwitchItem(QMenu *menu, MenuItem *item)
             action->setActionGroup(switchGroup);
             action->setCheckable(true);
             switchMapper->setMapping(action, i);
-            connect(action, SIGNAL(triggered()), switchMapper, SLOT(map()));
+            QObject::connect(action, SIGNAL(triggered()), switchMapper, SLOT(map()));
         }
 
         action = (QAction *) switchMapper->mapping(
@@ -337,7 +341,7 @@ void ContextMenu::createScaleItem(QMenu *menu, MenuItem *item)
 
         scaleGroup = new QActionGroup(this);
         scaleMapper = new QSignalMapper(this);
-        connect(scaleMapper, SIGNAL(mapped(int)), this, SLOT(slotScale(int)));
+        QObject::connect(scaleMapper, SIGNAL(mapped(int)), this, SLOT(slotScale(int)));
 
         /* shortcuts */
         QAction *scaleAction = scaleMenu->menuAction();
@@ -374,7 +378,7 @@ void ContextMenu::createScaleItem(QMenu *menu, MenuItem *item)
             action->setActionGroup(scaleGroup);
             action->setCheckable(true);
             scaleMapper->setMapping(action, factorIter.key());
-            connect(action, SIGNAL(triggered()), scaleMapper, SLOT(map()));
+            QObject::connect(action, SIGNAL(triggered()), scaleMapper, SLOT(map()));
         }
 
         // TODO: interpolation
@@ -404,7 +408,7 @@ void ContextMenu::createControllerItem(QMenu *menu, MenuItem *item)
 
         controllerGroup = new QActionGroup(this);
         controllerMapper = new QSignalMapper(this);
-        connect(controllerMapper, SIGNAL(mapped(int)), this, SLOT(slotController(int)));
+        QObject::connect(controllerMapper, SIGNAL(mapped(int)), this, SLOT(slotController(int)));
 
         /* shortcuts */
         QAction *conAction = controllerMenu->menuAction();
@@ -433,14 +437,14 @@ void ContextMenu::createControllerItem(QMenu *menu, MenuItem *item)
         action->setActionGroup(controllerGroup);
         action->setCheckable(true);
         action->setChecked(true);
-        connect(action, SIGNAL(triggered()), this, SLOT(slotCloseCon()));
+        QObject::connect(action, SIGNAL(triggered()), this, SLOT(slotCloseCon()));
 
         for (int i = 0; i < conFormList.count(); i++) {
             action = controllerMenu->addAction(conFormList.at(i)->getName());
             action->setActionGroup(controllerGroup);
             action->setCheckable(true);
             controllerMapper->setMapping(action, i);
-            connect(action, SIGNAL(triggered()), controllerMapper, SLOT(map()));
+            QObject::connect(action, SIGNAL(triggered()), controllerMapper, SLOT(map()));
         }
     } else {
         qWarning("cannot create a controllerItem");
@@ -463,7 +467,7 @@ void ContextMenu::createHostKeyboardItem(QMenu *menu, MenuItem *item)
     QAction *hostKbdAction = keyboardMenu->addAction(MENU_ON_ITEM_TEXT);
     hostKbdAction->setActionGroup(keyboardGroup);
     hostKbdAction->setCheckable(true);
-    connect(hostKbdAction, SIGNAL(toggled(bool)), this, SLOT(slotHostKeyboard(bool)));
+    QObject::connect(hostKbdAction, SIGNAL(toggled(bool)), this, SLOT(slotHostKeyboard(bool)));
 
     /* shortcuts */
     // TODO:
@@ -600,7 +604,7 @@ QAction *ContextMenu::addGeneralAction(QMenu *menu,
 {
     QAction *action = menu->addAction(text);
     action->setIcon(icon);
-    connect(action, SIGNAL(triggered()), this, slot);
+    QObject::connect(action, SIGNAL(triggered()), this, slot);
 
     attachShortcut(action, shortcut, slot);
 
@@ -611,8 +615,8 @@ void ContextMenu::attachShortcut(
     QAction *action, QShortcut *shortcut, const char *slot)
 {
     if (action != NULL && shortcut != NULL) {
-        connect(shortcut, SIGNAL(activated()), this, slot);
-        connect(shortcut, SIGNAL(activatedAmbiguously()),
+        QObject::connect(shortcut, SIGNAL(activated()), this, slot);
+        QObject::connect(shortcut, SIGNAL(activatedAmbiguously()),
             this, SLOT(slotAmbiguousShortcut()));
 
         action->setShortcut(shortcut->key());
@@ -1095,7 +1099,7 @@ void ContextMenu::slotClose()
 
     longPressTimer->setInterval(CLOSE_POWER_KEY_INTERVAL);
     longPressTimer->setSingleShot(true);
-    connect(longPressTimer, SIGNAL(timeout()), this, SLOT(slotPwkeyRelease()));
+    QObject::connect(longPressTimer, SIGNAL(timeout()), this, SLOT(slotPwkeyRelease()));
     longPressTimer->start();
 }
 
index d54565e..0a419f2 100644 (file)
 #include "qapi/qmp/qstring.h"
 #include "sysemu/block-backend.h"
 
+#ifdef CONFIG_VIRTFS
+#include "fsdev/qemu-fsdev.h"
+#endif
+
 #include "emulator.h"
 #include "emul_state.h"
 #include "device_hotplug.h"
@@ -47,7 +51,6 @@
 #define FS_MOUNT_TAG                "fileshare"
 
 #include "debug_ch.h"
-
 MULTI_DEBUG_CHANNEL(qemu, hotplug);
 
 struct maru_device_hotplug {
@@ -65,6 +68,8 @@ static struct maru_device_hotplug *state;
 
 static bool do_host_keyboard_attach(void)
 {
+    LOG_INFO("%s\n", __func__);
+
     QDict *qdict = qdict_new();
     qdict_put(qdict, "driver", qstring_from_str(HOST_KEYBOARD_DRIVER));
     qdict_put(qdict, "id", qstring_from_str(HOST_KEYBOARD_DEFAULT_ID));
@@ -80,7 +85,10 @@ static bool do_host_keyboard_attach(void)
 
 static bool do_host_keyboard_detach(void)
 {
+    LOG_INFO("%s\n", __func__);
+
     QDict *qdict = qdict_new();
+    LOG_INFO("%s\n", __func__);
     qdict_put(qdict, "id", qstring_from_str(HOST_KEYBOARD_DEFAULT_ID));
 
     qmp_marshal_device_del(qdict, NULL, &error_abort);
@@ -153,6 +161,7 @@ static bool do_sdcard_detach(const char * const file)
     return true;
 }
 
+#ifdef CONFIG_VIRTFS
 static bool do_hds_attach(const char * const id)
 {
     QemuOpts *fsdev;
@@ -229,6 +238,7 @@ static bool do_hds_detach(const char * const id)
 
     return true;
 }
+#endif
 
 void do_hotplug(int command, void *opaque, size_t size)
 {
@@ -259,10 +269,14 @@ static void device_hotplug_handler(EventNotifier *e)
         do_sdcard_detach(state->opaque);
         break;
     case ATTACH_HDS:
+#ifdef CONFIG_VIRTFS
         do_hds_attach(state->opaque);
+#endif
         break;
     case DETACH_HDS:
+#ifdef CONFIG_VIRTFS
         do_hds_detach(state->opaque);
+#endif
         break;
     default:
         break;
index a19bf75..a76edfc 100644 (file)
 #include <windows.h>
 
 #include "png.h"
-#include "qemu/error-report.h"
 
+#include "qemu/osdep.h"
 #include "qemu-common.h"
+#include "qemu/error-report.h"
 #include "osutil.h"
 #include "emulator.h"
 #include "emul_state.h"