1 /* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 /* 18 * NFC Status Values - Function Return Codes 19 */ 20 21 #ifndef PHNFCSTATUS_H 22 #define PHNFCSTATUS_H 23 24 #include <phNfcTypes.h> 25 26 /* Internally required by PHNFCSTVAL. */ 27 #define PHNFCSTSHL8 (8U) 28 /* Required by PHNFCSTVAL. */ 29 #define PHNFCSTBLOWER ((NFCSTATUS)(0x00FFU)) 30 31 /* 32 * NFC Status Composition Macro 33 * 34 * This is the macro which must be used to compose status values. 35 * 36 * phNfcCompID Component ID, as defined in phNfcCompId.h . 37 * phNfcStatus Status values, as defined in phNfcStatus.h . 38 * 39 * The macro is not required for the NFCSTATUS_SUCCESS value. 40 * This is the only return value to be used directly. 41 * For all other values it shall be used in assignment and conditional 42 * statements, e.g.: NFCSTATUS status = PHNFCSTVAL(phNfcCompID, phNfcStatus); 43 * ... if (status == PHNFCSTVAL(phNfcCompID, phNfcStatus)) ... 44 */ 45 #define PHNFCSTVAL(phNfcCompID, phNfcStatus) \ 46 (((phNfcStatus) == (NFCSTATUS_SUCCESS)) \ 47 ? (NFCSTATUS_SUCCESS) \ 48 : ((((NFCSTATUS)(phNfcStatus)) & (PHNFCSTBLOWER)) | \ 49 (((uint16_t)(phNfcCompID)) << (PHNFCSTSHL8)))) 50 51 /* 52 * PHNFCSTATUS 53 * Get grp_retval from Status Code 54 */ 55 #define PHNFCSTATUS(phNfcStatus) ((phNfcStatus)&0x00FFU) 56 #define PHNFCCID(phNfcStatus) (((phNfcStatus)&0xFF00U) >> 8) 57 58 /* 59 * Status Codes 60 * 61 * Generic Status codes for the NFC components. Combined with the Component ID 62 * they build the value (status) returned by each function. 63 * Example: 64 * grp_comp_id "Component ID" - e.g. 0x10, plus 65 * status code as listed in this file - e.g. 0x03 66 * result in a status value of 0x0003. 67 */ 68 69 /* 70 * The function indicates successful completion 71 */ 72 #define NFCSTATUS_SUCCESS (0x0000) 73 74 /* 75 * The function indicates successful completion 76 */ 77 #define NFCSTATUS_OK (NFCSTATUS_SUCCESS) 78 79 /* 80 * At least one parameter could not be properly interpreted 81 */ 82 #define NFCSTATUS_INVALID_PARAMETER (0x0001) 83 84 /* 85 * The buffer provided by the caller is too small 86 */ 87 #define NFCSTATUS_BUFFER_TOO_SMALL (0x0003) 88 89 /* 90 * Device specifier/handle value is invalid for the operation 91 */ 92 #define NFCSTATUS_INVALID_DEVICE (0x0006) 93 94 /* 95 * The function executed successfully but could have returned 96 * more information than space provided by the caller 97 */ 98 #define NFCSTATUS_MORE_INFORMATION (0x0008) 99 100 /* 101 * No response from the remote device received: Time-out 102 */ 103 #define NFCSTATUS_RF_TIMEOUT (0x0009) 104 105 /* 106 * RF Error during data transaction with the remote device 107 */ 108 #define NFCSTATUS_RF_ERROR (0x000A) 109 110 /* 111 * Not enough resources Memory, Timer etc(e.g. allocation failed.) 112 */ 113 #define NFCSTATUS_INSUFFICIENT_RESOURCES (0x000C) 114 115 /* 116 * A non-blocking function returns this immediately to indicate 117 * that an internal operation is in progress 118 */ 119 #define NFCSTATUS_PENDING (0x000D) 120 121 /* 122 * A board communication error occurred 123 * (e.g. Configuration went wrong) 124 */ 125 #define NFCSTATUS_BOARD_COMMUNICATION_ERROR (0x000F) 126 127 /* 128 * Invalid State of the particular state machine 129 */ 130 #define NFCSTATUS_INVALID_STATE (0x0011) 131 132 /* 133 * This Layer is Not initialized, hence initialization required. 134 */ 135 #define NFCSTATUS_NOT_INITIALISED (0x0031) 136 137 /* 138 * The Layer is already initialized, hence initialization repeated. 139 */ 140 #define NFCSTATUS_ALREADY_INITIALISED (0x0032) 141 142 /* 143 * Feature not supported 144 */ 145 #define NFCSTATUS_FEATURE_NOT_SUPPORTED (0x0033) 146 147 /* The Unregistration command has failed because the user wants to unregister 148 * on an element for which he was not registered 149 */ 150 #define NFCSTATUS_NOT_REGISTERED (0x0034) 151 152 /* The Registration command has failed because the user wants to register on 153 * an element for which he is already registered 154 */ 155 #define NFCSTATUS_ALREADY_REGISTERED (0x0035) 156 157 /* Single Tag with Multiple 158 Protocol support detected */ 159 #define NFCSTATUS_MULTIPLE_PROTOCOLS (0x0036) 160 161 /* 162 * Feature not supported 163 */ 164 #define NFCSTATUS_MULTIPLE_TAGS (0x0037) 165 166 /* 167 * A DESELECT event has occurred 168 */ 169 #define NFCSTATUS_DESELECTED (0x0038) 170 171 /* 172 * A RELEASE event has occurred 173 */ 174 #define NFCSTATUS_RELEASED (0x0039) 175 176 /* 177 * The operation is currently not possible or not allowed 178 */ 179 #define NFCSTATUS_NOT_ALLOWED (0x003A) 180 181 /* 182 * The system is busy with the previous operation. 183 */ 184 #define NFCSTATUS_BUSY (0x006F) 185 186 /* NDEF Mapping error codes */ 187 188 /* The remote device (type) is not valid for this request. */ 189 #define NFCSTATUS_INVALID_REMOTE_DEVICE (0x001D) 190 191 /* Read operation failed */ 192 #define NFCSTATUS_READ_FAILED (0x0014) 193 194 /* 195 * Write operation failed 196 */ 197 #define NFCSTATUS_WRITE_FAILED (0x0015) 198 199 /* Non Ndef Compliant */ 200 #define NFCSTATUS_NO_NDEF_SUPPORT (0x0016) 201 202 /* Could not proceed further with the write operation: reached card EOF*/ 203 #define NFCSTATUS_EOF_NDEF_CONTAINER_REACHED (0x001A) 204 205 /* Incorrect number of bytes received from the card*/ 206 #define NFCSTATUS_INVALID_RECEIVE_LENGTH (0x001B) 207 208 /* The data format/composition is not understood/correct. */ 209 #define NFCSTATUS_INVALID_FORMAT (0x001C) 210 211 /* There is not sufficient storage available. */ 212 #define NFCSTATUS_INSUFFICIENT_STORAGE (0x001F) 213 214 /* The Ndef Format procedure has failed. */ 215 #define NFCSTATUS_FORMAT_ERROR (0x0023) 216 217 /* The NCI Cedit error */ 218 #define NFCSTATUS_CREDIT_TIMEOUT (0x0024) 219 220 /* 221 * Response Time out for the control message(NFCC not responded) 222 */ 223 #define NFCSTATUS_RESPONSE_TIMEOUT (0x0025) 224 225 /* 226 * Device is already connected 227 */ 228 #define NFCSTATUS_ALREADY_CONNECTED (0x0026) 229 230 /* 231 * Device is already connected 232 */ 233 #define NFCSTATUS_ANOTHER_DEVICE_CONNECTED (0x0027) 234 235 /* 236 * Single Target Detected and Activated 237 */ 238 #define NFCSTATUS_SINGLE_TAG_ACTIVATED (0x0028) 239 240 /* 241 * Single Target Detected 242 */ 243 #define NFCSTATUS_SINGLE_TAG_DISCOVERED (0x0029) 244 245 /* 246 * Secure element Detected and Activated 247 */ 248 #define NFCSTATUS_SECURE_ELEMENT_ACTIVATED (0x0028) 249 250 /* 251 * Unknown error Status Codes 252 */ 253 #define NFCSTATUS_UNKNOWN_ERROR (0x00FE) 254 255 /* 256 * Status code for failure 257 */ 258 #define NFCSTATUS_FAILED (0x00FF) 259 260 /* 261 * The function/command has been aborted 262 */ 263 #define NFCSTATUS_CMD_ABORTED (0x0002) 264 265 /* 266 * No target found after poll 267 */ 268 #define NFCSTATUS_NO_TARGET_FOUND (0x000A) 269 270 /* Attempt to disconnect a not connected remote device. */ 271 #define NFCSTATUS_NO_DEVICE_CONNECTED (0x000B) 272 273 /* External RF field detected. */ 274 #define NFCSTATUS_EXTERNAL_RF_DETECTED (0x000E) 275 276 /* Message is not allowed by the state machine 277 * (e.g. configuration went wrong) 278 */ 279 #define NFCSTATUS_MSG_NOT_ALLOWED_BY_FSM (0x0010) 280 281 /* 282 * No access has been granted 283 */ 284 #define NFCSTATUS_ACCESS_DENIED (0x001E) 285 286 /* No registry node matches the specified input data. */ 287 #define NFCSTATUS_NODE_NOT_FOUND (0x0017) 288 289 /* The current module is busy ; one might retry later */ 290 #define NFCSTATUS_SMX_BAD_STATE (0x00F0) 291 292 /* The Abort mechanism has failed for unexpected reason: user can try again*/ 293 #define NFCSTATUS_ABORT_FAILED (0x00F2) 294 295 /* The Registration command has failed because the user wants to register as 296 * target on a operating mode not supported 297 */ 298 #define NFCSTATUS_REG_OPMODE_NOT_SUPPORTED (0x00F5) 299 300 /* 301 * Shutdown in progress, cannot handle the request at this time. 302 */ 303 #define NFCSTATUS_SHUTDOWN (0x0091) 304 305 /* 306 * Target is no more in RF field 307 */ 308 #define NFCSTATUS_TARGET_LOST (0x0092) 309 310 /* 311 * Request is rejected 312 */ 313 #define NFCSTATUS_REJECTED (0x0093) 314 315 /* 316 * Target is not connected 317 */ 318 #define NFCSTATUS_TARGET_NOT_CONNECTED (0x0094) 319 320 /* 321 * Invalid handle for the operation 322 */ 323 #define NFCSTATUS_INVALID_HANDLE (0x0095) 324 325 /* 326 * Process aborted 327 */ 328 #define NFCSTATUS_ABORTED (0x0096) 329 330 /* 331 * Requested command is not supported 332 */ 333 #define NFCSTATUS_COMMAND_NOT_SUPPORTED (0x0097) 334 335 /* 336 * Tag is not NDEF compliant 337 */ 338 #define NFCSTATUS_NON_NDEF_COMPLIANT (0x0098) 339 340 /* 341 * Not enough memory available to complete the requested operation 342 */ 343 #define NFCSTATUS_NOT_ENOUGH_MEMORY (0x001F) 344 345 /* 346 * Indicates incoming connection 347 */ 348 #define NFCSTATUS_INCOMING_CONNECTION (0x0045) 349 350 /* 351 * Indicates Connection was successful 352 */ 353 #define NFCSTATUS_CONNECTION_SUCCESS (0x0046) 354 355 /* 356 * Indicates Connection failed 357 */ 358 #define NFCSTATUS_CONNECTION_FAILED (0x0047) 359 360 #endif /* PHNFCSTATUS_H */ 361