aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/dev_vhci.txt
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@google.com>2020-06-12 18:10:53 +0200
committerAndrey Konovalov <andreyknvl@gmail.com>2020-06-12 18:42:12 +0200
commitf4724dd308db90b80e69e5374332ef8c92bc38ec (patch)
tree509a3e5003a2bbe3cf78bcad4514b29ee54b6624 /sys/linux/dev_vhci.txt
parent835efa70b07063625602006ba7a36238a8cd4bd1 (diff)
sys/linux: move vhci stuff to dev_vhci.txt
Diffstat (limited to 'sys/linux/dev_vhci.txt')
-rw-r--r--sys/linux/dev_vhci.txt35
1 files changed, 35 insertions, 0 deletions
diff --git a/sys/linux/dev_vhci.txt b/sys/linux/dev_vhci.txt
index 90257deae..48ef737d6 100644
--- a/sys/linux/dev_vhci.txt
+++ b/sys/linux/dev_vhci.txt
@@ -6,6 +6,41 @@ include <net/bluetooth/hci_sock.h>
include <net/bluetooth/sco.h>
include <net/bluetooth/hci.h>
+resource fd_vhci[fd]
+openat$vhci(fd const[AT_FDCWD], file ptr[in, string["/dev/vhci"]], flags flags[open_flags]) fd_vhci
+write$vhci(fd fd_vhci, data ptr[in, vhci_command], size bytesize[data])
+
+vhci_command [
+ HCI_EVENT_PKT vhci_command_event_pkt
+ HCI_ACLDATA_PKT vhci_command_acldata_pkt
+ HCI_SCODATA_PKT vhci_command_generic[HCI_SCODATA_PKT]
+ HCI_VENDOR_PKT vhci_command_vendor_pkt
+] [varlen]
+
+type vhci_command_generic[CMD] {
+ cmd const[CMD, int8]
+# TODO: what's the format of these packets? Is there anything interesting?
+ data array[int8]
+}
+
+vhci_command_event_pkt {
+ cmd const[HCI_EVENT_PKT, int8]
+ hdr hci_event_hdr_un
+}
+
+vhci_command_acldata_pkt {
+ cmd const[HCI_ACLDATA_PKT, int8]
+ acl_hdr hci_acl_hdr[vhci_command_acldata_pkt:l2cap_hdr]
+ l2cap_hdr l2cap_hdr_un
+}
+
+vhci_command_vendor_pkt {
+ cmd const[HCI_VENDOR_PKT, int8]
+ opcode flags[vhci_vendor_pkt_opcode, int8]
+}
+
+vhci_vendor_pkt_opcode = HCI_PRIMARY, HCI_AMP, HCI_EXTERNAL_CONFIG, HCI_RAW_DEVICE
+
type hci_acl_hdr[DATA] {
bc int16:2
pb int16:2