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