1 /* 2 * Copyright (C) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef HCI_DEF_STATUS_PARAMS_CMD_H 17 #define HCI_DEF_STATUS_PARAMS_CMD_H 18 19 #include <stdint.h> 20 21 #include "hci_def_cmd_common.h" 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 #pragma pack(1) 28 29 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 30 // 7.5 STATUS PARAMETERS 31 #define HCI_COMMAND_OGF_STATUS_PARAMETERS 0x05 32 33 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 34 // 7.5.1 Read Failed Contact Counter Command 35 #define HCI_READ_FAILED_CONTACT_COUNTER MAKE_OPCODE(0x0001, HCI_COMMAND_OGF_STATUS_PARAMETERS) 36 37 typedef struct { 38 uint16_t handle; 39 } HciReadFailedContactCounterParam; 40 41 typedef struct { 42 uint8_t status; 43 uint16_t handle; 44 uint16_t failedContactCounter; 45 } HciReadFailedContactCounterReturnParam; 46 47 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 48 // 7.5.2 Reset Failed Contact Counter Command 49 #define HCI_RESET_FAILED_CONTACT_COUNTER MAKE_OPCODE(0x0002, HCI_COMMAND_OGF_STATUS_PARAMETERS) 50 51 typedef struct { 52 uint16_t handle; 53 } HciResetFailedContactCounterParam; 54 55 typedef struct { 56 uint8_t status; 57 uint16_t handle; 58 } HciResetFailedContactCounterReturnParam; 59 60 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 61 // 7.5.3 Read Link Quality Command 62 #define HCI_READ_LINK_QUALITY MAKE_OPCODE(0x0003, HCI_COMMAND_OGF_STATUS_PARAMETERS) 63 64 typedef struct { 65 uint16_t handle; 66 } HciReadLinkQualityParam; 67 68 typedef struct { 69 uint8_t status; 70 uint16_t handle; 71 uint8_t linkQuality; 72 } HciReadLinkQualityReturnParam; 73 74 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 75 // 7.5.4 Read RSSI Command 76 #define HCI_READ_RSSI MAKE_OPCODE(0x0005, HCI_COMMAND_OGF_STATUS_PARAMETERS) 77 78 typedef struct { 79 uint16_t handle; 80 } HciReadRssiParam; 81 82 typedef struct { 83 uint8_t status; 84 uint16_t handle; 85 int8_t rssi; 86 } HciReadRssiReturnParam; 87 88 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 89 // 7.5.5 Read AFH Channel Map Command 90 #define HCI_READ_AFH_CHANNEL_MAP MAKE_OPCODE(0x0006, HCI_COMMAND_OGF_STATUS_PARAMETERS) 91 92 typedef struct { 93 uint16_t connectionHandle; 94 } HciReadAfhChannelMapParam; 95 96 typedef struct { 97 uint8_t status; 98 uint16_t connectionHandle; 99 uint8_t afhMode; 100 uint8_t afhChannelMap[10]; 101 } HciReadAfhChannelMapReturnParam; 102 103 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 104 // 7.5.6 Read Clock Command 105 #define HCI_READ_CLOCK MAKE_OPCODE(0x0007, HCI_COMMAND_OGF_STATUS_PARAMETERS) 106 107 typedef struct { 108 uint16_t connectionHandle; 109 uint8_t whichClock; 110 } HciReadClockParam; 111 112 typedef struct { 113 uint8_t status; 114 uint16_t connectionHandle; 115 uint32_t clock; 116 uint16_t accuracy; 117 } HciReadClockReturnParam; 118 119 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 120 // 7.5.7 Read Encryption Key Size Command 121 #define HCI_READ_ENCRYPTION_KEY_SIZE MAKE_OPCODE(0x0008, HCI_COMMAND_OGF_STATUS_PARAMETERS) 122 123 typedef struct { 124 uint16_t connectionHandle; 125 } HciReadEncryptionKeySizeParam; 126 127 typedef struct { 128 uint8_t status; 129 uint16_t connectionHandle; 130 uint8_t keySize; 131 } HciReadEncryptionKeySizeReturnParam; 132 133 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 134 // 7.5.8 Read Local AMP Info Command 135 #define HCI_READ_LOCAL_AMP_INFO MAKE_OPCODE(0x0009, HCI_COMMAND_OGF_STATUS_PARAMETERS) 136 137 typedef struct { 138 uint8_t status; 139 uint8_t ampStatus; 140 uint32_t totalBandwidth; 141 uint32_t maxGuaranteedBandwidth; 142 uint32_t minLatency; 143 uint16_t maxPduSize; 144 uint8_t controllerType; 145 uint16_t palCapabilities; 146 uint16_t maxAmpAssocLength; 147 uint32_t maxFlushTimeout; 148 uint32_t bestEffortFlushTimeout; 149 } HciReadLocalAMPInfoReturnParam; 150 151 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 152 // 7.5.9 Read Local AMP ASSOC Command 153 #define HCI_READ_LOCAL_AMP_ASSOC MAKE_OPCODE(0x000A, HCI_COMMAND_OGF_STATUS_PARAMETERS) 154 155 typedef struct { 156 uint8_t physicalLinkHandle; 157 uint16_t lengthSoFar; 158 uint16_t ampAssocLength; 159 } HciReadLocalAmpAssocParam; 160 161 typedef struct { 162 uint8_t status; 163 uint8_t physicalLinkHandle; 164 uint16_t ampAssocLength; 165 } HciReadLocalAmpAssocReturnParam; 166 167 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 168 // 7.5.10 Write Remote AMP ASSOC Command 169 #define HCI_WRITE_REMOTE_AMP_ASSOC MAKE_OPCODE(0x000B, HCI_COMMAND_OGF_STATUS_PARAMETERS) 170 171 typedef struct { 172 uint8_t physicalLinkHandle; 173 uint16_t lengthSoFar; 174 uint16_t ampAssocLength; 175 uint8_t ampAssocfragment[248]; 176 } HciWriteRemoteAmpAssocParam; 177 178 typedef struct { 179 uint8_t status; 180 uint8_t physicalLinkHandle; 181 uint16_t ampAssocLength; 182 } HciWriteRemoteAmpAssocReturnParam; 183 184 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 185 // 7.5.11 Get MWS Transport Layer Configuration Command 186 #define HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION MAKE_OPCODE(0x000C, HCI_COMMAND_OGF_STATUS_PARAMETERS) 187 188 typedef struct { 189 uint8_t status; 190 uint8_t numTransports; 191 uint8_t transportLayer; 192 uint8_t numBaudRates; 193 uint8_t *toMwsBaudRate; 194 uint8_t *fromMwsBaudRate; 195 } HciGetMwsTransportLayerConfigurationReturnParam; 196 197 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 198 // 7.5.12 Set Triggered Clock Capture Command 199 #define HCI_SET_TRIGGERED_CLOCK_CAPTURE MAKE_OPCODE(0x000D, HCI_COMMAND_OGF_STATUS_PARAMETERS) 200 201 typedef struct { 202 uint16_t connectionHandle; 203 uint8_t enable; 204 uint8_t whichClock; 205 uint8_t lpoAllowed; 206 uint8_t numClockCapturesToFilter; 207 } HciSetTriggeredClockCaptureParam; 208 209 typedef HciStatusParam HciSetTriggeredClockCaptureReturnParam; 210 211 #pragma pack(0) 212 213 #ifdef __cplusplus 214 } 215 #endif 216 217 #endif