1 /* 2 * Copyright (C) 2010 NXP Semiconductors 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 * \file phNfcStatus.h 19 * \brief NFC Status Values - Function Return Codes 20 * 21 * Project: NFC MW / HAL 22 * 23 * $Date: Wed Apr 29 16:28:21 2009 $ 24 * $Author: ing04880 $ 25 * $Revision: 1.31 $ 26 * $Aliases: NFC_FRI1.1_WK918_R24_1,NFC_FRI1.1_WK920_PREP1,NFC_FRI1.1_WK920_R25_1,NFC_FRI1.1_WK922_PREP1,NFC_FRI1.1_WK922_R26_1,NFC_FRI1.1_WK924_PREP1,NFC_FRI1.1_WK924_R27_1,NFC_FRI1.1_WK926_R28_1,NFC_FRI1.1_WK928_R29_1,NFC_FRI1.1_WK930_R30_1,NFC_FRI1.1_WK934_PREP_1,NFC_FRI1.1_WK934_R31_1,NFC_FRI1.1_WK941_PREP1,NFC_FRI1.1_WK941_PREP2,NFC_FRI1.1_WK941_1,NFC_FRI1.1_WK943_R32_1,NFC_FRI1.1_WK949_PREP1,NFC_FRI1.1_WK943_R32_10,NFC_FRI1.1_WK943_R32_13,NFC_FRI1.1_WK943_R32_14,NFC_FRI1.1_WK1007_R33_1,NFC_FRI1.1_WK1007_R33_4,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1023_R35_1 $ 27 * 28 */ 29 30 #ifndef PHNFCSTATUS_H /* */ 31 #define PHNFCSTATUS_H/* */ 32 33 #ifndef PH_FRINFC_EXCLUDE_FROM_TESTFW /* */ 34 35 /** 36 * \name NFC Status 37 * 38 * File: \ref phNfcStatus.h 39 * 40 *\defgroup grp_retval ERROR Status Codes 41 */ 42 /*@{*/ 43 #define PHNFCSTATUS_FILEREVISION "$Revision: 1.31 $" /**< \ingroup grp_file_attributes */ 44 #define PHNFCSTATUS_FILEALIASES "$Aliases: NFC_FRI1.1_WK918_R24_1,NFC_FRI1.1_WK920_PREP1,NFC_FRI1.1_WK920_R25_1,NFC_FRI1.1_WK922_PREP1,NFC_FRI1.1_WK922_R26_1,NFC_FRI1.1_WK924_PREP1,NFC_FRI1.1_WK924_R27_1,NFC_FRI1.1_WK926_R28_1,NFC_FRI1.1_WK928_R29_1,NFC_FRI1.1_WK930_R30_1,NFC_FRI1.1_WK934_PREP_1,NFC_FRI1.1_WK934_R31_1,NFC_FRI1.1_WK941_PREP1,NFC_FRI1.1_WK941_PREP2,NFC_FRI1.1_WK941_1,NFC_FRI1.1_WK943_R32_1,NFC_FRI1.1_WK949_PREP1,NFC_FRI1.1_WK943_R32_10,NFC_FRI1.1_WK943_R32_13,NFC_FRI1.1_WK943_R32_14,NFC_FRI1.1_WK1007_R33_1,NFC_FRI1.1_WK1007_R33_4,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1023_R35_1 $" /**< \ingroup grp_file_attributes */ 45 /*@}*/ 46 47 #endif /* PH_FRINFC_EXCLUDE_FROM_TESTFW */ 48 49 #include <phNfcTypes.h> 50 51 /* Internally required by \ref PHNFCSTVAL. */ 52 #define PHNFCSTSHL8 (8U) 53 /* Required by \ref PHNFCSTVAL. */ 54 #define PHNFCSTBLOWER ((NFCSTATUS)(0x00FFU)) 55 56 /** 57 * \name NFC Status Composition Macro 58 * 59 * This is the macro which must be used to compose status values. 60 * 61 * \param[in] phNfcCompID Component ID, as defined in \ref phNfcCompId.h . 62 * \param[in] phNfcStatus Status values, as defined in \ref phNfcStatus.h . 63 * 64 * \note The macro is not required for the \ref NFCSTATUS_SUCCESS value. This is the only 65 * return value to be used directly. 66 * For all other values it shall be used in assigment and conditional statements e.g.: 67 * - NFCSTATUS status = PHNFCSTVAL(phNfcCompID, phNfcStatus); ... 68 * - if (status == PHNFCSTVAL(phNfcCompID, phNfcStatus)) ... 69 * 70 */ 71 #define PHNFCSTVAL(phNfcCompID, phNfcStatus) \ 72 ( ((phNfcStatus) == (NFCSTATUS_SUCCESS)) ? (NFCSTATUS_SUCCESS) : \ 73 ( (((NFCSTATUS)(phNfcStatus)) & (PHNFCSTBLOWER)) | \ 74 (((uint16_t)(phNfcCompID)) << (PHNFCSTSHL8)) ) ) /**< \ingroup grp_retval 75 Use this macro for return value composition. */ 76 #define PHNFCSTATUS(phNfcStatus) ((phNfcStatus) & 0x00FFU) 77 #define PHNFCCID(phNfcStatus) (((phNfcStatus) & 0xFF00U)>>8) 78 79 /** 80 * \name Status Codes 81 * 82 * Generic Status codes for the NFC components. Combined with the Component ID 83 * they build the value (status) returned by each 84 * function. Some Specific E.g.:\n 85 * <UL> 86 * <LI> \ref grp_comp_id "Component ID" - e.g. 0x10, plus </LI> 87 * <LI> status code as listed in this file - e.g. 0x03 </LI> 88 * </UL> 89 * result in a status value of 0x0003. 90 * 91 * \note The \ref grp_comp_id "Component ID" used for return codes 92 must not be \ref CID_NFC_NONE 93 * except for the value \ref NFCSTATUS_SUCCESS. 94 */ 95 /*@{*/ 96 97 /** \ingroup grp_retval 98 The function indicates successful completion. */ 99 #define NFCSTATUS_SUCCESS (0x0000) 100 101 /** \ingroup grp_retval 102 At least one paramter could not be properly interpreted. */ 103 #define NFCSTATUS_INVALID_PARAMETER (0x0001) 104 105 /** \ingroup grp_retval 106 The buffer provided by the caller is too small. */ 107 #define NFCSTATUS_BUFFER_TOO_SMALL (0x0003) 108 109 /** \ingroup grp_retval 110 Device specifier/handle value is invalid for the operation. */ 111 #define NFCSTATUS_INVALID_DEVICE (0x0006) 112 113 /** \ingroup grp_retval 114 The function executed successfully but could have returned 115 more information than space provided by the caller. */ 116 #define NFCSTATUS_MORE_INFORMATION (0x0008) 117 118 /** \ingroup grp_retval 119 No response from the remote device received: Time-out.*/ 120 #define NFCSTATUS_RF_TIMEOUT (0x0009) 121 122 /** \ingroup grp_retval 123 RF Error during data transaction with the remote device.*/ 124 #define NFCSTATUS_RF_ERROR (0x000A) 125 126 /** \ingroup grp_retval 127 Not enough resources (e.g. allocation failed.). */ 128 #define NFCSTATUS_INSUFFICIENT_RESOURCES (0x000C) 129 130 /** \ingroup grp_retval 131 A non-blocking function returns this immediately to indicate 132 that an internal operation is in progress. */ 133 #define NFCSTATUS_PENDING (0x000D) 134 135 /** \ingroup grp_retval 136 A board communication error occurred 137 (e.g. configuration went wrong). */ 138 #define NFCSTATUS_BOARD_COMMUNICATION_ERROR (0x000F) 139 140 /** \ingroup grp_retval 141 Invalid State of the particular state machine 142 */ 143 #define NFCSTATUS_INVALID_STATE (0x0011) 144 145 146 /** \ingroup grp_retval 147 This Layer is Not initialised, hence initialisation required. 148 */ 149 #define NFCSTATUS_NOT_INITIALISED (0x0031) 150 151 152 /** \ingroup grp_retval 153 The Layer is already initialised, hence initialisation repeated. 154 */ 155 #define NFCSTATUS_ALREADY_INITIALISED (0x0032) 156 157 158 /** \ingroup grp_retval 159 Feature not supported . */ 160 #define NFCSTATUS_FEATURE_NOT_SUPPORTED (0x0033) 161 162 /** \ingroup grp_retval 163 The Unregistration command has failed because the user wants to unregister on 164 an element for which he was not registered*/ 165 #define NFCSTATUS_NOT_REGISTERED (0x0034) 166 167 168 /** \ingroup grp_retval 169 The Registration command has failed because the user wants to register on 170 an element for which he is already registered*/ 171 #define NFCSTATUS_ALREADY_REGISTERED (0x0035) 172 173 /** \ingroup grp_retval 174 Single Tag with Multiple 175 Protocol support detected. */ 176 #define NFCSTATUS_MULTIPLE_PROTOCOLS (0x0036) 177 178 /** \ingroup grp_retval 179 Feature not supported . */ 180 #define NFCSTATUS_MULTIPLE_TAGS (0x0037) 181 182 /** \ingroup grp_retval 183 A DESELECT event has occurred. */ 184 #define NFCSTATUS_DESELECTED (0x0038) 185 186 /** \ingroup grp_retval 187 A RELEASE event has occurred. */ 188 #define NFCSTATUS_RELEASED (0x0039) 189 190 /** \ingroup grp_retval 191 The operation is currently not possible or not allowed */ 192 #define NFCSTATUS_NOT_ALLOWED (0x003A) 193 194 /** \ingroup grp_retval 195 The sytem is busy with the previous operation. 196 */ 197 #define NFCSTATUS_BUSY (0x006F) 198 199 200 /* NDEF Mapping error codes */ 201 202 /** \ingroup grp_retval 203 The remote device (type) is not valid for this request. */ 204 #define NFCSTATUS_INVALID_REMOTE_DEVICE (0x001D) 205 206 /** \ingroup grp_retval 207 Smart tag functionality not supported */ 208 #define NFCSTATUS_SMART_TAG_FUNC_NOT_SUPPORTED (0x0013) 209 210 /** \ingroup grp_retval 211 Read operation failed */ 212 #define NFCSTATUS_READ_FAILED (0x0014) 213 214 /** \ingroup grp_retval 215 Write operation failed */ 216 #define NFCSTATUS_WRITE_FAILED (0x0015) 217 218 /** \ingroup grp_retval 219 Non Ndef Compliant */ 220 #define NFCSTATUS_NO_NDEF_SUPPORT (0x0016) 221 222 /** \ingroup grp_retval 223 Could not proceed further with the write operation: reached card EOF*/ 224 #define NFCSTATUS_EOF_NDEF_CONTAINER_REACHED (0x001A) 225 226 /** \ingroup grp_retval 227 Incorrect number of bytes received from the card*/ 228 #define NFCSTATUS_INVALID_RECEIVE_LENGTH (0x001B) 229 230 /** \ingroup grp_retval 231 The data format/composition is not understood/correct. */ 232 #define NFCSTATUS_INVALID_FORMAT (0x001C) 233 234 235 /** \ingroup grp_retval 236 There is not sufficient storage available. */ 237 #define NFCSTATUS_INSUFFICIENT_STORAGE (0x001F) 238 239 /** \ingroup grp_retval 240 The Ndef Format procedure has failed. */ 241 #define NFCSTATUS_FORMAT_ERROR (0x0023) 242 243 244 /* 245 * Macros Required for FRI Stack 246 NFCSTATUS_INVALID_PARAMETER 247 NFCSTATUS_CMD_ABORTED 248 NFCSTATUS_FORMAT_STATUS 249 NFSTATUS_SUCCESS 250 NFCSTATUS_INVALID_REMOTE_DEVICE 251 NFCSTATUS_PENDING 252 NFCSTATUS_EOF_NDEF_CONTAINED_REACHED 253 NFCSTATUS_NO_NDEF_SUPPORT 254 NFCSTATUS_SMART_TAG_FUNC_NOT_SUPPORTED 255 NFCSTATUS_READ_FAILED 256 NFCSTATUS_WRITE_FAILED 257 NFCSTATUS_INVALID_RECEIVE_LENGTH 258 NFCSTATUS_BUFFER_TOO_SMALL 259 NFCSTATUS_NODE_NOT_FOUND 260 */ 261 262 263 /* 0x70 to 0xCF Values are Component Specific Error Values */ 264 265 266 /** \ingroup grp_retval 267 Max number of Status Codes*/ 268 #define NFCSTATUS_FAILED (0x00FF) 269 270 /*@}*/ 271 272 #ifdef RFU_STATUS_CODES /* To Be Removed later */ 273 274 /** \ingroup grp_retval 275 The function/command has been aborted. */ 276 #define NFCSTATUS_CMD_ABORTED (0x0002) 277 278 /** \ingroup grp_retval 279 * Repeated call of the connecting function is not allowed. 280 * \if hal 281 * \sa \ref phHalNfc_Connect 282 * \endif */ 283 #define NFCSTATUS_ALREADY_CONNECTED (0x0004) 284 285 /** \ingroup grp_retval 286 * Calling the polling function is not allowed when remote device 287 * are allready connected. 288 * \if hal 289 * \sa \ref phHalNfc_Poll 290 * \endif */ 291 #define NFCSTATUS_MULTI_POLL_NOT_SUPPORTED (0x0005) 292 293 294 /** \ingroup grp_retval 295 No target found after poll.*/ 296 #define NFCSTATUS_NO_DEVICE_FOUND (0x000A) 297 298 /** \ingroup grp_retval 299 No target found after poll.*/ 300 #define NFCSTATUS_NO_TARGET_FOUND (0x000A) 301 302 /** \ingroup grp_retval 303 Attempt to disconnect a not connected remote device. */ 304 #define NFCSTATUS_NO_DEVICE_CONNECTED (0x000B) 305 306 /** \ingroup grp_retval 307 External RF field detected. */ 308 #define NFCSTATUS_EXTERNAL_RF_DETECTED (0x000E) 309 310 /** \ingroup grp_retval 311 Message is not allowed by the state machine 312 (e.g. configuration went wrong). */ 313 #define NFCSTATUS_MSG_NOT_ALLOWED_BY_FSM (0x0010) 314 315 /** \ingroup grp_retval 316 No access has been granted. */ 317 #define NFCSTATUS_ACCESS_DENIED (0x001E) 318 319 /** \ingroup grp_retval 320 No registry node matches the specified input data. */ 321 #define NFCSTATUS_NODE_NOT_FOUND (0x0017) 322 323 /** \ingroup grp_retval 324 The current module is busy ; one might retry later */ 325 #define NFCSTATUS_SMX_BAD_STATE (0x00F0) 326 327 328 /** \ingroup grp_retval 329 The Abort mechanism has failed for unexpected reason: user can try again*/ 330 #define NFCSTATUS_ABORT_FAILED (0x00F2) 331 332 333 /** \ingroup grp_retval 334 The Registration command has failed because the user wants to register as target 335 on a operating mode not supported*/ 336 #define NFCSTATUS_REG_OPMODE_NOT_SUPPORTED (0x00F5) 337 338 339 #endif 340 341 342 #endif /* PHNFCSTATUS_H */ 343 344