1*1370a723SSascha Wildner /** @file
2*1370a723SSascha Wildner   This file contains the Bluetooth definitions that are consumed by drivers.
3*1370a723SSascha Wildner   These definitions are from Bluetooth Core Specification Version 4.0 June, 2010
4*1370a723SSascha Wildner 
5*1370a723SSascha Wildner   Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
6*1370a723SSascha Wildner   SPDX-License-Identifier: BSD-2-Clause-Patent
7*1370a723SSascha Wildner 
8*1370a723SSascha Wildner **/
9*1370a723SSascha Wildner 
10*1370a723SSascha Wildner #ifndef _BLUETOOTH_H_
11*1370a723SSascha Wildner #define _BLUETOOTH_H_
12*1370a723SSascha Wildner 
13*1370a723SSascha Wildner #pragma pack(1)
14*1370a723SSascha Wildner 
15*1370a723SSascha Wildner ///
16*1370a723SSascha Wildner /// BLUETOOTH_ADDRESS
17*1370a723SSascha Wildner ///
18*1370a723SSascha Wildner typedef struct {
19*1370a723SSascha Wildner   ///
20*1370a723SSascha Wildner   /// 48bit Bluetooth device address.
21*1370a723SSascha Wildner   ///
22*1370a723SSascha Wildner   UINT8      Address[6];
23*1370a723SSascha Wildner } BLUETOOTH_ADDRESS;
24*1370a723SSascha Wildner 
25*1370a723SSascha Wildner ///
26*1370a723SSascha Wildner /// BLUETOOTH_CLASS_OF_DEVICE. See Bluetooth specification for detail.
27*1370a723SSascha Wildner ///
28*1370a723SSascha Wildner typedef struct {
29*1370a723SSascha Wildner   UINT8      FormatType:2;
30*1370a723SSascha Wildner   UINT8      MinorDeviceClass: 6;
31*1370a723SSascha Wildner   UINT16     MajorDeviceClass: 5;
32*1370a723SSascha Wildner   UINT16     MajorServiceClass:11;
33*1370a723SSascha Wildner } BLUETOOTH_CLASS_OF_DEVICE;
34*1370a723SSascha Wildner 
35*1370a723SSascha Wildner ///
36*1370a723SSascha Wildner /// BLUETOOTH_LE_ADDRESS
37*1370a723SSascha Wildner ///
38*1370a723SSascha Wildner typedef struct {
39*1370a723SSascha Wildner   ///
40*1370a723SSascha Wildner   /// 48-bit Bluetooth device address
41*1370a723SSascha Wildner   ///
42*1370a723SSascha Wildner   UINT8      Address[6];
43*1370a723SSascha Wildner   ///
44*1370a723SSascha Wildner   /// 0x00 - Public Device Address
45*1370a723SSascha Wildner   /// 0x01 - Random Device Address
46*1370a723SSascha Wildner   ///
47*1370a723SSascha Wildner   UINT8      Type;
48*1370a723SSascha Wildner } BLUETOOTH_LE_ADDRESS;
49*1370a723SSascha Wildner 
50*1370a723SSascha Wildner #pragma pack()
51*1370a723SSascha Wildner 
52*1370a723SSascha Wildner #define BLUETOOTH_HCI_COMMAND_LOCAL_READABLE_NAME_MAX_SIZE    248
53*1370a723SSascha Wildner 
54*1370a723SSascha Wildner #define BLUETOOTH_HCI_LINK_KEY_SIZE                           16
55*1370a723SSascha Wildner 
56*1370a723SSascha Wildner #endif
57