summaryrefslogtreecommitdiff
path: root/static/netbsd/man4/bluetooth.4 4.html
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
commit253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch)
treeadf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man4/bluetooth.4 4.html
parenta9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff)
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man4/bluetooth.4 4.html')
-rw-r--r--static/netbsd/man4/bluetooth.4 4.html363
1 files changed, 363 insertions, 0 deletions
diff --git a/static/netbsd/man4/bluetooth.4 4.html b/static/netbsd/man4/bluetooth.4 4.html
new file mode 100644
index 00000000..959d6c8d
--- /dev/null
+++ b/static/netbsd/man4/bluetooth.4 4.html
@@ -0,0 +1,363 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">BLUETOOTH(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">BLUETOOTH(4)</td>
+ </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<p class="Pp"><code class="Nm">bluetooth</code> &#x2014;
+ <span class="Nd">Bluetooth Protocol Family</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp"><code class="In">#include
+ &lt;<a class="In">netbt/bluetooth.h</a>&gt;</code>
+ <br/>
+ <code class="In">#include &lt;<a class="In">netbt/hci.h</a>&gt;</code>
+ <br/>
+ <code class="In">#include &lt;<a class="In">netbt/l2cap.h</a>&gt;</code>
+ <br/>
+ <code class="In">#include &lt;<a class="In">netbt/rfcomm.h</a>&gt;</code></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">The Bluetooth Protocol Family</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="ADDRESSING"><a class="permalink" href="#ADDRESSING">ADDRESSING</a></h1>
+<p class="Pp">Bluetooth Protocol Family sockets all use a
+ <var class="Ar">sockaddr_bt</var> structure which contains a Bluetooth
+ Device Address (BDADDR). This consists of a six byte string in least
+ significant byte first order.</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>struct sockaddr_bt {
+ uint8_t bt_len;
+ sa_family_t bt_family;
+ bdaddr_t bt_bdaddr;
+ uint16_t bt_psm;
+ uint8_t bt_channel;
+};</pre>
+</div>
+<p class="Pp">The local address used by the socket can be set with
+ <a class="Xr">bind(2)</a>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="PROTOCOLS"><a class="permalink" href="#PROTOCOLS">PROTOCOLS</a></h1>
+<p class="Pp">Protocols included are:</p>
+<dl class="Bl-tag">
+ <dt id="BTPROTO_HCI"><a class="permalink" href="#BTPROTO_HCI"><code class="Cm">BTPROTO_HCI</code></a></dt>
+ <dd>This gives raw access to the Host Controller Interface of local devices
+ using the HCI protocol as described in the Bluetooth Core Specification.
+ Any user may open an HCI socket but there are limitations on what
+ unprivileged users can send and receive. The local address specified by
+ <a class="Xr">bind(2)</a> may be used to select the device that the socket
+ will receive packets from. If <code class="Dv">BDADDR_ANY</code> is
+ specified then the socket will receive packets from all devices on the
+ system. <a class="Xr">connect(2)</a> may be used to create connections
+ such that packets sent with <a class="Xr">send(2)</a> will be delivered to
+ the specified device, otherwise <a class="Xr">sendto(2)</a> should be
+ used.
+ <p class="Pp">The <var class="Ar">bt_psm</var> and
+ <var class="Ar">bt_channel</var> fields in the sockaddr_bt structure are
+ ignored by HCI protocol code and should be set to zero.</p>
+ <p class="Pp">HCI socket options:</p>
+ <dl class="Bl-tag">
+ <dt id="SO_HCI_EVT_FILTER"><a class="permalink" href="#SO_HCI_EVT_FILTER"><code class="Dv">SO_HCI_EVT_FILTER</code></a>
+ [<var class="Ar">struct hci_filter</var>]</dt>
+ <dd>This filter controls which events will be received at the socket. See
+ <code class="In">&lt;<a class="In">netbt/hci.h</a>&gt;</code> for
+ available events. By default, Command_Complete and Command_Status
+ events only are enabled.</dd>
+ <dt id="SO_HCI_PKT_FILTER"><a class="permalink" href="#SO_HCI_PKT_FILTER"><code class="Dv">SO_HCI_PKT_FILTER</code></a>
+ [<var class="Ar">struct hci_filter</var>]</dt>
+ <dd>This filter controls the type of packets that will be received at the
+ socket. By default, Event packets only are enabled.</dd>
+ <dt id="SO_HCI_DIRECTION"><a class="permalink" href="#SO_HCI_DIRECTION"><code class="Dv">SO_HCI_DIRECTION</code></a>
+ [<var class="Ar">int</var>]</dt>
+ <dd>When set, this enables control messages on packets received at the
+ socket indicating the direction of travel of the packet.</dd>
+ </dl>
+ <p class="Pp">HCI <a class="Xr">sysctl(8)</a> controls:</p>
+ <dl class="Bl-tag">
+ <dt id="net.bluetooth.hci.sendspace"><a class="permalink" href="#net.bluetooth.hci.sendspace"><code class="Dv">net.bluetooth.hci.sendspace</code></a></dt>
+ <dd>Default send buffer size for HCI sockets.</dd>
+ <dt id="net.bluetooth.hci.recvspace"><a class="permalink" href="#net.bluetooth.hci.recvspace"><code class="Dv">net.bluetooth.hci.recvspace</code></a></dt>
+ <dd>Default receive buffer size for HCI sockets</dd>
+ <dt id="net.bluetooth.hci.acl_expiry"><a class="permalink" href="#net.bluetooth.hci.acl_expiry"><code class="Dv">net.bluetooth.hci.acl_expiry</code></a></dt>
+ <dd>If set, this is the time in seconds after which unused ACL data
+ connections will be expired. If zero, connections will not be
+ closed.</dd>
+ <dt id="net.bluetooth.hci.memo_expiry"><a class="permalink" href="#net.bluetooth.hci.memo_expiry"><code class="Dv">net.bluetooth.hci.memo_expiry</code></a></dt>
+ <dd>Time, in seconds, that the system will keep records of Bluetooth
+ devices in the vicinity after an Inquiry Response packet has been
+ received. This information is used for routing purposes.</dd>
+ <dt id="net.bluetooth.hci.eventq_max"><a class="permalink" href="#net.bluetooth.hci.eventq_max"><code class="Dv">net.bluetooth.hci.eventq_max</code></a></dt>
+ <dd>The maximum number of packets on the low level Event queue.</dd>
+ <dt id="net.bluetooth.hci.aclrxq_max"><a class="permalink" href="#net.bluetooth.hci.aclrxq_max"><code class="Dv">net.bluetooth.hci.aclrxq_max</code></a></dt>
+ <dd>The maximum number of packets on the low level ACL queue.</dd>
+ <dt id="net.bluetooth.hci.scorxq_max"><a class="permalink" href="#net.bluetooth.hci.scorxq_max"><code class="Dv">net.bluetooth.hci.scorxq_max</code></a></dt>
+ <dd>The maximum number of packets on the low level SCO queue.</dd>
+ </dl>
+ </dd>
+ <dt id="BTPROTO_L2CAP"><a class="permalink" href="#BTPROTO_L2CAP"><code class="Cm">BTPROTO_L2CAP</code></a></dt>
+ <dd>L2CAP sockets give sequential packet access over channels to other
+ Bluetooth devices and make use of the <var class="Ar">bt_psm</var> field
+ in the <var class="Ar">sockaddr_bt</var> structure to select the
+ Protocol/Service Multiplexer to specify when making connections. If the
+ special value of <code class="Dv">L2CAP_PSM_ANY</code> is bound when the
+ <a class="Xr">listen(2)</a> call is made, the next available PSM from the
+ dynamic range above 0x1001 will be selected and may be discovered using
+ the <a class="Xr">getsockname(2)</a> call.
+ <p class="Pp">L2CAP socket options:</p>
+ <dl class="Bl-tag">
+ <dt id="SO_L2CAP_IMTU"><a class="permalink" href="#SO_L2CAP_IMTU"><code class="Dv">SO_L2CAP_IMTU</code></a>
+ [<var class="Ar">uint16_t</var>]</dt>
+ <dd>Incoming MTU</dd>
+ <dt id="SO_L2CAP_OMTU"><a class="permalink" href="#SO_L2CAP_OMTU"><code class="Dv">SO_L2CAP_OMTU</code></a>
+ [<var class="Ar">uint16_t</var>]</dt>
+ <dd>Outgoing MTU (read-only)</dd>
+ <dt id="SO_L2CAP_LM"><a class="permalink" href="#SO_L2CAP_LM"><code class="Dv">SO_L2CAP_LM</code></a>
+ [<var class="Ar">int</var>]</dt>
+ <dd>Link Mode. The following bits may be set:
+ <p class="Pp"></p>
+ <dl class="Bl-tag Bl-compact">
+ <dt id="L2CAP_LM_AUTH"><a class="permalink" href="#L2CAP_LM_AUTH"><code class="Dv">L2CAP_LM_AUTH</code></a></dt>
+ <dd>Request authentication (pairing).</dd>
+ <dt id="L2CAP_LM_ENCRYPT"><a class="permalink" href="#L2CAP_LM_ENCRYPT"><code class="Dv">L2CAP_LM_ENCRYPT</code></a></dt>
+ <dd>Request encryption (includes auth).</dd>
+ <dt id="L2CAP_LM_SECURE"><a class="permalink" href="#L2CAP_LM_SECURE"><code class="Dv">L2CAP_LM_SECURE</code></a></dt>
+ <dd>Request secured link (encryption, plus change link key).</dd>
+ </dl>
+ <p class="Pp">Link mode settings will be applied to the baseband link
+ during L2CAP connection establishment. If the L2CAP connection is
+ already established, <code class="Dv">EINPROGRESS</code> may be
+ returned, and it is not possible to guarantee that data already
+ queued (from either end) will not be delivered. If the mode change
+ fails, the L2CAP connection will be aborted.</p>
+ </dd>
+ </dl>
+ <p class="Pp">L2CAP <a class="Xr">sysctl(8)</a> controls:</p>
+ <dl class="Bl-tag">
+ <dt id="net.bluetooth.l2cap.sendspace"><a class="permalink" href="#net.bluetooth.l2cap.sendspace"><code class="Dv">net.bluetooth.l2cap.sendspace</code></a></dt>
+ <dd>Default send buffer size for L2CAP sockets.</dd>
+ <dt id="net.bluetooth.l2cap.recvspace"><a class="permalink" href="#net.bluetooth.l2cap.recvspace"><code class="Dv">net.bluetooth.l2cap.recvspace</code></a></dt>
+ <dd>Default receive buffer size for L2CAP sockets.</dd>
+ <dt id="net.bluetooth.l2cap.rtx"><a class="permalink" href="#net.bluetooth.l2cap.rtx"><code class="Dv">net.bluetooth.l2cap.rtx</code></a></dt>
+ <dd>Response Timeout eXpiry for L2CAP signals.</dd>
+ <dt id="net.bluetooth.l2cap.ertx"><a class="permalink" href="#net.bluetooth.l2cap.ertx"><code class="Dv">net.bluetooth.l2cap.ertx</code></a></dt>
+ <dd>Extended Response Timeout eXpiry for L2CAP signals.</dd>
+ </dl>
+ </dd>
+ <dt id="BTPROTO_RFCOMM"><a class="permalink" href="#BTPROTO_RFCOMM"><code class="Cm">BTPROTO_RFCOMM</code></a></dt>
+ <dd>RFCOMM sockets provide streamed data over Bluetooth connection and make
+ use of the <var class="Ar">bt_psm</var>, and
+ <var class="Ar">bt_channel</var> fields in the
+ <var class="Ar">sockaddr_bt</var> structure. The channel number must be
+ between 1 and 30 inclusive except that if the special value
+ <code class="Dv">RFCOMM_CHANNEL_ANY</code> is bound, when the
+ <a class="Xr">listen(2)</a> call is made, the first unused channel for the
+ relevant bdaddr will be allocated and may be discovered using the
+ <a class="Xr">getsockname(2)</a> call. If no PSM is specified, a default
+ value of <code class="Dv">L2CAP_PSM_RFCOMM</code> (0x0003) will be used.
+ <p class="Pp">RFCOMM socket options:</p>
+ <dl class="Bl-tag">
+ <dt id="SO_RFCOMM_MTU"><a class="permalink" href="#SO_RFCOMM_MTU"><code class="Dv">SO_RFCOMM_MTU</code></a>
+ [<var class="Ar">uint16_t</var>]</dt>
+ <dd>Maximum Frame Size to use for this link.</dd>
+ <dt id="SO_RFCOMM_LM"><a class="permalink" href="#SO_RFCOMM_LM"><code class="Dv">SO_RFCOMM_LM</code></a>
+ [<var class="Ar">int</var>]</dt>
+ <dd>Link Mode. The following bits may be set at any time:
+ <p class="Pp"></p>
+ <dl class="Bl-tag Bl-compact">
+ <dt id="RFCOMM_LM_AUTH"><a class="permalink" href="#RFCOMM_LM_AUTH"><code class="Dv">RFCOMM_LM_AUTH</code></a></dt>
+ <dd>Request authentication (pairing).</dd>
+ <dt id="RFCOMM_LM_ENCRYPT"><a class="permalink" href="#RFCOMM_LM_ENCRYPT"><code class="Dv">RFCOMM_LM_ENCRYPT</code></a></dt>
+ <dd>Request encryption (includes auth).</dd>
+ <dt id="RFCOMM_LM_SECURE"><a class="permalink" href="#RFCOMM_LM_SECURE"><code class="Dv">RFCOMM_LM_SECURE</code></a></dt>
+ <dd>Request secured link (encryption, plus change link key).</dd>
+ </dl>
+ <p class="Pp">Link mode settings will be applied to the baseband link
+ during RFCOMM connection establishment. If the RFCOMM connection is
+ already established, <code class="Dv">EINPROGRESS</code> may be
+ returned, and it is not possible to guarantee that data already
+ queued (from either end) will not be delivered. If the mode change
+ fails, the RFCOMM connection will be aborted.</p>
+ </dd>
+ </dl>
+ <p class="Pp">RFCOMM <a class="Xr">sysctl(8)</a> controls:</p>
+ <dl class="Bl-tag">
+ <dt id="net.bluetooth.rfcomm.sendspace"><a class="permalink" href="#net.bluetooth.rfcomm.sendspace"><code class="Dv">net.bluetooth.rfcomm.sendspace</code></a></dt>
+ <dd>Default send buffer size for RFCOMM sockets.</dd>
+ <dt id="net.bluetooth.rfcomm.recvspace"><a class="permalink" href="#net.bluetooth.rfcomm.recvspace"><code class="Dv">net.bluetooth.rfcomm.recvspace</code></a></dt>
+ <dd>Default receive buffer size for RFCOMM sockets.</dd>
+ <dt id="net.bluetooth.rfcomm.default_mtu"><a class="permalink" href="#net.bluetooth.rfcomm.default_mtu"><code class="Dv">net.bluetooth.rfcomm.default_mtu</code></a></dt>
+ <dd>Maximum Frame Size (N1)</dd>
+ <dt id="net.bluetooth.ack_timeout"><a class="permalink" href="#net.bluetooth.ack_timeout"><code class="Dv">net.bluetooth.ack_timeout</code></a></dt>
+ <dd>Acknowledgement Timer (T1)</dd>
+ <dt id="net.bluetooth.mcc_timeout"><a class="permalink" href="#net.bluetooth.mcc_timeout"><code class="Dv">net.bluetooth.mcc_timeout</code></a></dt>
+ <dd>Response Timer for Multiplexer Control Channel (T2)</dd>
+ </dl>
+ </dd>
+ <dt id="BTPROTO_SCO"><a class="permalink" href="#BTPROTO_SCO"><code class="Cm">BTPROTO_SCO</code></a></dt>
+ <dd>SCO sockets provide sequential packet access to time sensitive data
+ channels over Bluetooth connections, typically used for audio data.
+ <p class="Pp">SCO socket options:</p>
+ <dl class="Bl-tag">
+ <dt id="SO_SCO_MTU"><a class="permalink" href="#SO_SCO_MTU"><code class="Dv">SO_SCO_MTU</code></a>
+ [<var class="Ar">uint16_t</var>]</dt>
+ <dd>Maximum packet size for use on this link. This is read-only and will
+ be set by the protocol code when a connection is made. Currently, due
+ to limitations in the <a class="Xr">ubt(4)</a> driver, the SCO
+ protocol code will only accept packets with exactly this size.</dd>
+ <dt id="SO_SCO_HANDLE"><a class="permalink" href="#SO_SCO_HANDLE"><code class="Dv">SO_SCO_HANDLE</code></a>
+ [<var class="Ar">uint16_t</var>]</dt>
+ <dd>Connection handle for this link. This is read-only and provided for
+ informational purposes only.</dd>
+ </dl>
+ <p class="Pp">SCO <a class="Xr">sysctl(8)</a> controls:</p>
+ <dl class="Bl-tag">
+ <dt id="net.bluetooth.sco.sendspace"><a class="permalink" href="#net.bluetooth.sco.sendspace"><code class="Dv">net.bluetooth.sco.sendspace</code></a></dt>
+ <dd>Default send buffer size for SCO sockets.</dd>
+ <dt id="net.bluetooth.sco.recvspace"><a class="permalink" href="#net.bluetooth.sco.recvspace"><code class="Dv">net.bluetooth.sco.recvspace</code></a></dt>
+ <dd>Default receive buffer size for SCO sockets.</dd>
+ </dl>
+ </dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="INFORMATION"><a class="permalink" href="#INFORMATION">INFORMATION</a></h1>
+<p class="Pp">The following <a class="Xr">ioctl(2)</a> calls may be used to
+ manipulate Bluetooth devices. The <a class="Xr">ioctl(2)</a> must be made on
+ <code class="Cm">BTPROTO_HCI</code> sockets. All of the requests take a
+ <var class="Ar">btreq</var> structure defined as follows as their parameter
+ and unless otherwise specified, use the <var class="Ar">btr_name</var> field
+ to identify the device.</p>
+<div class="Bd Pp Li">
+<pre>struct btreq {
+ char btr_name[HCI_DEVNAME_SIZE]; /* device name */
+
+ union {
+ struct {
+ bdaddr_t btri_bdaddr; /* device bdaddr */
+ uint16_t btri_flags; /* flags */
+ uint16_t btri_num_cmd; /* # of free cmd buffers */
+ uint16_t btri_num_acl; /* # of free ACL buffers */
+ uint16_t btri_num_sco; /* # of free SCO buffers */
+ uint16_t btri_acl_mtu; /* ACL mtu */
+ uint16_t btri_sco_mtu; /* SCO mtu */
+ uint16_t btri_link_policy; /* Link Policy */
+ uint16_t btri_packet_type; /* Packet Type */
+ uint16_t btri_max_acl; /* max ACL buffers */
+ uint16_t btri_max_sco; /* max SCO buffers */
+ } btri;
+ struct {
+ uint8_t btrf_page0[HCI_FEATURES_SIZE]; /* basic */
+ uint8_t btrf_page1[HCI_FEATURES_SIZE]; /* extended page 1 */
+ uint8_t btrf_page2[HCI_FEATURES_SIZE]; /* extended page 2 */
+ } btrf;
+ struct bt_stats btrs; /* unit stats */
+ } btru;
+};
+
+#define btr_flags btru.btri.btri_flags
+#define btr_bdaddr btru.btri.btri_bdaddr
+#define btr_num_cmd btru.btri.btri_num_cmd
+#define btr_num_acl btru.btri.btri_num_acl
+#define btr_num_sco btru.btri.btri_num_sco
+#define btr_acl_mtu btru.btri.btri_acl_mtu
+#define btr_sco_mtu btru.btri.btri_sco_mtu
+#define btr_link_policy btru.btri.btri_link_policy
+#define btr_packet_type btru.btri.btri_packet_type
+#define btr_max_acl btru.btri.btri_max_acl
+#define btr_max_sco btru.btri.btri_max_sco
+#define btr_features0 btru.btrf.btrf_page0
+#define btr_features1 btru.btrf.btrf_page1
+#define btr_features2 btru.btrf.btrf_page2
+#define btr_stats btru.btrs
+
+/* btr_flags */
+#define BTF_UP (1&lt;&lt;0) /* unit is up */
+#define BTF_RUNNING (1&lt;&lt;1) /* unit is running */
+#define BTF_XMIT_CMD (1&lt;&lt;2) /* transmitting CMD packets */
+#define BTF_XMIT_ACL (1&lt;&lt;3) /* transmitting ACL packets */
+#define BTF_XMIT_SCO (1&lt;&lt;4) /* transmitting SCO packets */
+#define BTF_INIT_BDADDR (1&lt;&lt;5) /* waiting for bdaddr */
+#define BTF_INIT_BUFFER_SIZE (1&lt;&lt;6) /* waiting for buffer size */
+#define BTF_INIT_FEATURES (1&lt;&lt;7) /* waiting for features */
+#define BTF_NOOP_ON_RESET (1&lt;&lt;8) /* wait for No-op on reset */
+#define BTF_INIT_COMMANDS (1&lt;&lt;9) /* waiting for supported commands */
+#define BTF_MASTER (1&lt;&lt;10) /* request Master role */
+
+struct bt_stats {
+ uint32_t err_tx;
+ uint32_t err_rx;
+ uint32_t cmd_tx;
+ uint32_t evt_rx;
+ uint32_t acl_tx;
+ uint32_t acl_rx;
+ uint32_t sco_tx;
+ uint32_t sco_rx;
+ uint32_t byte_tx;
+ uint32_t byte_rx;
+};
+
+</pre>
+</div>
+<dl class="Bl-tag">
+ <dt id="SIOCGBTINFO"><a class="permalink" href="#SIOCGBTINFO"><code class="Dv">SIOCGBTINFO</code></a></dt>
+ <dd>Get Bluetooth device Info. Given the device name, fill in the btreq
+ structure including the address field for use with socket addressing as
+ above.</dd>
+ <dt id="SIOCGBTINFOA"><a class="permalink" href="#SIOCGBTINFOA"><code class="Dv">SIOCGBTINFOA</code></a></dt>
+ <dd>Get Bluetooth device Info from Address. Given the device address, fill in
+ the btreq structure including the name field.</dd>
+ <dt id="SIOCNBTINFO"><a class="permalink" href="#SIOCNBTINFO"><code class="Dv">SIOCNBTINFO</code></a></dt>
+ <dd>Next Bluetooth device Info. If name field is empty, the first device will
+ be returned. Otherwise, the next device will be returned until no more
+ devices are found when the call will fail, with error
+ <code class="Er">ENXIO</code>. Thus, you can cycle through all devices in
+ the system.</dd>
+ <dt id="SIOCSBTFLAGS"><a class="permalink" href="#SIOCSBTFLAGS"><code class="Dv">SIOCSBTFLAGS</code></a></dt>
+ <dd>Set Bluetooth device Flags. Not all flags are settable.</dd>
+ <dt id="SIOCGBTFEAT"><a class="permalink" href="#SIOCGBTFEAT"><code class="Dv">SIOCGBTFEAT</code></a></dt>
+ <dd>Get Bluetooth device Features. This returns the cached basic (page 0) and
+ extended (page 1 &amp; 2) features.</dd>
+ <dt id="SIOCSBTPOLICY"><a class="permalink" href="#SIOCSBTPOLICY"><code class="Dv">SIOCSBTPOLICY</code></a></dt>
+ <dd>Set Bluetooth device Link Policy. Link Policy bits are defined in
+ <code class="In">&lt;<a class="In">netbt/hci.h</a>&gt;</code>, though you
+ can only set bits that the device supports.</dd>
+ <dt id="SIOCSBTPTYPE"><a class="permalink" href="#SIOCSBTPTYPE"><code class="Dv">SIOCSBTPTYPE</code></a></dt>
+ <dd>Set Bluetooth device Packet Types. You can only set packet types that the
+ device supports.</dd>
+ <dt id="SIOCGBTSTATS"><a class="permalink" href="#SIOCGBTSTATS"><code class="Dv">SIOCGBTSTATS</code></a></dt>
+ <dd>Read device statistics.</dd>
+ <dt id="SIOCZBTSTATS"><a class="permalink" href="#SIOCZBTSTATS"><code class="Dv">SIOCZBTSTATS</code></a></dt>
+ <dd>Read device statistics, and zero them.</dd>
+</dl>
+<p class="Pp">Only the super-user may change device configurations.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+ ALSO</a></h1>
+<p class="Pp"><a class="Xr">bind(2)</a>, <a class="Xr">getsockname(2)</a>,
+ <a class="Xr">bluetooth(3)</a>, <a class="Xr">bcsp(4)</a>,
+ <a class="Xr">bt3c(4)</a>, <a class="Xr">btbc(4)</a>,
+ <a class="Xr">btuart(4)</a>, <a class="Xr">options(4)</a>,
+ <a class="Xr">ubt(4)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
+<p class="Pp">The Bluetooth Protocol Stack was written for
+ <span class="Ux">NetBSD 4.0</span> by <span class="An">Iain Hibbert</span>
+ under the sponsorship of Itronix, Inc.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">November 20, 2010</td>
+ <td class="foot-os">NetBSD 10.1</td>
+ </tr>
+</table>