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