1cb6bf4a7SHasso Tepper.\" $NetBSD: bluetooth.4,v 1.9 2007/11/28 20:16:12 plunky Exp $ 21be1f152SSascha Wildner.\" $DragonFly: src/share/man/man4/bluetooth.4,v 1.4 2008/04/14 08:17:09 swildner Exp $ 3cb6bf4a7SHasso Tepper.\" 4cb6bf4a7SHasso Tepper.\" Copyright (c) 2006 Itronix Inc. 5cb6bf4a7SHasso Tepper.\" All rights reserved. 6cb6bf4a7SHasso Tepper.\" 7cb6bf4a7SHasso Tepper.\" Written by Iain Hibbert for Itronix Inc. 8cb6bf4a7SHasso Tepper.\" 9cb6bf4a7SHasso Tepper.\" Redistribution and use in source and binary forms, with or without 10cb6bf4a7SHasso Tepper.\" modification, are permitted provided that the following conditions 11cb6bf4a7SHasso Tepper.\" are met: 12cb6bf4a7SHasso Tepper.\" 1. Redistributions of source code must retain the above copyright 13cb6bf4a7SHasso Tepper.\" notice, this list of conditions and the following disclaimer. 14cb6bf4a7SHasso Tepper.\" 2. Redistributions in binary form must reproduce the above copyright 15cb6bf4a7SHasso Tepper.\" notice, this list of conditions and the following disclaimer in the 16cb6bf4a7SHasso Tepper.\" documentation and/or other materials provided with the distribution. 17cb6bf4a7SHasso Tepper.\" 3. The name of Itronix Inc. may not be used to endorse 18cb6bf4a7SHasso Tepper.\" or promote products derived from this software without specific 19cb6bf4a7SHasso Tepper.\" prior written permission. 20cb6bf4a7SHasso Tepper.\" 21cb6bf4a7SHasso Tepper.\" THIS SOFTWARE IS PROVIDED BY ITRONIX INC. ``AS IS'' AND 22cb6bf4a7SHasso Tepper.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 23cb6bf4a7SHasso Tepper.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24cb6bf4a7SHasso Tepper.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY 25cb6bf4a7SHasso Tepper.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26cb6bf4a7SHasso Tepper.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27cb6bf4a7SHasso Tepper.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 28cb6bf4a7SHasso Tepper.\" ON ANY THEORY OF LIABILITY, WHETHER IN 29cb6bf4a7SHasso Tepper.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30cb6bf4a7SHasso Tepper.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31cb6bf4a7SHasso Tepper.\" POSSIBILITY OF SUCH DAMAGE. 32cb6bf4a7SHasso Tepper.\" 33cb6bf4a7SHasso Tepper.\" 34cb6bf4a7SHasso Tepper.Dd December 28, 2007 35cb6bf4a7SHasso Tepper.Dt BLUETOOTH 4 36cb6bf4a7SHasso Tepper.Os 37cb6bf4a7SHasso Tepper.Sh NAME 38cb6bf4a7SHasso Tepper.Nm bluetooth 39cb6bf4a7SHasso Tepper.Nd Bluetooth Protocol Family 40cb6bf4a7SHasso Tepper.Sh SYNOPSIS 41cb6bf4a7SHasso Tepper.In netbt/bluetooth.h 42cb6bf4a7SHasso Tepper.In netbt/hci.h 43cb6bf4a7SHasso Tepper.In netbt/l2cap.h 44cb6bf4a7SHasso Tepper.In netbt/rfcomm.h 45cb6bf4a7SHasso Tepper.Sh DESCRIPTION 46cb6bf4a7SHasso TepperThe 47cb6bf4a7SHasso Tepper.Tn Bluetooth 48cb6bf4a7SHasso TepperProtocol Family 49cb6bf4a7SHasso Tepper.Sh ADDRESSING 50cb6bf4a7SHasso TepperBluetooth Protocol Family sockets all use a 51cb6bf4a7SHasso Tepper.Ar sockaddr_bt 52cb6bf4a7SHasso Tepperstructure which contains a Bluetooth Device Address (BDADDR). 53cb6bf4a7SHasso TepperThis consists of a six byte string in least significant byte 54cb6bf4a7SHasso Tepperfirst order. 550133958cSSascha Wildner.Bd -literal -offset indent 56cb6bf4a7SHasso Tepperstruct sockaddr_bt { 57cb6bf4a7SHasso Tepper uint8_t bt_len; 58cb6bf4a7SHasso Tepper sa_family_t bt_family; 59cb6bf4a7SHasso Tepper bdaddr_t bt_bdaddr; 60cb6bf4a7SHasso Tepper uint16_t bt_psm; 61cb6bf4a7SHasso Tepper uint8_t bt_channel; 62cb6bf4a7SHasso Tepper}; 63cb6bf4a7SHasso Tepper.Ed 64cb6bf4a7SHasso Tepper.Pp 65cb6bf4a7SHasso TepperThe local address used by the socket can be set with 66cb6bf4a7SHasso Tepper.Xr bind 2 . 67cb6bf4a7SHasso Tepper.Sh PROTOCOLS 68cb6bf4a7SHasso TepperProtocols included are: 69cb6bf4a7SHasso Tepper.Bl -tag -width XX 70cb6bf4a7SHasso Tepper.It Cm BTPROTO_HCI 71cb6bf4a7SHasso TepperThis gives raw access to the Host Controller Interface of local devices 72cb6bf4a7SHasso Tepperusing the HCI protocol as described in the Bluetooth Core Specification. 73cb6bf4a7SHasso TepperAny user may open an HCI socket but there are limitations on what 74cb6bf4a7SHasso Tepperunprivileged users can send and receive. The local address specified by 75cb6bf4a7SHasso Tepper.Xr bind 2 76cb6bf4a7SHasso Teppermay be used to select the device that the socket will receive packets from. If 77cb6bf4a7SHasso Tepper.Dv BDADDR_ANY 78cb6bf4a7SHasso Tepperis specified then the socket will receive packets from all 79cb6bf4a7SHasso Tepperdevices on the system. 80cb6bf4a7SHasso Tepper.Xr connect 2 81cb6bf4a7SHasso Teppermay be used to create connections such that packets sent with 82cb6bf4a7SHasso Tepper.Xr send 2 83cb6bf4a7SHasso Tepperwill be delivered to the specified device, otherwise 84cb6bf4a7SHasso Tepper.Xr sendto 2 85cb6bf4a7SHasso Teppershould be used. 86cb6bf4a7SHasso Tepper.Pp 87cb6bf4a7SHasso TepperThe 88cb6bf4a7SHasso Tepper.Ar bt_psm 89cb6bf4a7SHasso Tepperand 90cb6bf4a7SHasso Tepper.Ar bt_channel 91cb6bf4a7SHasso Tepperfields in the sockaddr_bt structure are ignored by HCI protocol code 92cb6bf4a7SHasso Tepperand should be set to zero. 93cb6bf4a7SHasso Tepper.Pp 94cb6bf4a7SHasso TepperHCI socket options: 95cb6bf4a7SHasso Tepper.Bl -tag -width XX 96cb6bf4a7SHasso Tepper.It Dv SO_HCI_EVT_FILTER Op Ar struct hci_filter 971be1f152SSascha WildnerThis filter controls which events will be received at the socket. See 98cb6bf4a7SHasso Tepper.In netbt/hci.h 99cb6bf4a7SHasso Tepperfor available events. By default, Command_Complete and Command_Status 100cb6bf4a7SHasso Tepperevents only are enabled. 101cb6bf4a7SHasso Tepper.It Dv SO_HCI_PKT_FILTER Op Ar struct hci_filter 102cb6bf4a7SHasso TepperThis filter controls the type of packets that will be received at the 103cb6bf4a7SHasso Teppersocket. By default, Event packets only are enabled. 104cb6bf4a7SHasso Tepper.It Dv SO_HCI_DIRECTION Op Ar int 105cb6bf4a7SHasso TepperWhen set, this enables control messages on packets received at the socket 106cb6bf4a7SHasso Tepperindicating the direction of travel of the packet. 107cb6bf4a7SHasso Tepper.El 108cb6bf4a7SHasso Tepper.Pp 109cb6bf4a7SHasso TepperHCI 110cb6bf4a7SHasso Tepper.Xr sysctl 8 111cb6bf4a7SHasso Teppercontrols: 112cb6bf4a7SHasso Tepper.Bl -tag -width XXX 113666c0375SSascha Wildner.It Va net.bluetooth.hci.sendspace 114cb6bf4a7SHasso TepperDefault send buffer size for HCI sockets. 115666c0375SSascha Wildner.It Va net.bluetooth.hci.recvspace 116cb6bf4a7SHasso TepperDefault receive buffer size for HCI sockets 117666c0375SSascha Wildner.It Va net.bluetooth.hci.acl_expiry 118cb6bf4a7SHasso TepperIf set, this is the time in seconds after which unused ACL data connections 119cb6bf4a7SHasso Tepperwill be expired. If zero, connections will not be closed. 120666c0375SSascha Wildner.It Va net.bluetooth.hci.memo_expiry 121cb6bf4a7SHasso TepperTime, in seconds, that the system will keep records of Bluetooth devices 1221be1f152SSascha Wildnerin the vicinity after an Inquiry Response packet has been received. This 123cb6bf4a7SHasso Tepperinformation is used for routing purposes. 124666c0375SSascha Wildner.It Va net.bluetooth.hci.eventq_max 125cb6bf4a7SHasso TepperThe maximum number of packets on the low level Event queue. 126666c0375SSascha Wildner.It Va net.bluetooth.hci.aclrxq_max 127cb6bf4a7SHasso TepperThe maximum number of packets on the low level ACL queue. 128666c0375SSascha Wildner.It Va net.bluetooth.hci.scorxq_max 129cb6bf4a7SHasso TepperThe maximum number of packets on the low level SCO queue. 130cb6bf4a7SHasso Tepper.El 131cb6bf4a7SHasso Tepper.It Cm BTPROTO_L2CAP 132cb6bf4a7SHasso TepperL2CAP sockets give sequential packet access over channels to other Bluetooth 133cb6bf4a7SHasso Tepperdevices and make use of the 134cb6bf4a7SHasso Tepper.Ar bt_psm 135cb6bf4a7SHasso Tepperfield in the 136cb6bf4a7SHasso Tepper.Ar sockaddr_bt 1371be1f152SSascha Wildnerstructure to select the Protocol/Service Multiplexer to specify when making 138cb6bf4a7SHasso Tepperconnections. 139cb6bf4a7SHasso Tepper.Pp 140cb6bf4a7SHasso TepperL2CAP socket options: 141cb6bf4a7SHasso Tepper.Bl -tag -width XXX 142cb6bf4a7SHasso Tepper.It Dv SO_L2CAP_IMTU Op Ar uint16_t 143cb6bf4a7SHasso TepperIncoming MTU 144cb6bf4a7SHasso Tepper.It Dv SO_L2CAP_OMTU Op Ar uint16_t 145cb6bf4a7SHasso TepperOutgoing MTU (read-only) 146cb6bf4a7SHasso Tepper.It Dv SO_L2CAP_LM Op Ar int 147cb6bf4a7SHasso TepperLink Mode. 148cb6bf4a7SHasso TepperThe following bits may be set: 149cb6bf4a7SHasso Tepper.Pp 150cb6bf4a7SHasso Tepper.Bl -tag -compact -width ".Dv L2CAP_LM_ENCRYPT" 151cb6bf4a7SHasso Tepper.It Dv L2CAP_LM_AUTH 152cb6bf4a7SHasso TepperRequest authentication 153cb6bf4a7SHasso Tepper.Pq pairing . 154cb6bf4a7SHasso Tepper.It Dv L2CAP_LM_ENCRYPT 155cb6bf4a7SHasso TepperRequest encryption 156cb6bf4a7SHasso Tepper.Pq includes auth . 157cb6bf4a7SHasso Tepper.It Dv L2CAP_LM_SECURE 158cb6bf4a7SHasso TepperRequest secured link 159cb6bf4a7SHasso Tepper.Pq encryption, plus change link key . 160cb6bf4a7SHasso Tepper.El 161cb6bf4a7SHasso Tepper.Pp 162cb6bf4a7SHasso TepperLink mode settings will be applied to the baseband link during L2CAP 163cb6bf4a7SHasso Tepperconnection establishment. 164cb6bf4a7SHasso TepperIf the L2CAP connection is already established, 16507bdd24aSSascha Wildner.Er EINPROGRESS 166cb6bf4a7SHasso Teppermay be returned, and it is not possible to guarantee that data already queued 167cb6bf4a7SHasso Tepper.Pq from either end 168cb6bf4a7SHasso Tepperwill not be delivered. 169cb6bf4a7SHasso TepperIf the mode change fails, the L2CAP connection will be aborted. 170cb6bf4a7SHasso Tepper.El 171cb6bf4a7SHasso Tepper.Pp 172cb6bf4a7SHasso TepperL2CAP 173cb6bf4a7SHasso Tepper.Xr sysctl 8 174cb6bf4a7SHasso Teppercontrols: 175cb6bf4a7SHasso Tepper.Bl -tag -width XXX 176666c0375SSascha Wildner.It Va net.bluetooth.l2cap.sendspace 177cb6bf4a7SHasso TepperDefault send buffer size for L2CAP sockets. 178666c0375SSascha Wildner.It Va net.bluetooth.l2cap.recvspace 179cb6bf4a7SHasso TepperDefault receive buffer size for L2CAP sockets. 180666c0375SSascha Wildner.It Va net.bluetooth.l2cap.rtx 181cb6bf4a7SHasso TepperResponse Timeout eXpiry for L2CAP signals. 182666c0375SSascha Wildner.It Va net.bluetooth.l2cap.ertx 183cb6bf4a7SHasso TepperExtended Response Timeout eXpiry for L2CAP signals. 184cb6bf4a7SHasso Tepper.El 185cb6bf4a7SHasso Tepper.It Cm BTPROTO_RFCOMM 186cb6bf4a7SHasso TepperRFCOMM sockets provide streamed data over Bluetooth connection and make use of the 187cb6bf4a7SHasso Tepper.Ar bt_psm , 188cb6bf4a7SHasso Tepperand 189cb6bf4a7SHasso Tepper.Ar bt_channel 190cb6bf4a7SHasso Tepperfields in the 191cb6bf4a7SHasso Tepper.Ar sockaddr_bt 192cb6bf4a7SHasso Tepperstructure. 193cb6bf4a7SHasso TepperThe channel number must be between 1 and 30 inclusive except that if the 194cb6bf4a7SHasso Tepperspecial value 195cb6bf4a7SHasso Tepper.Dv RFCOMM_CHANNEL_ANY 196cb6bf4a7SHasso Tepperis bound, when the 197cb6bf4a7SHasso Tepper.Xr listen 2 198cb6bf4a7SHasso Teppercall is made, the first unused channel for the relevant bdaddr will be 199cb6bf4a7SHasso Tepperallocated and may be discovered using the 200cb6bf4a7SHasso Tepper.Xr getsockname 2 201cb6bf4a7SHasso Teppercall. 202cb6bf4a7SHasso TepperIf no PSM is specified, a default value of 203cb6bf4a7SHasso Tepper.Dv L2CAP_PSM_RFCOMM 204cb6bf4a7SHasso Tepper(0x0003) will be used. 205cb6bf4a7SHasso Tepper.Pp 206cb6bf4a7SHasso TepperRFCOMM socket options: 207cb6bf4a7SHasso Tepper.Bl -tag -width XXX 208cb6bf4a7SHasso Tepper.It Dv SO_RFCOMM_MTU Op Ar uint16_t 209cb6bf4a7SHasso TepperMaximum Frame Size to use for this link. 210cb6bf4a7SHasso Tepper.It Dv SO_RFCOMM_LM Op Ar int 211cb6bf4a7SHasso TepperLink Mode. 212cb6bf4a7SHasso TepperThe following bits may be set at any time: 213cb6bf4a7SHasso Tepper.Pp 214cb6bf4a7SHasso Tepper.Bl -tag -compact -width ".Dv RFCOMM_LM_ENCRYPT" 215cb6bf4a7SHasso Tepper.It Dv RFCOMM_LM_AUTH 216cb6bf4a7SHasso TepperRequest authentication 217cb6bf4a7SHasso Tepper.Pq pairing . 218cb6bf4a7SHasso Tepper.It Dv RFCOMM_LM_ENCRYPT 219cb6bf4a7SHasso TepperRequest encryption 220cb6bf4a7SHasso Tepper.Pq includes auth . 221cb6bf4a7SHasso Tepper.It Dv RFCOMM_LM_SECURE 222cb6bf4a7SHasso TepperRequest secured link 223cb6bf4a7SHasso Tepper.Pq encryption, plus change link key . 224cb6bf4a7SHasso Tepper.El 225cb6bf4a7SHasso Tepper.Pp 226cb6bf4a7SHasso TepperLink mode settings will be applied to the baseband link during RFCOMM 227cb6bf4a7SHasso Tepperconnection establishment. 228cb6bf4a7SHasso TepperIf the RFCOMM connection is already established, 22907bdd24aSSascha Wildner.Er EINPROGRESS 230cb6bf4a7SHasso Teppermay be returned, and it is not possible to guarantee that data already queued 231cb6bf4a7SHasso Tepper.Pq from either end 232cb6bf4a7SHasso Tepperwill not be delivered. 233cb6bf4a7SHasso TepperIf the mode change fails, the RFCOMM connection will be aborted. 234cb6bf4a7SHasso Tepper.El 235cb6bf4a7SHasso Tepper.Pp 236cb6bf4a7SHasso TepperRFCOMM 237cb6bf4a7SHasso Tepper.Xr sysctl 8 238cb6bf4a7SHasso Teppercontrols: 239cb6bf4a7SHasso Tepper.Bl -tag -width XXX 240666c0375SSascha Wildner.It Va net.bluetooth.rfcomm.sendspace 241cb6bf4a7SHasso TepperDefault send buffer size for RFCOMM sockets. 242666c0375SSascha Wildner.It Va net.bluetooth.rfcomm.recvspace 243cb6bf4a7SHasso TepperDefault receive buffer size for RFCOMM sockets. 244666c0375SSascha Wildner.It Va net.bluetooth.rfcomm.default_mtu 245cb6bf4a7SHasso TepperMaximum Frame Size (N1) 246666c0375SSascha Wildner.It Va net.bluetooth.rfcomm.ack_timeout 247cb6bf4a7SHasso TepperAcknowledgement Timer (T1) 248666c0375SSascha Wildner.It Va net.bluetooth.rfcomm.mcc_timeout 249cb6bf4a7SHasso TepperResponse Timer for Multiplexer Control Channel (T2) 250cb6bf4a7SHasso Tepper.El 251cb6bf4a7SHasso Tepper.It Cm BTPROTO_SCO 252cb6bf4a7SHasso TepperSCO sockets provide sequential packet access to time sensitive data 253cb6bf4a7SHasso Tepperchannels over Bluetooth connections, typically used for audio data. 254cb6bf4a7SHasso Tepper.Pp 255cb6bf4a7SHasso TepperSCO socket options: 256cb6bf4a7SHasso Tepper.Bl -tag -width XXX 257cb6bf4a7SHasso Tepper.It Dv SO_SCO_MTU Op Ar uint16_t 258cb6bf4a7SHasso TepperMaximum packet size for use on this link. 259cb6bf4a7SHasso TepperThis is read-only and will be set by the protocol code when a connection is made. 260cb6bf4a7SHasso TepperCurrently, due to limitations in the 261cb6bf4a7SHasso Tepper.Xr ubt 4 262cb6bf4a7SHasso Tepperdriver, the SCO protocol code will only accept packets with 263cb6bf4a7SHasso Tepperexactly this size. 264cb6bf4a7SHasso Tepper.It Dv SO_SCO_HANDLE Op Ar uint16_t 265cb6bf4a7SHasso TepperConnection handle for this link. 266cb6bf4a7SHasso TepperThis is read-only and provided for informational purposes only. 267cb6bf4a7SHasso Tepper.El 268cb6bf4a7SHasso Tepper.Pp 269cb6bf4a7SHasso TepperSCO 270cb6bf4a7SHasso Tepper.Xr sysctl 8 271cb6bf4a7SHasso Teppercontrols: 272cb6bf4a7SHasso Tepper.Bl -tag -width XXX 273666c0375SSascha Wildner.It Va net.bluetooth.sco.sendspace 274cb6bf4a7SHasso TepperDefault send buffer size for SCO sockets. 275666c0375SSascha Wildner.It Va net.bluetooth.sco.recvspace 276cb6bf4a7SHasso TepperDefault receive buffer size for SCO sockets. 277cb6bf4a7SHasso Tepper.El 278cb6bf4a7SHasso Tepper.El 279cb6bf4a7SHasso Tepper.Sh INFORMATION 280cb6bf4a7SHasso TepperThe following 281cb6bf4a7SHasso Tepper.Xr ioctl 2 282cb6bf4a7SHasso Teppercalls may be used to manipulate Bluetooth devices. The 283cb6bf4a7SHasso Tepper.Xr ioctl 2 284cb6bf4a7SHasso Teppermust be made on 285cb6bf4a7SHasso Tepper.Cm BTPROTO_HCI 286cb6bf4a7SHasso Teppersockets. All of the requests take a 287cb6bf4a7SHasso Tepper.Ar btreq 288cb6bf4a7SHasso Tepperstructure defined as follows as their parameter and unless otherwise 289cb6bf4a7SHasso Tepperspecified, use the 290cb6bf4a7SHasso Tepper.Ar btr_name 291cb6bf4a7SHasso Tepperfield to identify the device. 292*179adfb5SSascha Wildner.Bd -literal 293cb6bf4a7SHasso Tepperstruct btreq { 294cb6bf4a7SHasso Tepper char btr_name[HCI_DEVNAME_SIZE]; /* device name */ 295cb6bf4a7SHasso Tepper 296cb6bf4a7SHasso Tepper union { 297cb6bf4a7SHasso Tepper struct { 298cb6bf4a7SHasso Tepper bdaddr_t btri_bdaddr; /* device bdaddr */ 299cb6bf4a7SHasso Tepper uint16_t btri_flags; /* flags */ 300cb6bf4a7SHasso Tepper uint16_t btri_num_cmd; /* # of free cmd buffers */ 301cb6bf4a7SHasso Tepper uint16_t btri_num_acl; /* # of free ACL buffers */ 302cb6bf4a7SHasso Tepper uint16_t btri_num_sco; /* # of free SCO buffers */ 303cb6bf4a7SHasso Tepper uint16_t btri_acl_mtu; /* ACL mtu */ 304cb6bf4a7SHasso Tepper uint16_t btri_sco_mtu; /* SCO mtu */ 305cb6bf4a7SHasso Tepper uint16_t btri_link_policy; /* Link Policy */ 306cb6bf4a7SHasso Tepper uint16_t btri_packet_type; /* Packet Type */ 307cb6bf4a7SHasso Tepper } btri; 308cb6bf4a7SHasso Tepper struct bt_stats btrs; /* unit stats */ 309cb6bf4a7SHasso Tepper } btru; 310cb6bf4a7SHasso Tepper}; 311cb6bf4a7SHasso Tepper 312cb6bf4a7SHasso Tepper#define btr_flags btru.btri.btri_flags 313cb6bf4a7SHasso Tepper#define btr_bdaddr btru.btri.btri_bdaddr 314cb6bf4a7SHasso Tepper#define btr_num_cmd btru.btri.btri_num_cmd 315cb6bf4a7SHasso Tepper#define btr_num_acl btru.btri.btri_num_acl 316cb6bf4a7SHasso Tepper#define btr_num_sco btru.btri.btri_num_sco 317cb6bf4a7SHasso Tepper#define btr_acl_mtu btru.btri.btri_acl_mtu 318cb6bf4a7SHasso Tepper#define btr_sco_mtu btru.btri.btri_sco_mtu 319cb6bf4a7SHasso Tepper#define btr_link_policy btru.btri.btri_link_policy 320cb6bf4a7SHasso Tepper#define btr_packet_type btru.btri.btri_packet_type 321cb6bf4a7SHasso Tepper#define btr_stats btru.btrs 322cb6bf4a7SHasso Tepper 323cb6bf4a7SHasso Tepper/* btr_flags */ 324cb6bf4a7SHasso Tepper#define BTF_UP (1\*[Lt]\*[Lt]0) /* unit is up */ 325cb6bf4a7SHasso Tepper#define BTF_RUNNING (1\*[Lt]\*[Lt]1) /* unit is running */ 326cb6bf4a7SHasso Tepper#define BTF_XMIT_CMD (1\*[Lt]\*[Lt]2) /* transmitting CMD packets */ 327cb6bf4a7SHasso Tepper#define BTF_XMIT_ACL (1\*[Lt]\*[Lt]3) /* transmitting ACL packets */ 328cb6bf4a7SHasso Tepper#define BTF_XMIT_SCO (1\*[Lt]\*[Lt]4) /* transmitting SCO packets */ 329cb6bf4a7SHasso Tepper#define BTF_INIT_BDADDR (1\*[Lt]\*[Lt]5) /* waiting for bdaddr */ 330cb6bf4a7SHasso Tepper#define BTF_INIT_BUFFER_SIZE (1\*[Lt]\*[Lt]6) /* waiting for buffer size */ 331cb6bf4a7SHasso Tepper#define BTF_INIT_FEATURES (1\*[Lt]\*[Lt]7) /* waiting for features */ 332cb6bf4a7SHasso Tepper#define BTF_NOOP_ON_RESET (1\*[Lt]\*[Lt]8) /* wait for No-op on reset */ 333cb6bf4a7SHasso Tepper#define BTF_INIT_COMMANDS (1\*[Lt]\*[Lt]9) /* waiting for supported commands */ 334cb6bf4a7SHasso Tepper 335cb6bf4a7SHasso Tepperstruct bt_stats { 336cb6bf4a7SHasso Tepper uint32_t err_tx; 337cb6bf4a7SHasso Tepper uint32_t err_rx; 338cb6bf4a7SHasso Tepper uint32_t cmd_tx; 339cb6bf4a7SHasso Tepper uint32_t evt_rx; 340cb6bf4a7SHasso Tepper uint32_t acl_tx; 341cb6bf4a7SHasso Tepper uint32_t acl_rx; 342cb6bf4a7SHasso Tepper uint32_t sco_tx; 343cb6bf4a7SHasso Tepper uint32_t sco_rx; 344cb6bf4a7SHasso Tepper uint32_t byte_tx; 345cb6bf4a7SHasso Tepper uint32_t byte_rx; 346cb6bf4a7SHasso Tepper}; 347cb6bf4a7SHasso Tepper 348cb6bf4a7SHasso Tepper.Ed 349cb6bf4a7SHasso Tepper.Bl -tag -width SIOCGBTPOLICY 350cb6bf4a7SHasso Tepper.It Dv SIOCGBTINFO 351cb6bf4a7SHasso TepperGet Bluetooth device Info. Given the device name, fill in the 352cb6bf4a7SHasso Tepperbtreq structure including the address field for use with socket addressing 353cb6bf4a7SHasso Tepperas above. 354cb6bf4a7SHasso Tepper.It Dv SIOCGBTINFOA 355cb6bf4a7SHasso TepperGet Bluetooth device Info from Address. Given the device address, fill in the 356cb6bf4a7SHasso Tepperbtreq structure including the name field. 357cb6bf4a7SHasso Tepper.It Dv SIOCNBTINFO 358cb6bf4a7SHasso TepperNext Bluetooth device Info . If name field is empty, the first device 359cb6bf4a7SHasso Tepperwill be returned. Otherwise, the next device will be returned. Thus, you 360cb6bf4a7SHasso Teppercan cycle through all devices in the system. 361cb6bf4a7SHasso Tepper.It Dv SIOCSBTFLAGS 362cb6bf4a7SHasso TepperSet Bluetooth device Flags. Not all flags are settable. 363cb6bf4a7SHasso Tepper.It Dv SIOCSBTPOLICY 364cb6bf4a7SHasso TepperSet Bluetooth device Link Policy. Link Policy bits are defined in 365cb6bf4a7SHasso Tepper.In netbt/hci.h , 366cb6bf4a7SHasso Tepperthough you can only set bits that the device supports. 367cb6bf4a7SHasso Tepper.It Dv SIOCSBTPTYPE 368cb6bf4a7SHasso TepperSet Bluetooth device Packet Types. You can only set packet types 369cb6bf4a7SHasso Tepperthat the device supports. 370cb6bf4a7SHasso Tepper.It Dv SIOCGBTSTATS 371cb6bf4a7SHasso TepperRead device statistics. 372cb6bf4a7SHasso Tepper.It Dv SIOCZBTSTATS 373cb6bf4a7SHasso TepperRead device statistics, and zero them. 374cb6bf4a7SHasso Tepper.El 375cb6bf4a7SHasso Tepper.Pp 376cb6bf4a7SHasso TepperOnly the super-user may change device configurations. 377cb6bf4a7SHasso Tepper.Sh SEE ALSO 378cb6bf4a7SHasso Tepper.Xr bind 2 , 379cb6bf4a7SHasso Tepper.Xr getsockname 2 , 380cb6bf4a7SHasso Tepper.Xr bluetooth 3 , 381cb6bf4a7SHasso Tepper.\".Xr bcsp 4 , 382cb6bf4a7SHasso Tepper.\".Xr bt3c 4 , 383cb6bf4a7SHasso Tepper.\".Xr btbc 4 , 384cb6bf4a7SHasso Tepper.\".Xr btuart 4 , 385cb6bf4a7SHasso Tepper.Xr ubt 4 386cb6bf4a7SHasso Tepper.Sh HISTORY 387cb6bf4a7SHasso TepperThe Bluetooth Protocol Stack was written for 388cb6bf4a7SHasso Tepper.Nx 4.0 389cb6bf4a7SHasso Tepperby 390cb6bf4a7SHasso Tepper.An Iain Hibbert 391cb6bf4a7SHasso Tepperunder the sponsorship of Itronix, Inc and was imported into 392cb6bf4a7SHasso Tepper.Dx 1.11 . 393