xref: /dflybsd-src/share/man/man4/bluetooth.4 (revision aaea8fd38687ebe012024c20a7d5b8e15c61d3b3)
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