summary refs log tree commit diff stats
path: root/hw/bt/core.c
diff options
context:
space:
mode:
authorAnthony Liguori <anthony@codemonkey.ws>2013-09-11 14:46:21 -0500
committerAnthony Liguori <anthony@codemonkey.ws>2013-09-11 14:46:21 -0500
commita640f07c0d03bfa3031af1fc0a32b0d779917d17 (patch)
treeaef05faa1cb19136263cd28fcd061ff71ae68144 /hw/bt/core.c
parentf69f0bcac951f3c3089246695874b84ea8967936 (diff)
parentadbecc89731cf3e0ae656d50ea9fa58c589c4bdc (diff)
downloadfocaccia-qemu-a640f07c0d03bfa3031af1fc0a32b0d779917d17.tar.gz
focaccia-qemu-a640f07c0d03bfa3031af1fc0a32b0d779917d17.zip
Merge remote-tracking branch 'kraxel/usb.89' into staging
# By Gerd Hoffmann (2) and Miroslav Rezanina (2)
# Via Gerd Hoffmann
* kraxel/usb.89:
  ehci: save device pointer in EHCIState
  Remove dev-bluetooth.c dependency from vl.c
  Preparation for usb-bt-dongle conditional build
  usb: sanity check setup_index+setup_len in post_load

Message-id: 1378806073-25197-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
Diffstat (limited to 'hw/bt/core.c')
-rw-r--r--hw/bt/core.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/hw/bt/core.c b/hw/bt/core.c
index 49012e028c..0ffc948898 100644
--- a/hw/bt/core.c
+++ b/hw/bt/core.c
@@ -119,3 +119,26 @@ void bt_device_done(struct bt_device_s *dev)
 
     *p = dev->next;
 }
+
+static struct bt_vlan_s {
+    struct bt_scatternet_s net;
+    int id;
+    struct bt_vlan_s *next;
+} *first_bt_vlan;
+
+/* find or alloc a new bluetooth "VLAN" */
+struct bt_scatternet_s *qemu_find_bt_vlan(int id)
+{
+    struct bt_vlan_s **pvlan, *vlan;
+    for (vlan = first_bt_vlan; vlan != NULL; vlan = vlan->next) {
+        if (vlan->id == id)
+            return &vlan->net;
+    }
+    vlan = g_malloc0(sizeof(struct bt_vlan_s));
+    vlan->id = id;
+    pvlan = &first_bt_vlan;
+    while (*pvlan != NULL)
+        pvlan = &(*pvlan)->next;
+    *pvlan = vlan;
+    return &vlan->net;
+}