1*c2c66affSColin Finck #ifndef _FBT_HCI_COMMANDS_H
2*c2c66affSColin Finck #define _FBT_HCI_COMMANDS_H
3*c2c66affSColin Finck 
4*c2c66affSColin Finck #include "fbtHciOpCodes.h"
5*c2c66affSColin Finck #include "fbtHciSizes.h"
6*c2c66affSColin Finck 
7*c2c66affSColin Finck #include "fbtHciCmdStructs.h"
8*c2c66affSColin Finck #include "fbtHciParms.h"
9*c2c66affSColin Finck 
10*c2c66affSColin Finck // Utility macro to build a command CMD from ints constituent OCF/OGF
11*c2c66affSColin Finck #define FBT_HCI_CMD(nOCF, nOGF) ((unsigned short) nOCF + (unsigned short)(nOGF << 10))
12*c2c66affSColin Finck 
13*c2c66affSColin Finck // HCI Command CMDs
14*c2c66affSColin Finck // Link control CMDs
15*c2c66affSColin Finck #define FBT_HCI_CMD_INQUIRY								FBT_HCI_CMD(FBT_HCI_OCF_INQUIRY, FBT_HCI_OGF_LINK_CONTROL)
16*c2c66affSColin Finck #define FBT_HCI_CMD_INQUIRY_CANCEL						FBT_HCI_CMD(FBT_HCI_OCF_INQUIRY_CANCEL, FBT_HCI_OGF_LINK_CONTROL)
17*c2c66affSColin Finck #define FBT_HCI_CMD_PERIODIC_INQUIRY_MODE				FBT_HCI_CMD(FBT_HCI_OCF_PERIODIC_INQUIRY_MODE, FBT_HCI_OGF_LINK_CONTROL)
18*c2c66affSColin Finck #define FBT_HCI_CMD_EXIT_PERIODIC_INQUIRY_MODE			FBT_HCI_CMD(FBT_HCI_OCF_EXIT_PERIODIC_INQUIRY_MODE, FBT_HCI_OGF_LINK_CONTROL)
19*c2c66affSColin Finck #define FBT_HCI_CMD_CREATE_CONNECTION					FBT_HCI_CMD(FBT_HCI_OCF_CREATE_CONNECTION, FBT_HCI_OGF_LINK_CONTROL)
20*c2c66affSColin Finck #define FBT_HCI_CMD_DISCONNECT							FBT_HCI_CMD(FBT_HCI_OCF_DISCONNECT, FBT_HCI_OGF_LINK_CONTROL)
21*c2c66affSColin Finck #define FBT_HCI_CMD_ADD_SCO_CONNECTION					FBT_HCI_CMD(FBT_HCI_OCF_ADD_SCO_CONNECTION, FBT_HCI_OGF_LINK_CONTROL)
22*c2c66affSColin Finck #define FBT_HCI_CMD_ACCEPT_CONNECTION_REQUEST			FBT_HCI_CMD(FBT_HCI_OCF_ACCEPT_CONNECTION_REQUEST, FBT_HCI_OGF_LINK_CONTROL)
23*c2c66affSColin Finck #define FBT_HCI_CMD_REJECT_CONNECTION_REQUEST			FBT_HCI_CMD(FBT_HCI_OCF_REJECT_CONNECTION_REQUEST, FBT_HCI_OGF_LINK_CONTROL)
24*c2c66affSColin Finck #define FBT_HCI_CMD_LINK_KEY_REQUEST_REPLY				FBT_HCI_CMD(FBT_HCI_OCF_LINK_KEY_REQUEST_REPLY, FBT_HCI_OGF_LINK_CONTROL)
25*c2c66affSColin Finck #define FBT_HCI_CMD_LINK_KEY_REQUEST_NEGATIVE_REPLY		FBT_HCI_CMD(FBT_HCI_OCF_LINK_KEY_REQUEST_NEGATIVE_REPLY, FBT_HCI_OGF_LINK_CONTROL)
26*c2c66affSColin Finck #define FBT_HCI_CMD_PIN_CODE_REQUEST_REPLY				FBT_HCI_CMD(FBT_HCI_OCF_PIN_CODE_REQUEST_REPLY, FBT_HCI_OGF_LINK_CONTROL)
27*c2c66affSColin Finck #define FBT_HCI_CMD_PIN_CODE_REQUEST_NEGATIVE_REPLY		FBT_HCI_CMD(FBT_HCI_OCF_PIN_CODE_REQUEST_NEGATIVE_REPLY, FBT_HCI_OGF_LINK_CONTROL)
28*c2c66affSColin Finck #define FBT_HCI_CMD_CHANGE_CONNECTION_PACKET_TYPE		FBT_HCI_CMD(FBT_HCI_OCF_CHANGE_CONNECTION_PACKET_TYPE, FBT_HCI_OGF_LINK_CONTROL)
29*c2c66affSColin Finck #define FBT_HCI_CMD_AUTHENTICATION_REQUESTED			FBT_HCI_CMD(FBT_HCI_OCF_AUTHENTICATION_REQUESTED, FBT_HCI_OGF_LINK_CONTROL)
30*c2c66affSColin Finck #define FBT_HCI_CMD_SET_CONNECTION_ENCRYPTION			FBT_HCI_CMD(FBT_HCI_OCF_SET_CONNECTION_ENCRYPTION, FBT_HCI_OGF_LINK_CONTROL)
31*c2c66affSColin Finck #define FBT_HCI_CMD_CHANGE_CONNECTION_LINK_KEY			FBT_HCI_CMD(FBT_HCI_OCF_CHANGE_CONNECTION_LINK_KEY, FBT_HCI_OGF_LINK_CONTROL)
32*c2c66affSColin Finck #define FBT_HCI_CMD_MASTER_LINK_KEY						FBT_HCI_CMD(FBT_HCI_OCF_MASTER_LINK_KEY, FBT_HCI_OGF_LINK_CONTROL)
33*c2c66affSColin Finck #define FBT_HCI_CMD_REMOTE_NAME_REQUEST					FBT_HCI_CMD(FBT_HCI_OCF_REMOTE_NAME_REQUEST, FBT_HCI_OGF_LINK_CONTROL)
34*c2c66affSColin Finck #define FBT_HCI_CMD_READ_REMOTE_SUPPORTED_FEATURES		FBT_HCI_CMD(FBT_HCI_OCF_READ_REMOTE_SUPPORTED_FEATURES, FBT_HCI_OGF_LINK_CONTROL)
35*c2c66affSColin Finck #define FBT_HCI_CMD_READ_REMOTE_VERSION_INFORMATION		FBT_HCI_CMD(FBT_HCI_OCF_READ_REMOTE_VERSION_INFORMATION, FBT_HCI_OGF_LINK_CONTROL)
36*c2c66affSColin Finck #define FBT_HCI_CMD_READ_CLOCK_OFFSET					FBT_HCI_CMD(FBT_HCI_OCF_READ_CLOCK_OFFSET, FBT_HCI_OGF_LINK_CONTROL)
37*c2c66affSColin Finck 
38*c2c66affSColin Finck // Link policy CMDs
39*c2c66affSColin Finck #define FBT_HCI_CMD_HOLD_MODE					FBT_HCI_CMD(FBT_HCI_OCF_HOLD_MODE, FBT_HCI_OGF_LINK_POLICY)
40*c2c66affSColin Finck #define FBT_HCI_CMD_SNIFF_MODE                  FBT_HCI_CMD(FBT_HCI_OCF_SNIFF_MODE, FBT_HCI_OGF_LINK_POLICY)
41*c2c66affSColin Finck #define FBT_HCI_CMD_EXIT_SNIFF_MODE             FBT_HCI_CMD(FBT_HCI_OCF_EXIT_SNIFF_MODE, FBT_HCI_OGF_LINK_POLICY)
42*c2c66affSColin Finck #define FBT_HCI_CMD_PARK_MODE                   FBT_HCI_CMD(FBT_HCI_OCF_PARK_MODE, FBT_HCI_OGF_LINK_POLICY)
43*c2c66affSColin Finck #define FBT_HCI_CMD_EXIT_PARK_MODE              FBT_HCI_CMD(FBT_HCI_OCF_EXIT_PARK_MODE, FBT_HCI_OGF_LINK_POLICY)
44*c2c66affSColin Finck #define FBT_HCI_CMD_QOS_SETUP                   FBT_HCI_CMD(FBT_HCI_OCF_QOS_SETUP, FBT_HCI_OGF_LINK_POLICY)
45*c2c66affSColin Finck #define FBT_HCI_CMD_ROLE_DISCOVERY              FBT_HCI_CMD(FBT_HCI_OCF_ROLE_DISCOVERY, FBT_HCI_OGF_LINK_POLICY)
46*c2c66affSColin Finck #define FBT_HCI_CMD_SWITCH_ROLE                 FBT_HCI_CMD(FBT_HCI_OCF_SWITCH_ROLE, FBT_HCI_OGF_LINK_POLICY)
47*c2c66affSColin Finck #define FBT_HCI_CMD_READ_LINK_POLICY_SETTINGS	FBT_HCI_CMD(FBT_HCI_OCF_READ_LINK_POLICY_SETTINGS, FBT_HCI_OGF_LINK_POLICY)
48*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_LINK_POLICY_SETTINGS	FBT_HCI_CMD(FBT_HCI_OCF_WRITE_LINK_POLICY_SETTINGS, FBT_HCI_OGF_LINK_POLICY)
49*c2c66affSColin Finck 
50*c2c66affSColin Finck // Host controller & baseband command CMDs
51*c2c66affSColin Finck #define FBT_HCI_CMD_SET_EVENT_MASK                            FBT_HCI_CMD(FBT_HCI_OCF_SET_EVENT_MASK, FBT_HCI_OGF_CONTROL_BASEBAND)
52*c2c66affSColin Finck #define FBT_HCI_CMD_RESET                                     FBT_HCI_CMD(FBT_HCI_OCF_RESET, FBT_HCI_OGF_CONTROL_BASEBAND)
53*c2c66affSColin Finck #define FBT_HCI_CMD_SET_EVENT_FILTER                          FBT_HCI_CMD(FBT_HCI_OCF_SET_EVENT_FILTER, FBT_HCI_OGF_CONTROL_BASEBAND)
54*c2c66affSColin Finck #define FBT_HCI_CMD_FLUSH                                     FBT_HCI_CMD(FBT_HCI_OCF_FLUSH, FBT_HCI_OGF_CONTROL_BASEBAND)
55*c2c66affSColin Finck #define FBT_HCI_CMD_READ_PIN_TYPE                             FBT_HCI_CMD(FBT_HCI_OCF_READ_PIN_TYPE, FBT_HCI_OGF_CONTROL_BASEBAND)
56*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_PIN_TYPE                            FBT_HCI_CMD(FBT_HCI_OCF_WRITE_PIN_TYPE, FBT_HCI_OGF_CONTROL_BASEBAND)
57*c2c66affSColin Finck #define FBT_HCI_CMD_CREATE_NEW_UNIT_KEY                       FBT_HCI_CMD(FBT_HCI_OCF_CREATE_NEW_UNIT_KEY, FBT_HCI_OGF_CONTROL_BASEBAND)
58*c2c66affSColin Finck #define FBT_HCI_CMD_READ_STORED_LINK_KEY                      FBT_HCI_CMD(FBT_HCI_OCF_READ_STORED_LINK_KEY, FBT_HCI_OGF_CONTROL_BASEBAND)
59*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_STORED_LINK_KEY                     FBT_HCI_CMD(FBT_HCI_OCF_WRITE_STORED_LINK_KEY, FBT_HCI_OGF_CONTROL_BASEBAND)
60*c2c66affSColin Finck #define FBT_HCI_CMD_DELETE_STORED_LINK_KEY                    FBT_HCI_CMD(FBT_HCI_OCF_DELETE_STORED_LINK_KEY, FBT_HCI_OGF_CONTROL_BASEBAND)
61*c2c66affSColin Finck #define FBT_HCI_CMD_CHANGE_LOCAL_NAME                         FBT_HCI_CMD(FBT_HCI_OCF_CHANGE_LOCAL_NAME, FBT_HCI_OGF_CONTROL_BASEBAND)
62*c2c66affSColin Finck #define FBT_HCI_CMD_READ_LOCAL_NAME                           FBT_HCI_CMD(FBT_HCI_OCF_READ_LOCAL_NAME, FBT_HCI_OGF_CONTROL_BASEBAND)
63*c2c66affSColin Finck #define FBT_HCI_CMD_READ_CONNECTION_ACCEPT_TIMEOUT            FBT_HCI_CMD(FBT_HCI_OCF_READ_CONNECTION_ACCEPT_TIMEOUT, FBT_HCI_OGF_CONTROL_BASEBAND)
64*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_CONNECTION_ACCEPT_TIMEOUT           FBT_HCI_CMD(FBT_HCI_OCF_WRITE_CONNECTION_ACCEPT_TIMEOUT, FBT_HCI_OGF_CONTROL_BASEBAND)
65*c2c66affSColin Finck #define FBT_HCI_CMD_READ_PAGE_TIMEOUT                         FBT_HCI_CMD(FBT_HCI_OCF_READ_PAGE_TIMEOUT, FBT_HCI_OGF_CONTROL_BASEBAND)
66*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_PAGE_TIMEOUT                        FBT_HCI_CMD(FBT_HCI_OCF_WRITE_PAGE_TIMEOUT, FBT_HCI_OGF_CONTROL_BASEBAND)
67*c2c66affSColin Finck #define FBT_HCI_CMD_READ_SCAN_ENABLE                          FBT_HCI_CMD(FBT_HCI_OCF_READ_SCAN_ENABLE, FBT_HCI_OGF_CONTROL_BASEBAND)
68*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_SCAN_ENABLE                         FBT_HCI_CMD(FBT_HCI_OCF_WRITE_SCAN_ENABLE, FBT_HCI_OGF_CONTROL_BASEBAND)
69*c2c66affSColin Finck #define FBT_HCI_CMD_READ_PAGE_SCAN_ACTIVITY                   FBT_HCI_CMD(FBT_HCI_OCF_READ_PAGE_SCAN_ACTIVITY, FBT_HCI_OGF_CONTROL_BASEBAND)
70*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_PAGE_SCAN_ACTIVITY                  FBT_HCI_CMD(FBT_HCI_OCF_WRITE_PAGE_SCAN_ACTIVITY, FBT_HCI_OGF_CONTROL_BASEBAND)
71*c2c66affSColin Finck #define FBT_HCI_CMD_READ_INQUIRY_SCAN_ACTIVITY                FBT_HCI_CMD(FBT_HCI_OCF_READ_INQUIRY_SCAN_ACTIVITY, FBT_HCI_OGF_CONTROL_BASEBAND)
72*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_INQUIRY_SCAN_ACTIVITY               FBT_HCI_CMD(FBT_HCI_OCF_WRITE_INQUIRY_SCAN_ACTIVITY, FBT_HCI_OGF_CONTROL_BASEBAND)
73*c2c66affSColin Finck #define FBT_HCI_CMD_READ_AUTHENTICATION_ENABLE                FBT_HCI_CMD(FBT_HCI_OCF_READ_AUTHENTICATION_ENABLE, FBT_HCI_OGF_CONTROL_BASEBAND)
74*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_AUTHENTICATION_ENABLE               FBT_HCI_CMD(FBT_HCI_OCF_WRITE_AUTHENTICATION_ENABLE, FBT_HCI_OGF_CONTROL_BASEBAND)
75*c2c66affSColin Finck #define FBT_HCI_CMD_READ_ENCRYPTION_MODE                      FBT_HCI_CMD(FBT_HCI_OCF_READ_ENCRYPTION_MODE, FBT_HCI_OGF_CONTROL_BASEBAND)
76*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_ENCRYPTION_MODE                     FBT_HCI_CMD(FBT_HCI_OCF_WRITE_ENCRYPTION_MODE, FBT_HCI_OGF_CONTROL_BASEBAND)
77*c2c66affSColin Finck #define FBT_HCI_CMD_READ_CLASS_OF_DEVICE                      FBT_HCI_CMD(FBT_HCI_OCF_READ_CLASS_OF_DEVICE, FBT_HCI_OGF_CONTROL_BASEBAND)
78*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_CLASS_OF_DEVICE                     FBT_HCI_CMD(FBT_HCI_OCF_WRITE_CLASS_OF_DEVICE, FBT_HCI_OGF_CONTROL_BASEBAND)
79*c2c66affSColin Finck #define FBT_HCI_CMD_READ_VOICE_SETTING                        FBT_HCI_CMD(FBT_HCI_OCF_READ_VOICE_SETTING, FBT_HCI_OGF_CONTROL_BASEBAND)
80*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_VOICE_SETTING                       FBT_HCI_CMD(FBT_HCI_OCF_WRITE_VOICE_SETTING, FBT_HCI_OGF_CONTROL_BASEBAND)
81*c2c66affSColin Finck #define FBT_HCI_CMD_READ_AUTOMATIC_FLUSH_TIMEOUT              FBT_HCI_CMD(FBT_HCI_OCF_READ_AUTOMATIC_FLUSH_TIMEOUT, FBT_HCI_OGF_CONTROL_BASEBAND)
82*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_AUTOMATIC_FLUSH_TIMEOUT             FBT_HCI_CMD(FBT_HCI_OCF_WRITE_AUTOMATIC_FLUSH_TIMEOUT, FBT_HCI_OGF_CONTROL_BASEBAND)
83*c2c66affSColin Finck #define FBT_HCI_CMD_READ_NUM_BROADCAST_RETRANSMISSIONS        FBT_HCI_CMD(FBT_HCI_OCF_READ_NUM_BROADCAST_RETRANSMISSIONS, FBT_HCI_OGF_CONTROL_BASEBAND)
84*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_NUM_BROADCAST_RETRANSMISSIONS       FBT_HCI_CMD(FBT_HCI_OCF_WRITE_NUM_BROADCAST_RETRANSMISSIONS, FBT_HCI_OGF_CONTROL_BASEBAND)
85*c2c66affSColin Finck #define FBT_HCI_CMD_READ_HOLD_MODE_ACTIVITY                   FBT_HCI_CMD(FBT_HCI_OCF_READ_HOLD_MODE_ACTIVITY, FBT_HCI_OGF_CONTROL_BASEBAND)
86*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_HOLD_MODE_ACTIVITY                  FBT_HCI_CMD(FBT_HCI_OCF_WRITE_HOLD_MODE_ACTIVITY, FBT_HCI_OGF_CONTROL_BASEBAND)
87*c2c66affSColin Finck #define FBT_HCI_CMD_READ_TRANSMIT_POWER_LEVEL                 FBT_HCI_CMD(FBT_HCI_OCF_READ_TRANSMIT_POWER_LEVEL, FBT_HCI_OGF_CONTROL_BASEBAND)
88*c2c66affSColin Finck #define FBT_HCI_CMD_READ_SCO_FLOW_CONTROL_ENABLE              FBT_HCI_CMD(FBT_HCI_OCF_READ_SCO_FLOW_CONTROL_ENABLE, FBT_HCI_OGF_CONTROL_BASEBAND)
89*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_SCO_FLOW_CONTROL_ENABLE             FBT_HCI_CMD(FBT_HCI_OCF_WRITE_SCO_FLOW_CONTROL_ENABLE, FBT_HCI_OGF_CONTROL_BASEBAND)
90*c2c66affSColin Finck #define FBT_HCI_CMD_SET_HOST_CONTROLLER_TO_HOST_FLOW_CONTROL  FBT_HCI_CMD(FBT_HCI_OCF_SET_HOST_CONTROLLER_TO_HOST_FLOW_CONTROL, FBT_HCI_OGF_CONTROL_BASEBAND)
91*c2c66affSColin Finck #define FBT_HCI_CMD_HOST_BUFFER_SIZE                          FBT_HCI_CMD(FBT_HCI_OCF_HOST_BUFFER_SIZE, FBT_HCI_OGF_CONTROL_BASEBAND)
92*c2c66affSColin Finck #define FBT_HCI_CMD_HOST_NUMBER_OF_COMPLETED_PACKETS          FBT_HCI_CMD(FBT_HCI_OCF_HOST_NUMBER_OF_COMPLETED_PACKETS, FBT_HCI_OGF_CONTROL_BASEBAND)
93*c2c66affSColin Finck #define FBT_HCI_CMD_READ_LINK_SUPERVISION_TIMEOUT             FBT_HCI_CMD(FBT_HCI_OCF_READ_LINK_SUPERVISION_TIMEOUT, FBT_HCI_OGF_CONTROL_BASEBAND)
94*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_LINK_SUPERVISION_TIMEOUT            FBT_HCI_CMD(FBT_HCI_OCF_WRITE_LINK_SUPERVISION_TIMEOUT, FBT_HCI_OGF_CONTROL_BASEBAND)
95*c2c66affSColin Finck #define FBT_HCI_CMD_READ_NUMBER_OF_SUPPORTED_IAC              FBT_HCI_CMD(FBT_HCI_OCF_READ_NUMBER_OF_SUPPORTED_IAC, FBT_HCI_OGF_CONTROL_BASEBAND)
96*c2c66affSColin Finck #define FBT_HCI_CMD_READ_CURRENT_IAC_LAP                      FBT_HCI_CMD(FBT_HCI_OCF_READ_CURRENT_IAC_LAP, FBT_HCI_OGF_CONTROL_BASEBAND)
97*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_CURRENT_IAC_LAP                     FBT_HCI_CMD(FBT_HCI_OCF_WRITE_CURRENT_IAC_LAP, FBT_HCI_OGF_CONTROL_BASEBAND)
98*c2c66affSColin Finck #define FBT_HCI_CMD_READ_PAGE_SCAN_PERIOD_MODE                FBT_HCI_CMD(FBT_HCI_OCF_READ_PAGE_SCAN_PERIOD_MODE, FBT_HCI_OGF_CONTROL_BASEBAND)
99*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_PAGE_SCAN_PERIOD_MODE               FBT_HCI_CMD(FBT_HCI_OCF_WRITE_PAGE_SCAN_PERIOD_MODE, FBT_HCI_OGF_CONTROL_BASEBAND)
100*c2c66affSColin Finck #define FBT_HCI_CMD_READ_PAGE_SCAN_MODE                       FBT_HCI_CMD(FBT_HCI_OCF_READ_PAGE_SCAN_MODE, FBT_HCI_OGF_CONTROL_BASEBAND)
101*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_PAGE_SCAN_MODE                      FBT_HCI_CMD(FBT_HCI_OCF_WRITE_PAGE_SCAN_MODE, FBT_HCI_OGF_CONTROL_BASEBAND)
102*c2c66affSColin Finck 
103*c2c66affSColin Finck // Informational parameters CMDs
104*c2c66affSColin Finck #define FBT_HCI_CMD_READ_LOCAL_VERSION_INFORMATION         FBT_HCI_CMD(FBT_HCI_OCF_READ_LOCAL_VERSION_INFORMATION, FBT_HCI_OGF_INFORMATIONAL_PARAMETERS)
105*c2c66affSColin Finck #define FBT_HCI_CMD_LOCAL_SUPPPROTED_FEATURES              FBT_HCI_CMD(FBT_HCI_OCF_LOCAL_SUPPPROTED_FEATURES, FBT_HCI_OGF_INFORMATIONAL_PARAMETERS)
106*c2c66affSColin Finck #define FBT_HCI_CMD_READ_BUFFER_SIZE                       FBT_HCI_CMD(FBT_HCI_OCF_READ_BUFFER_SIZE, FBT_HCI_OGF_INFORMATIONAL_PARAMETERS)
107*c2c66affSColin Finck #define FBT_HCI_CMD_READ_COUNTRY_CODE                      FBT_HCI_CMD(FBT_HCI_OCF_READ_COUNTRY_CODE, FBT_HCI_OGF_INFORMATIONAL_PARAMETERS)
108*c2c66affSColin Finck #define FBT_HCI_CMD_READ_BD_ADDR                           FBT_HCI_CMD(FBT_HCI_OCF_READ_BD_ADDR, FBT_HCI_OGF_INFORMATIONAL_PARAMETERS)
109*c2c66affSColin Finck 
110*c2c66affSColin Finck // Status parameters CMDs
111*c2c66affSColin Finck #define FBT_HCI_CMD_READ_FAILED_CONTACT_COUNTER            FBT_HCI_CMD(FBT_HCI_OCF_READ_FAILED_CONTACT_COUNTER, FBT_HCI_OGF_STATUS_PARAMETERS)
112*c2c66affSColin Finck #define FBT_HCI_CMD_RESET_FAILED_CONTACT_COUNTER           FBT_HCI_CMD(FBT_HCI_OCF_RESET_FAILED_CONTACT_COUNTER, FBT_HCI_OGF_STATUS_PARAMETERS)
113*c2c66affSColin Finck #define FBT_HCI_CMD_GET_LINK_QUALITY                       FBT_HCI_CMD(FBT_HCI_OCF_GET_LINK_QUALITY, FBT_HCI_OGF_STATUS_PARAMETERS)
114*c2c66affSColin Finck #define FBT_HCI_CMD_READ_RSSI                              FBT_HCI_CMD(FBT_HCI_OCF_READ_RSSI, FBT_HCI_OGF_STATUS_PARAMETERS)
115*c2c66affSColin Finck 
116*c2c66affSColin Finck // Testing CMDs
117*c2c66affSColin Finck #define FBT_HCI_CMD_READ_LOOPBACK_MODE                     FBT_HCI_CMD(FBT_HCI_OCF_READ_LOOPBACK_MODE, FBT_HCI_OGF_TESTING)
118*c2c66affSColin Finck #define FBT_HCI_CMD_WRITE_LOOPBACK_MODE                    FBT_HCI_CMD(FBT_HCI_OCF_WRITE_LOOPBACK_MODE, FBT_HCI_OGF_TESTING)
119*c2c66affSColin Finck #define FBT_HCI_CMD_ENABLE_DEVICE_UNDER_TEST_MODE          FBT_HCI_CMD(FBT_HCI_OCF_ENABLE_DEVICE_UNDER_TEST_MODE, FBT_HCI_OGF_TESTING)
120*c2c66affSColin Finck 
121*c2c66affSColin Finck // Packet Boundry Flags (ORed into the upper 8 bits of the connection handle)
122*c2c66affSColin Finck #define FBT_HCI_PACKET_BOUNDRY_FIRST         0x20
123*c2c66affSColin Finck #define FBT_HCI_PACKET_BOUNDRY_NEXT          0x10
124*c2c66affSColin Finck 
125*c2c66affSColin Finck // HCI header types
126*c2c66affSColin Finck #define FBT_HCI_SYNC_HCI_COMMAND_PACKET        0x01
127*c2c66affSColin Finck #define FBT_HCI_SYNC_ACL_DATA_PACKET           0x02
128*c2c66affSColin Finck #define FBT_HCI_SYNC_SCO_DATA_PACKET           0x03
129*c2c66affSColin Finck #define FBT_HCI_SYNC_HCI_EVENT_PACKET          0x04
130*c2c66affSColin Finck 
131*c2c66affSColin Finck // Packet types for use in CreateConnection
132*c2c66affSColin Finck #define FBT_HCI_PACKET_TYPE_DM1	0x0008	// 1 time slot, 1-18 bytes of data, FEC encoded
133*c2c66affSColin Finck #define FBT_HCI_PACKET_TYPE_DH1	0x0010	// 1 time slot, 1-28 bytes of data, not FEC encoded
134*c2c66affSColin Finck 
135*c2c66affSColin Finck #define FBT_HCI_PACKET_TYPE_DM3	0x0400	// 3 time slots, 2-123 bytes of data, FEC encoded
136*c2c66affSColin Finck #define FBT_HCI_PACKET_TYPE_DH3	0x0800	// 3 time slots, 2-185 bytes of data, not FEC encoded
137*c2c66affSColin Finck 
138*c2c66affSColin Finck #define FBT_HCI_PACKET_TYPE_DM5	0x4000	// 5 time slots, 2-226 bytes of data, FEC encoded
139*c2c66affSColin Finck #define FBT_HCI_PACKET_TYPE_DH5	0x8000	// 3 time slots, 2-341 bytes of data, not FEC encoded
140*c2c66affSColin Finck 
141*c2c66affSColin Finck // LAP codes for use in Inquiry
142*c2c66affSColin Finck #define FBT_HCI_LAP_GIAC	0x9E8B33
143*c2c66affSColin Finck #define FBT_HCI_LAP_LIAC	0x9E8B00
144*c2c66affSColin Finck 
145*c2c66affSColin Finck // Link Types
146*c2c66affSColin Finck #define FBT_HCI_LINK_TYPE_SCO          0x00
147*c2c66affSColin Finck #define FBT_HCI_LINK_TYPE_ACL          0x01
148*c2c66affSColin Finck 
149*c2c66affSColin Finck // Maximum number of each type of handle
150*c2c66affSColin Finck #define FBT_HCI_MAX_ALLOWED_ACL_HANDLES        32
151*c2c66affSColin Finck #define FBT_HCI_MAX_ALLOWED_SCO_HANDLES        4
152*c2c66affSColin Finck 
153*c2c66affSColin Finck #endif // _FBT_HCI_COMMANDS_H
154