| /* |
| BlueZ - Bluetooth protocol stack for Linux |
| Copyright (C) 2000-2001 Qualcomm Incorporated |
| Copyright (c) 2011, The Linux Foundation. All rights reserved. |
| |
| Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com> |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License version 2 as |
| published by the Free Software Foundation; |
| |
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
| OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. |
| IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY |
| CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES |
| WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
| ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| |
| ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, |
| COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS |
| SOFTWARE IS DISCLAIMED. |
| */ |
| |
| #ifndef __SCO_H |
| #define __SCO_H |
| |
| /* SCO defaults */ |
| #define SCO_DEFAULT_MTU 500 |
| #define SCO_DEFAULT_FLUSH_TO 0xFFFF |
| |
| #define SCO_CONN_TIMEOUT (HZ * 40) |
| #define SCO_DISCONN_TIMEOUT (HZ * 20) |
| #define SCO_CONN_IDLE_TIMEOUT (HZ * 60) |
| |
| /* SCO socket address */ |
| struct sockaddr_sco { |
| sa_family_t sco_family; |
| bdaddr_t sco_bdaddr; |
| __u16 sco_pkt_type; |
| __s8 is_wbs; |
| }; |
| |
| /* SCO socket options */ |
| #define SCO_OPTIONS 0x01 |
| struct sco_options { |
| __u16 mtu; |
| }; |
| |
| #define SCO_CONNINFO 0x02 |
| struct sco_conninfo { |
| __u16 hci_handle; |
| __u8 dev_class[3]; |
| }; |
| |
| /* ---- SCO connections ---- */ |
| struct sco_conn { |
| struct hci_conn *hcon; |
| |
| bdaddr_t *dst; |
| bdaddr_t *src; |
| |
| spinlock_t lock; |
| struct sock *sk; |
| |
| unsigned int mtu; |
| }; |
| |
| #define sco_conn_lock(c) spin_lock(&c->lock); |
| #define sco_conn_unlock(c) spin_unlock(&c->lock); |
| |
| /* ----- SCO socket info ----- */ |
| #define sco_pi(sk) ((struct sco_pinfo *) sk) |
| |
| struct sco_pinfo { |
| struct bt_sock bt; |
| __u16 pkt_type; |
| |
| struct sco_conn *conn; |
| }; |
| |
| #endif /* __SCO_H */ |