OSDN Git Service

shared/hciemu: Fix sending a proper vhci create request for new kernels
authorJohan Hedberg <johan.hedberg@intel.com>
Thu, 12 Sep 2013 14:42:36 +0000 (17:42 +0300)
committerJohan Hedberg <johan.hedberg@intel.com>
Thu, 12 Sep 2013 14:43:20 +0000 (17:43 +0300)
src/shared/hciemu.c

index 90c21f3..0ea191f 100644 (file)
@@ -35,6 +35,9 @@
 
 #include <glib.h>
 
+#include <bluetooth/bluetooth.h>
+#include <bluetooth/hci.h>
+
 #include "monitor/bt.h"
 #include "emulator/btdev.h"
 #include "emulator/bthost.h"
@@ -201,6 +204,8 @@ static guint create_source_btdev(int fd, struct btdev *btdev)
 static bool create_vhci(struct hciemu *hciemu)
 {
        struct btdev *btdev;
+       uint8_t create_req[2];
+       ssize_t written;
        int fd;
 
        btdev = btdev_create(hciemu->btdev_type, 0x00);
@@ -215,6 +220,15 @@ static bool create_vhci(struct hciemu *hciemu)
                return false;
        }
 
+       create_req[0] = HCI_VENDOR_PKT;
+       create_req[1] = HCI_BREDR;
+       written = write(fd, create_req, sizeof(create_req));
+       if (written < 0) {
+               close(fd);
+               btdev_destroy(btdev);
+               return false;
+       }
+
        hciemu->master_dev = btdev;
 
        hciemu->master_source = create_source_btdev(fd, btdev);