Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2010-2013 Broadcom Corporation
      4  *
      5  *  Licensed under the Apache License, Version 2.0 (the "License");
      6  *  you may not use this file except in compliance with the License.
      7  *  You may obtain a copy of the License at:
      8  *
      9  *  http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  *
     17  ******************************************************************************/
     18 
     19 
     20 /******************************************************************************
     21  *
     22  *  NFA reader/writer API functions
     23  *
     24  ******************************************************************************/
     25 #ifndef NFA_RW_API_H
     26 #define NFA_RW_API_H
     27 
     28 #include "nfc_target.h"
     29 #include "nfa_api.h"
     30 
     31 /*****************************************************************************
     32 **  Constants and data types
     33 *****************************************************************************/
     34 
     35 /*****************************************************************************
     36 **  NFA T3T Constants and definitions
     37 *****************************************************************************/
     38 
     39 /* Block descriptor. (For non-NDEF read/write */
     40 typedef struct
     41 {
     42     UINT16  service_code;       /* Service code for the block   */
     43     UINT16  block_number;       /* Block number.                */
     44 } tNFA_T3T_BLOCK_DESC;
     45 
     46 
     47 
     48 /*****************************************************************************
     49 **  External Function Declarations
     50 *****************************************************************************/
     51 #ifdef __cplusplus
     52 extern "C"
     53 {
     54 #endif
     55 
     56 /*******************************************************************************
     57 **
     58 ** Function         NFA_RwDetectNDef
     59 **
     60 ** Description      Perform the NDEF detection procedure  using the appropriate
     61 **                  method for the currently activated tag.
     62 **
     63 **                  Upon successful completion of NDEF detection, a
     64 **                  NFA_NDEF_DETECT_EVT will be sent, to notify the application
     65 **                  of the NDEF attributes (NDEF total memory size, current
     66 **                  size, etc.).
     67 **
     68 **                  It is not mandatory to call this function -  NFA_RwReadNDef
     69 **                  and NFA_RwWriteNDef will perform NDEF detection internally if
     70 **                  not performed already. This API may be called to get a
     71 **                  tag's NDEF size before issuing a write-request.
     72 **
     73 ** Returns:
     74 **                  NFA_STATUS_OK if successfully initiated
     75 **                  NFC_STATUS_REFUSED if tag does not support NDEF
     76 **                  NFA_STATUS_FAILED otherwise
     77 **
     78 *******************************************************************************/
     79 NFC_API extern tNFA_STATUS NFA_RwDetectNDef (void);
     80 
     81 /*******************************************************************************
     82 **
     83 ** Function         NFA_RwReadNDef
     84 **
     85 ** Description      Read NDEF message from tag. This function will internally
     86 **                  perform the NDEF detection procedure (if not performed
     87 **                  previously), and read the NDEF tag data using the
     88 **                  appropriate method for the currently activated tag.
     89 **
     90 **                  Upon successful completion of NDEF detection (if performed),
     91 **                  a NFA_NDEF_DETECT_EVT will be sent, to notify the application
     92 **                  of the NDEF attributes (NDEF total memory size, current size,
     93 **                  etc.).
     94 **
     95 **                  Upon receiving the NDEF message, the message will be sent to
     96 **                  the handler registered with NFA_RegisterNDefTypeHandler or
     97 **                  NFA_RequestExclusiveRfControl (if exclusive RF mode is active)
     98 **
     99 **
    100 ** Returns:
    101 **                  NFA_STATUS_OK if successfully initiated
    102 **                  NFC_STATUS_REFUSED if tag does not support NDEF
    103 **                  NFC_STATUS_NOT_INITIALIZED if NULL NDEF was detected on the tag
    104 **                  NFA_STATUS_FAILED otherwise
    105 **
    106 *******************************************************************************/
    107 NFC_API extern tNFA_STATUS NFA_RwReadNDef (void);
    108 
    109 /*******************************************************************************
    110 **
    111 ** Function         NFA_RwWriteNDef
    112 **
    113 ** Description      Write NDEF data to the activated tag. This function will
    114 **                  internally perform NDEF detection if necessary, and write
    115 **                  the NDEF tag data using the appropriate method for the
    116 **                  currently activated tag.
    117 **
    118 **                  When the entire message has been written, or if an error
    119 **                  occurs, the app will be notified with NFA_RW_WRITE_CPLT_EVT.
    120 **
    121 **                  p_data needs to be persistent until NFA_RW_WRITE_CPLT_EVT
    122 **
    123 **
    124 ** Returns:
    125 **                  NFA_STATUS_OK if successfully initiated
    126 **                  NFC_STATUS_REFUSED if tag does not support NDEF/locked
    127 **                  NFA_STATUS_FAILED otherwise
    128 **
    129 *******************************************************************************/
    130 NFC_API extern tNFA_STATUS NFA_RwWriteNDef (UINT8 *p_data, UINT32 len);
    131 
    132 
    133 /*****************************************************************************
    134 **
    135 ** Function         NFA_RwPresenceCheck
    136 **
    137 ** Description      Check if the tag is still in the field.
    138 **
    139 **                  The NFA_RW_PRESENCE_CHECK_EVT w/ status is used to
    140 **                  indicate presence or non-presence.
    141 **
    142 ** Returns
    143 **                  NFA_STATUS_OK if successfully initiated
    144 **                  NFA_STATUS_FAILED otherwise
    145 **
    146 *****************************************************************************/
    147 NFC_API extern tNFA_STATUS NFA_RwPresenceCheck (void);
    148 
    149 /*****************************************************************************
    150 **
    151 ** Function         NFA_RwFormatTag
    152 **
    153 ** Description      Check if the tag is NDEF Formatable. If yes Format the
    154 **                  tag
    155 **
    156 **                  The NFA_RW_FORMAT_CPLT_EVT w/ status is used to
    157 **                  indicate if tag is formated or not.
    158 **
    159 ** Returns
    160 **                  NFA_STATUS_OK if successfully initiated
    161 **                  NFA_STATUS_FAILED otherwise
    162 **
    163 *****************************************************************************/
    164 NFC_API extern tNFA_STATUS NFA_RwFormatTag (void);
    165 
    166 /*******************************************************************************
    167 ** LEGACY / PROPRIETARY TAG READ AND WRITE APIs
    168 *******************************************************************************/
    169 
    170 
    171 /*******************************************************************************
    172 **
    173 ** Function         NFA_RwLocateTlv
    174 **
    175 ** Description:
    176 **      Search for the Lock/Memory contril TLV on the activated Type1/Type2 tag
    177 **
    178 **      Data is returned to the application using the NFA_TLV_DETECT_EVT. When
    179 **      search operation has completed, or if an error occurs, the app will be
    180 **      notified with NFA_TLV_DETECT_EVT.
    181 **
    182 ** Description      Perform the TLV detection procedure  using the appropriate
    183 **                  method for the currently activated tag.
    184 **
    185 **                  Upon successful completion of TLV detection in T1/T2 tag, a
    186 **                  NFA_TLV_DETECT_EVT will be sent, to notify the application
    187 **                  of the TLV attributes (total lock/reserved bytes etc.).
    188 **                  However if the TLV type specified is NDEF then it is same as
    189 **                  calling NFA_RwDetectNDef and should expect to receive
    190 **                  NFA_NDEF_DETECT_EVT instead of NFA_TLV_DETECT_EVT
    191 **
    192 **                  It is not mandatory to call this function -  NFA_RwDetectNDef,
    193 **                  NFA_RwReadNDef and NFA_RwWriteNDef will perform TLV detection
    194 **                  internally if not performed already. An application may call
    195 **                  this API to check the a tag/card-emulator's total Reserved/
    196 **                  Lock bytes before issuing a write-request.
    197 **
    198 ** Returns:
    199 **                  NFA_STATUS_OK if successfully initiated
    200 **                  NFC_STATUS_REFUSED if tlv_type is NDEF & tag won't support NDEF
    201 **                  NFA_STATUS_FAILED otherwise
    202 **
    203 *******************************************************************************/
    204 NFC_API extern tNFA_STATUS NFA_RwLocateTlv (UINT8 tlv_type);
    205 
    206 /*******************************************************************************
    207 **
    208 ** Function         NFA_RwSetTagReadOnly
    209 **
    210 ** Description:
    211 **      Sets tag as read only.
    212 **
    213 **      When tag is set as read only, or if an error occurs, the app will be
    214 **      notified with NFA_SET_TAG_RO_EVT.
    215 **
    216 ** Returns:
    217 **      NFA_STATUS_OK if successfully initiated
    218 **      NFA_STATUS_REJECTED if protocol is not T1/T2/ISO15693
    219 **                 (or) if hard lock is not requested for protocol ISO15693
    220 **      NFA_STATUS_FAILED otherwise
    221 **
    222 *******************************************************************************/
    223 NFC_API extern tNFA_STATUS NFA_RwSetTagReadOnly (BOOLEAN b_hard_lock);
    224 
    225 /*******************************************************************************
    226 **
    227 ** Function         NFA_RwT1tRid
    228 **
    229 ** Description:
    230 **      Send a RID command to the activated Type 1 tag.
    231 **
    232 **      Data is returned to the application using the NFA_DATA_EVT. When the read
    233 **      operation has completed, or if an error occurs, the app will be notified with
    234 **      NFA_READ_CPLT_EVT.
    235 **
    236 ** Returns:
    237 **      NFA_STATUS_OK if successfully initiated
    238 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
    239 **      NFA_STATUS_FAILED otherwise
    240 **
    241 *******************************************************************************/
    242 NFC_API extern tNFA_STATUS NFA_RwT1tRid (void);
    243 
    244 /*******************************************************************************
    245 **
    246 ** Function         NFA_RwT1tReadAll
    247 **
    248 ** Description:
    249 **      Send a RALL command to the activated Type 1 tag.
    250 **
    251 **      Data is returned to the application using the NFA_DATA_EVT. When the read
    252 **      operation has completed, or if an error occurs, the app will be notified with
    253 **      NFA_READ_CPLT_EVT.
    254 **
    255 ** Returns:
    256 **      NFA_STATUS_OK if successfully initiated
    257 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
    258 **      NFA_STATUS_FAILED otherwise
    259 **
    260 *******************************************************************************/
    261 NFC_API extern tNFA_STATUS NFA_RwT1tReadAll (void);
    262 
    263 /*******************************************************************************
    264 **
    265 ** Function         NFA_RwT1tRead
    266 **
    267 ** Description:
    268 **      Send a READ command to the activated Type 1 tag.
    269 **
    270 **      Data is returned to the application using the NFA_DATA_EVT. When the read
    271 **      operation has completed, or if an error occurs, the app will be notified with
    272 **      NFA_READ_CPLT_EVT.
    273 **
    274 ** Returns:
    275 **      NFA_STATUS_OK if successfully initiated
    276 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
    277 **      NFA_STATUS_FAILED otherwise
    278 **
    279 *******************************************************************************/
    280 NFC_API extern tNFA_STATUS NFA_RwT1tRead (UINT8 block_number, UINT8 index);
    281 
    282 /*******************************************************************************
    283 **
    284 ** Function         NFA_RwT1tWrite
    285 **
    286 ** Description:
    287 **      Send a WRITE command to the activated Type 1 tag.
    288 **
    289 **      Data is returned to the application using the NFA_DATA_EVT. When the write
    290 **      operation has completed, or if an error occurs, the app will be notified with
    291 **      NFA_WRITE_CPLT_EVT.
    292 **
    293 ** Returns:
    294 **      NFA_STATUS_OK if successfully initiated
    295 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
    296 **      NFA_STATUS_FAILED otherwise
    297 **
    298 *******************************************************************************/
    299 NFC_API extern tNFA_STATUS NFA_RwT1tWrite (UINT8    block_number,
    300                                            UINT8    index,
    301                                            UINT8    data,
    302                                            BOOLEAN  b_erase);
    303 
    304 /*******************************************************************************
    305 **
    306 ** Function         NFA_RwT1tReadSeg
    307 **
    308 ** Description:
    309 **      Send a RSEG command to the activated Type 1 tag.
    310 **
    311 **      Data is returned to the application using the NFA_DATA_EVT. When the read
    312 **      operation has completed, or if an error occurs, the app will be notified with
    313 **      NFA_READ_CPLT_EVT.
    314 **
    315 ** Returns:
    316 **      NFA_STATUS_OK if successfully initiated
    317 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
    318 **      NFA_STATUS_FAILED otherwise
    319 **
    320 *******************************************************************************/
    321 NFC_API extern tNFA_STATUS NFA_RwT1tReadSeg (UINT8 segment_number);
    322 
    323 /*******************************************************************************
    324 **
    325 ** Function         NFA_RwT1tRead8
    326 **
    327 ** Description:
    328 **      Send a READ8 command to the activated Type 1 tag.
    329 **
    330 **      Data is returned to the application using the NFA_DATA_EVT. When the read
    331 **      operation has completed, or if an error occurs, the app will be notified with
    332 **      NFA_READ_CPLT_EVT.
    333 **
    334 ** Returns:
    335 **      NFA_STATUS_OK if successfully initiated
    336 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
    337 **      NFA_STATUS_FAILED otherwise
    338 **
    339 *******************************************************************************/
    340 NFC_API extern tNFA_STATUS NFA_RwT1tRead8 (UINT8 block_number);
    341 
    342 /*******************************************************************************
    343 **
    344 ** Function         NFA_RwT1tWrite8
    345 **
    346 ** Description:
    347 **      Send a WRITE8_E / WRITE8_NE command to the activated Type 1 tag.
    348 **
    349 **      Data is returned to the application using the NFA_DATA_EVT. When the read
    350 **      operation has completed, or if an error occurs, the app will be notified with
    351 **      NFA_READ_CPLT_EVT.
    352 **
    353 ** Returns:
    354 **      NFA_STATUS_OK if successfully initiated
    355 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
    356 **      NFA_STATUS_FAILED otherwise
    357 **
    358 *******************************************************************************/
    359 NFC_API extern tNFA_STATUS NFA_RwT1tWrite8 (UINT8   block_number,
    360                                             UINT8  *p_data,
    361                                             BOOLEAN b_erase);
    362 
    363 /*******************************************************************************
    364 **
    365 ** Function         NFA_RwT2tRead
    366 **
    367 ** Description:
    368 **      Send a READ command to the activated Type 2 tag.
    369 **
    370 **      Data is returned to the application using the NFA_DATA_EVT. When the read
    371 **      operation has completed, or if an error occurs, the app will be notified with
    372 **      NFA_READ_CPLT_EVT.
    373 **
    374 ** Returns:
    375 **      NFA_STATUS_OK if successfully initiated
    376 **      NFA_STATUS_NOT_INITIALIZED: type 2 tag not activated
    377 **      NFA_STATUS_FAILED otherwise
    378 **
    379 *******************************************************************************/
    380 NFC_API extern tNFA_STATUS NFA_RwT2tRead (UINT8 block_number);
    381 
    382 /*******************************************************************************
    383 **
    384 ** Function         NFA_RwT2tWrite
    385 **
    386 ** Description:
    387 **      Send an WRITE command to the activated Type 2 tag.
    388 **
    389 **      When the write operation has completed (or if an error occurs), the
    390 **      app will be notified with NFA_WRITE_CPLT_EVT.
    391 **
    392 ** Returns:
    393 **      NFA_STATUS_OK if successfully initiated
    394 **      NFA_STATUS_NOT_INITIALIZED: type 2 tag not activated
    395 **      NFA_STATUS_FAILED otherwise
    396 **
    397 *******************************************************************************/
    398 NFC_API extern tNFA_STATUS NFA_RwT2tWrite (UINT8 block_number,  UINT8 *p_data);
    399 
    400 /*******************************************************************************
    401 **
    402 ** Function         NFA_RwT2tSectorSelect
    403 **
    404 ** Description:
    405 **      Send SECTOR SELECT command to the activated Type 2 tag.
    406 **
    407 **      When the sector select operation has completed (or if an error occurs), the
    408 **      app will be notified with NFA_SECTOR_SELECT_CPLT_EVT.
    409 **
    410 ** Returns:
    411 **      NFA_STATUS_OK if successfully initiated
    412 **      NFA_STATUS_NOT_INITIALIZED: type 2 tag not activated
    413 **      NFA_STATUS_FAILED otherwise
    414 **
    415 *******************************************************************************/
    416 NFC_API extern tNFA_STATUS NFA_RwT2tSectorSelect (UINT8 sector_number);
    417 
    418 /*******************************************************************************
    419 **
    420 ** Function         NFA_RwT3tRead
    421 **
    422 ** Description:
    423 **      Send a CHECK (read) command to the activated Type 3 tag.
    424 **
    425 **      Data is returned to the application using the NFA_RW_DATA_EVT. When the read
    426 **      operation has completed, or if an error occurs, the app will be notified with
    427 **      NFA_READ_CPLT_EVT.
    428 **
    429 ** Returns:
    430 **      NFA_STATUS_OK if successfully initiated
    431 **      NFA_STATUS_NOT_INITIALIZED: type 3 tag not activated
    432 **      NFA_STATUS_FAILED otherwise
    433 **
    434 *******************************************************************************/
    435 NFC_API extern tNFA_STATUS NFA_RwT3tRead (UINT8                num_blocks,
    436                                           tNFA_T3T_BLOCK_DESC *t3t_blocks);
    437 
    438 /*******************************************************************************
    439 **
    440 ** Function         NFA_RwT3tWrite
    441 **
    442 ** Description:
    443 **      Send an UPDATE (write) command to the activated Type 3 tag.
    444 **
    445 **      When the write operation has completed (or if an error occurs), the
    446 **      app will be notified with NFA_WRITE_CPLT_EVT.
    447 **
    448 ** Returns:
    449 **      NFA_STATUS_OK if successfully initiated
    450 **      NFA_STATUS_NOT_INITIALIZED: type 3 tag not activated
    451 **      NFA_STATUS_FAILED otherwise
    452 **
    453 *******************************************************************************/
    454 NFC_API extern tNFA_STATUS NFA_RwT3tWrite (UINT8                num_blocks,
    455                                            tNFA_T3T_BLOCK_DESC *t3t_blocks,
    456                                            UINT8               *p_data);
    457 
    458 /*******************************************************************************
    459 **
    460 ** Function         NFA_RwI93Inventory
    461 **
    462 ** Description:
    463 **      Send Inventory command to the activated ISO 15693 tag with/without AFI..
    464 **      If UID is provided then set UID[0]:MSB, ... UID[7]:LSB
    465 **
    466 **      When the write operation has completed (or if an error occurs), the
    467 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    468 **
    469 ** Returns:
    470 **      NFA_STATUS_OK if successfully initiated
    471 **      NFA_STATUS_NOT_INITIALIZED: ISO 15693 tag not activated
    472 **      NFA_STATUS_FAILED otherwise
    473 **
    474 *******************************************************************************/
    475 NFC_API extern tNFA_STATUS NFA_RwI93Inventory (BOOLEAN afi_present, UINT8 afi, UINT8 *p_uid);
    476 
    477 /*******************************************************************************
    478 **
    479 ** Function         NFA_RwI93StayQuiet
    480 **
    481 ** Description:
    482 **      Send Stay Quiet command to the activated ISO 15693 tag.
    483 **
    484 **      When the operation has completed (or if an error occurs), the
    485 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    486 **
    487 ** Returns:
    488 **      NFA_STATUS_OK if successfully initiated
    489 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    490 **      NFA_STATUS_FAILED otherwise
    491 **
    492 *******************************************************************************/
    493 NFC_API extern tNFA_STATUS NFA_RwI93StayQuiet (void);
    494 
    495 /*******************************************************************************
    496 **
    497 ** Function         NFA_RwI93ReadSingleBlock
    498 **
    499 ** Description:
    500 **      Send Read Single Block command to the activated ISO 15693 tag.
    501 **
    502 **      Data is returned to the application using the NFA_DATA_EVT. When the read
    503 **      operation has completed, or if an error occurs, the app will be notified with
    504 **      NFA_I93_CMD_CPLT_EVT.
    505 **
    506 ** Returns:
    507 **      NFA_STATUS_OK if successfully initiated
    508 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    509 **      NFA_STATUS_FAILED otherwise
    510 **
    511 *******************************************************************************/
    512 NFC_API extern tNFA_STATUS NFA_RwI93ReadSingleBlock (UINT8 block_number);
    513 
    514 /*******************************************************************************
    515 **
    516 ** Function         NFA_RwI93WriteSingleBlock
    517 **
    518 ** Description:
    519 **      Send Write Single Block command to the activated ISO 15693 tag.
    520 **
    521 **      When the write operation has completed (or if an error occurs), the
    522 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    523 **
    524 ** Returns:
    525 **      NFA_STATUS_OK if successfully initiated
    526 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    527 **      NFA_STATUS_FAILED otherwise
    528 **
    529 *******************************************************************************/
    530 NFC_API extern tNFA_STATUS NFA_RwI93WriteSingleBlock (UINT8 block_number,
    531                                                       UINT8 *p_data);
    532 
    533 /*******************************************************************************
    534 **
    535 ** Function         NFA_RwI93LockBlock
    536 **
    537 ** Description:
    538 **      Send Lock block command to the activated ISO 15693 tag.
    539 **
    540 **      When the operation has completed (or if an error occurs), the
    541 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    542 **
    543 ** Returns:
    544 **      NFA_STATUS_OK if successfully initiated
    545 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    546 **      NFA_STATUS_FAILED otherwise
    547 **
    548 *******************************************************************************/
    549 NFC_API extern tNFA_STATUS NFA_RwI93LockBlock (UINT8 block_number);
    550 
    551 /*******************************************************************************
    552 **
    553 ** Function         NFA_RwI93ReadMultipleBlocks
    554 **
    555 ** Description:
    556 **      Send Read Multiple Block command to the activated ISO 15693 tag.
    557 **
    558 **      Data is returned to the application using the NFA_DATA_EVT. When the read
    559 **      operation has completed, or if an error occurs, the app will be notified with
    560 **      NFA_I93_CMD_CPLT_EVT.
    561 **
    562 ** Returns:
    563 **      NFA_STATUS_OK if successfully initiated
    564 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    565 **      NFA_STATUS_FAILED otherwise
    566 **
    567 *******************************************************************************/
    568 NFC_API extern tNFA_STATUS NFA_RwI93ReadMultipleBlocks (UINT8  first_block_number,
    569                                                         UINT16 number_blocks);
    570 
    571 /*******************************************************************************
    572 **
    573 ** Function         NFA_RwI93WriteMultipleBlocks
    574 **
    575 ** Description:
    576 **      Send Write Multiple Block command to the activated ISO 15693 tag.
    577 **
    578 **      When the write operation has completed (or if an error occurs), the
    579 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    580 **
    581 ** Returns:
    582 **      NFA_STATUS_OK if successfully initiated
    583 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    584 **      NFA_STATUS_FAILED otherwise
    585 **
    586 *******************************************************************************/
    587 NFC_API extern tNFA_STATUS NFA_RwI93WriteMultipleBlocks (UINT8  first_block_number,
    588                                                          UINT16 number_blocks,
    589                                                          UINT8  *p_data);
    590 
    591 /*******************************************************************************
    592 **
    593 ** Function         NFA_RwI93Select
    594 **
    595 ** Description:
    596 **      Send Select command to the activated ISO 15693 tag.
    597 **
    598 **      UID[0]: 0xE0, MSB
    599 **      UID[1]: IC Mfg Code
    600 **      ...
    601 **      UID[7]: LSB
    602 **
    603 **      When the operation has completed (or if an error occurs), the
    604 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    605 **
    606 ** Returns:
    607 **      NFA_STATUS_OK if successfully initiated
    608 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    609 **      NFA_STATUS_FAILED otherwise
    610 **
    611 *******************************************************************************/
    612 NFC_API extern tNFA_STATUS NFA_RwI93Select (UINT8 *p_uid);
    613 
    614 /*******************************************************************************
    615 **
    616 ** Function         NFA_RwI93ResetToReady
    617 **
    618 ** Description:
    619 **      Send Reset to ready command to the activated ISO 15693 tag.
    620 **
    621 **      When the operation has completed (or if an error occurs), the
    622 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    623 **
    624 ** Returns:
    625 **      NFA_STATUS_OK if successfully initiated
    626 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    627 **      NFA_STATUS_FAILED otherwise
    628 **
    629 *******************************************************************************/
    630 NFC_API extern tNFA_STATUS NFA_RwI93ResetToReady (void);
    631 
    632 /*******************************************************************************
    633 **
    634 ** Function         NFA_RwI93WriteAFI
    635 **
    636 ** Description:
    637 **      Send Write AFI command to the activated ISO 15693 tag.
    638 **
    639 **      When the operation has completed (or if an error occurs), the
    640 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    641 **
    642 ** Returns:
    643 **      NFA_STATUS_OK if successfully initiated
    644 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    645 **      NFA_STATUS_FAILED otherwise
    646 **
    647 *******************************************************************************/
    648 NFC_API extern tNFA_STATUS NFA_RwI93WriteAFI (UINT8 afi);
    649 
    650 /*******************************************************************************
    651 **
    652 ** Function         NFA_RwI93LockAFI
    653 **
    654 ** Description:
    655 **      Send Lock AFI command to the activated ISO 15693 tag.
    656 **
    657 **      When the operation has completed (or if an error occurs), the
    658 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    659 **
    660 ** Returns:
    661 **      NFA_STATUS_OK if successfully initiated
    662 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    663 **      NFA_STATUS_FAILED otherwise
    664 **
    665 *******************************************************************************/
    666 NFC_API extern tNFA_STATUS NFA_RwI93LockAFI (void);
    667 
    668 /*******************************************************************************
    669 **
    670 ** Function         NFA_RwI93WriteDSFID
    671 **
    672 ** Description:
    673 **      Send Write DSFID command to the activated ISO 15693 tag.
    674 **
    675 **      When the operation has completed (or if an error occurs), the
    676 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    677 **
    678 ** Returns:
    679 **      NFA_STATUS_OK if successfully initiated
    680 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    681 **      NFA_STATUS_FAILED otherwise
    682 **
    683 *******************************************************************************/
    684 NFC_API extern tNFA_STATUS NFA_RwI93WriteDSFID (UINT8 dsfid);
    685 
    686 /*******************************************************************************
    687 **
    688 ** Function         NFA_RwI93LockDSFID
    689 **
    690 ** Description:
    691 **      Send Lock DSFID command to the activated ISO 15693 tag.
    692 **
    693 **      When the operation has completed (or if an error occurs), the
    694 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    695 **
    696 ** Returns:
    697 **      NFA_STATUS_OK if successfully initiated
    698 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    699 **      NFA_STATUS_FAILED otherwise
    700 **
    701 *******************************************************************************/
    702 NFC_API extern tNFA_STATUS NFA_RwI93LockDSFID (void);
    703 
    704 /*******************************************************************************
    705 **
    706 ** Function         NFA_RwI93GetSysInfo
    707 **
    708 ** Description:
    709 **      Send Get system information command to the activated ISO 15693 tag.
    710 **      If UID is provided then set UID[0]:MSB, ... UID[7]:LSB
    711 **
    712 **      When the operation has completed (or if an error occurs), the
    713 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
    714 **
    715 ** Returns:
    716 **      NFA_STATUS_OK if successfully initiated
    717 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    718 **      NFA_STATUS_FAILED otherwise
    719 **
    720 *******************************************************************************/
    721 NFC_API extern tNFA_STATUS NFA_RwI93GetSysInfo (UINT8 *p_uid);
    722 
    723 /*******************************************************************************
    724 **
    725 ** Function         NFA_RwI93GetMultiBlockSecurityStatus
    726 **
    727 ** Description:
    728 **      Send Get Multiple block security status command to the activated ISO 15693 tag.
    729 **
    730 **      Data is returned to the application using the NFA_DATA_EVT. When the read
    731 **      operation has completed, or if an error occurs, the app will be notified with
    732 **      NFA_I93_CMD_CPLT_EVT.
    733 **
    734 ** Returns:
    735 **      NFA_STATUS_OK if successfully initiated
    736 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
    737 **      NFA_STATUS_FAILED otherwise
    738 **
    739 *******************************************************************************/
    740 NFC_API extern tNFA_STATUS NFA_RwI93GetMultiBlockSecurityStatus (UINT8  first_block_number,
    741                                                                  UINT16 number_blocks);
    742 
    743 #ifdef __cplusplus
    744 }
    745 #endif
    746 
    747 #endif /* NFA_RW_API_H */
    748