From f02201ce9abdc8b21dee6870bf978ef0ba988a2f Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Sat, 29 Dec 2018 19:19:49 +0100 Subject: sys/linux: describe /dev/vhci interface --- sys/linux/socket_bluetooth.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'sys/linux/socket_bluetooth.txt') diff --git a/sys/linux/socket_bluetooth.txt b/sys/linux/socket_bluetooth.txt index e88d5bdf9..6b75fd4cf 100644 --- a/sys/linux/socket_bluetooth.txt +++ b/sys/linux/socket_bluetooth.txt @@ -13,6 +13,7 @@ include include include include +include include include @@ -28,6 +29,33 @@ setsockopt$bt_hci_HCI_TIME_STAMP(fd sock_bt_hci, level const[0], opt const[HCI_T setsockopt$bt_hci_HCI_FILTER(fd sock_bt_hci, level const[0], opt const[HCI_FILTER], arg ptr[in, hci_ufilter], arglen len[arg]) getsockopt$bt_hci(fd sock, level const[0], opt flags[bt_hci_sockopt], arg buffer[out], arglen ptr[inout, len[arg, int32]]) +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_generic[HCI_EVENT_PKT] + HCI_ACLDATA_PKT vhci_command_generic[HCI_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_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 + +define HCI_EXTERNAL_CONFIG 0x40 +define HCI_RAW_DEVICE 0x80 + resource sock_bt_sco[sock_bt] syz_init_net_socket$bt_sco(fam const[AF_BLUETOOTH], type const[SOCK_SEQPACKET], proto const[BTPROTO_SCO]) sock_bt_sco -- cgit mrf-deployment