Home | History | Annotate | Download | only in inc
      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