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