diff options
Diffstat (limited to 'static/netbsd/man4/bluetooth.4 4.html')
| -rw-r--r-- | static/netbsd/man4/bluetooth.4 4.html | 363 |
1 files changed, 0 insertions, 363 deletions
diff --git a/static/netbsd/man4/bluetooth.4 4.html b/static/netbsd/man4/bluetooth.4 4.html deleted file mode 100644 index 959d6c8d..00000000 --- a/static/netbsd/man4/bluetooth.4 4.html +++ /dev/null @@ -1,363 +0,0 @@ -<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> — - <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 - <<a class="In">netbt/bluetooth.h</a>></code> - <br/> - <code class="In">#include <<a class="In">netbt/hci.h</a>></code> - <br/> - <code class="In">#include <<a class="In">netbt/l2cap.h</a>></code> - <br/> - <code class="In">#include <<a class="In">netbt/rfcomm.h</a>></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"><<a class="In">netbt/hci.h</a>></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<<0) /* unit is up */ -#define BTF_RUNNING (1<<1) /* unit is running */ -#define BTF_XMIT_CMD (1<<2) /* transmitting CMD packets */ -#define BTF_XMIT_ACL (1<<3) /* transmitting ACL packets */ -#define BTF_XMIT_SCO (1<<4) /* transmitting SCO packets */ -#define BTF_INIT_BDADDR (1<<5) /* waiting for bdaddr */ -#define BTF_INIT_BUFFER_SIZE (1<<6) /* waiting for buffer size */ -#define BTF_INIT_FEATURES (1<<7) /* waiting for features */ -#define BTF_NOOP_ON_RESET (1<<8) /* wait for No-op on reset */ -#define BTF_INIT_COMMANDS (1<<9) /* waiting for supported commands */ -#define BTF_MASTER (1<<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 & 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"><<a class="In">netbt/hci.h</a>></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> |
