1ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/******************************************************************************
2ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
35b790feeeb211c42bf78ca3ae9c26aa30e516765Jakub Pawlowski *  Copyright 2014 The Android Open Source Project
49ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *  Copyright 2002 - 2004 Open Interface North America, Inc. All rights
59ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                        reserved.
6ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
7ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  Licensed under the Apache License, Version 2.0 (the "License");
8ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  you may not use this file except in compliance with the License.
9ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  You may obtain a copy of the License at:
10ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
11ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  http://www.apache.org/licenses/LICENSE-2.0
12ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
13ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  Unless required by applicable law or agreed to in writing, software
14ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  distributed under the License is distributed on an "AS IS" BASIS,
15ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  See the License for the specific language governing permissions and
17ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  limitations under the License.
18ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
19ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta ******************************************************************************/
20ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta#ifndef _OI_BT_SPEC_H
21ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta#define _OI_BT_SPEC_H
22ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**
23ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * @file
24ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
25ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * This file contains common definitions from the Bluetooth specification.
26ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
27ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta */
28ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
29ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/*******************************************************************************
30ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta  $Revision: #1 $
31ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
32ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
33ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta#include "oi_stddefs.h"
34ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
35ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** \addtogroup Misc Miscellaneous APIs */
36ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**@{*/
37ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
38ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta#ifdef __cplusplus
39ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Guptaextern "C" {
40ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta#endif
41ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
42ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** The maximum number of active slaves in a piconet. */
43ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta#define OI_BT_MAX_ACTIVE_SLAVES 7
44ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
45ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**
46ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * @name Data types for working with UUIDs
47ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * UUIDs are 16 bytes (128 bits).
48ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
49ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * To avoid having to pass around 128-bit values all the time, 32-bit and 16-bit
50ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * UUIDs are defined, along with a mapping from the shorter versions to the full
51ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * version.
52ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
53ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * @{
54ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta */
55ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
56ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**
57ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * 16-bit representation of a 128-bit UUID
58ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta */
59a239d20e95238c37d02121abb49b14d433c5afc2Jakub Pawlowskitypedef uint16_t OI_UUID16;
60ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
61ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**
62ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * 32-bit representation of a 128-bit UUID
63ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta */
64a239d20e95238c37d02121abb49b14d433c5afc2Jakub Pawlowskitypedef uint32_t OI_UUID32;
65ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
66ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**
67ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * number of bytes in a 128 bit UUID
68ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta */
69911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_UUID128_SIZE 16
70ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
71ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**
72ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * number of bytes in IPv6 style addresses
73ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta */
74911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_IPV6ADDR_SIZE 16
75ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
76ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**
77ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * type definition for a 128-bit UUID
78ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
79ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * To simplify conversion between 128-bit UUIDs and 16-bit and 32-bit UUIDs,
80ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * the most significant 32 bits are stored with the same endian-ness as is
81ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * native on the target (local) device. The remainder of the 128-bit UUID is
82ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * stored as bytes in big-endian order.
83ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta */
84ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Guptatypedef struct {
85911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  /* most significant 32 bits of 128-bit UUID */
86911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  uint32_t ms32bits;
87911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  /* remainder of 128-bit UUID, array of 8-bit values */
88911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  uint8_t base[OI_BT_UUID128_SIZE - sizeof(uint32_t)];
89ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta} OI_UUID128;
90ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
91ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** @} */
92ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
93ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** number of bytes in a link key */
94911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_LINK_KEY_SIZE 16
95ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
96ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**
97ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * type definition for a baseband link key
98ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *
99ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * Because 128-bit integers may not be supported on all platforms, we define
100ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * link keys as an array of bytes. Unlike the Bluetooth device address,
101ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * the link key is stored in little-endian order, meaning that
102ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[0]  contains bits 0  - 7,
103ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[1]  contains bits 8  - 15,
104ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[2]  contains bits 16 - 23,
105ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[3]  contains bits 24 - 31,
106ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[4]  contains bits 32 - 39,
107ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[5]  contains bits 40 - 47,
108ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[6]  contains bits 48 - 55,
109ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[7]  contains bits 56 - 63,
110ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[8]  contains bits 64 - 71,
111ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[9]  contains bits 72 - 79,
112ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[10] contains bits 80 - 87,
113ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[11] contains bits 88 - 95,
114ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[12] contains bits 96 - 103,
115ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[13] contains bits 104- 111,
116ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[14] contains bits 112- 119, and
117ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta *  - array[15] contains bits 120- 127.
118ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta */
119ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Guptatypedef struct {
120911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  /* link key represented as an array of 8-bit values */
121911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  uint8_t key[OI_BT_LINK_KEY_SIZE];
122911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson} OI_LINK_KEY;
123ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
124ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** Out-of-band data size - C and R values are 16-bytes each */
125911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_OOB_NUM_BYTES 16
126ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
127ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Guptatypedef struct {
128911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  /* same struct used for C and R values */
129911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  uint8_t value[OI_BT_OOB_NUM_BYTES];
130911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson} OI_OOB_DATA;
131ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
132ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**
133ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * link key types
134ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta */
135911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef enum {
136911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  OI_LINK_KEY_TYPE_COMBO = 0,           /* combination key */
137911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  OI_LINK_KEY_TYPE_LOCAL_UNIT = 1,      /* local unit key */
138911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  OI_LINK_KEY_TYPE_REMOTE_UNIT = 2,     /* remote unit key */
139911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  OI_LINK_KEY_TYPE_DEBUG_COMBO = 3,     /* debug combination key */
140911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  OI_LINK_KEY_TYPE_UNAUTHENTICATED = 4, /* Unauthenticated */
141911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  OI_LINK_KEY_TYPE_AUTHENTICATED = 5,   /* Authenticated */
142911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  OI_LINK_KEY_TYPE_CHANGED_COMBO = 6    /* Changed */
143ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
144911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson} OI_BT_LINK_KEY_TYPE;
145ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
1469ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Number of bytes allocated for a PIN (personal indentification number) */
147911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_PIN_CODE_SIZE 16
148ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
1499ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* data type for a PIN (PINs are treated as strings.) */
150911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef struct {
151911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  /* PIN represented as an array of 8-bit values */
152911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  uint8_t pin[OI_BT_PIN_CODE_SIZE];
153911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson} OI_PIN_CODE;
154ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
1559ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* maximum number of SCO connections per device: 3 as of version 2.0+EDR
156ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta    of the Bluetooth specification (see sec 4.3 of vol 2 part B) */
157911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_MAX_SCO_CONNECTIONS 3
158ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
159ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** data type for clock offset */
160911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef uint16_t OI_BT_CLOCK_OFFSET;
161ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
162ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** data type for a LM handle */
163a239d20e95238c37d02121abb49b14d433c5afc2Jakub Pawlowskitypedef uint16_t OI_HCI_LM_HANDLE;
164ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
165ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** opaque data type for a SCO or ACL connection handle */
166911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef struct _OI_HCI_CONNECTION* OI_HCI_CONNECTION_HANDLE;
167ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
168ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** data type for HCI Error Code, as defined in oi_hcispec.h */
169911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef uint8_t OI_HCI_ERROR_CODE;
170ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
171ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**
172ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta * The Bluetooth device type is indicated by a 24-bit bitfield, represented as a
1739ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 32-bit number in the stack. The bit layout and values for device class are
1749ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * specified in the file oi_bt_assigned_nos.h and in the Bluetooth "Assigned
1759ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Numbers" specification at http://www.bluetooth.org/assigned-numbers/.
176ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta */
177911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef uint32_t OI_BT_DEVICE_CLASS;
1789ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Bits 0-1 contain format type. */
179911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_DEV_CLASS_FORMAT_MASK 0x000003
1809ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Bits 2-7 contain minor device class value. */
181911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_DEV_CLASS_MINOR_DEVICE_MASK 0x0000FC
1829ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Bits 8-12 contain major device class value. */
183911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_DEV_CLASS_MAJOR_DEVICE_MASK 0x001F00
1849ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Bits 13-23 contain major service class value. */
1859ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson#define OI_BT_DEV_CLASS_MAJOR_SERVICE_MASK 0xFFE000
186ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
187ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** There is currently only one device class format defined, type 00. */
188911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_DEV_CLASS_FORMAT_TYPE 00
189ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
1909ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Bit 13 in device class indicates limited discoverability mode (GAP v2.0+EDR,
1919ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * section 4.1.2.2)
1929ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson */
193911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_DEV_CLASS_LIMITED_DISCO_BIT BIT13
194ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
195ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** macro to test validity of the Device Class Format */
196911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_VALID_DEVICE_CLASS_FORMAT(class) \
197911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  (OI_BT_DEV_CLASS_FORMAT_TYPE == ((class) & OI_BT_DEV_CLASS_FORMAT_MASK))
198ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
1999ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* the time between baseband clock ticks, currently 625 microseconds (one slot)
2009ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson */
201ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta#define OI_BT_TICK 625
2029ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* some macros to convert to/from baseband clock ticks - no floating point! */
203911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_SECONDS_TO_BT_TICKS(secs) ((secs)*1600)
204911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_TICKS_TO_SECONDS(ticks) ((ticks) / 1600)
205911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_MSECS_TO_BT_TICKS(msecs) (((msecs)*8) / 5)
206911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_BT_TICKS_TO_MSECS(ticks) (((ticks)*5) / 8)
207ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
208ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/** EIR byte order */
209911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define OI_EIR_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER
210ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
211ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta#ifdef __cplusplus
212ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta}
213ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta#endif
214ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
215ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/**@}*/
216ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta
217ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta/*****************************************************************************/
218ce24765fe7620c34e8d88ed4f826c8a6917582b2Hemant Gupta#endif /* _OI_BT_SPEC_H */
219