| /****************************************************************************** |
| * |
| * Copyright (C) 2009-2013 Broadcom Corporation |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at: |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| ******************************************************************************/ |
| |
| |
| /****************************************************************************** |
| * |
| * This file contains the Near Field Communication (NFC) Card Emulation |
| * mode related API function external definitions. |
| * |
| ******************************************************************************/ |
| |
| #ifndef CE_API_H |
| #define CE_API_H |
| |
| #include "tags_defs.h" |
| |
| #define CE_T3T_FIRST_EVT 0x60 |
| #define CE_T4T_FIRST_EVT 0x80 |
| |
| enum |
| { |
| CE_T3T_NDEF_UPDATE_START_EVT = CE_T3T_FIRST_EVT, |
| CE_T3T_NDEF_UPDATE_CPLT_EVT, |
| CE_T3T_UPDATE_EVT, |
| CE_T3T_CHECK_EVT, |
| CE_T3T_RAW_FRAME_EVT, |
| CE_T3T_MAX_EVT, |
| |
| CE_T4T_NDEF_UPDATE_START_EVT = CE_T4T_FIRST_EVT, |
| CE_T4T_NDEF_UPDATE_CPLT_EVT, |
| CE_T4T_NDEF_UPDATE_ABORT_EVT, |
| CE_T4T_RAW_FRAME_EVT, |
| CE_T4T_MAX_EVT |
| }; |
| |
| |
| #define CE_RAW_FRAME_EVT 0xFF |
| |
| typedef UINT8 tCE_EVENT; |
| |
| typedef struct |
| { |
| tNFC_STATUS status; |
| BT_HDR *p_data; |
| } tCE_T2T_DATA; |
| |
| typedef struct |
| { |
| tNFC_STATUS status; |
| UINT8 *p_data; |
| BOOLEAN b_updated; |
| UINT32 length; |
| } tCE_UPDATE_INFO; |
| |
| typedef struct |
| { |
| tNFC_STATUS status; |
| UINT8 aid_handle; |
| BT_HDR *p_data; |
| } tCE_RAW_FRAME; |
| |
| typedef union |
| { |
| tNFC_STATUS status; |
| tCE_UPDATE_INFO update_info; |
| tCE_RAW_FRAME raw_frame; |
| } tCE_DATA; |
| |
| typedef void (tCE_CBACK) (tCE_EVENT event, tCE_DATA *p_data); |
| |
| |
| /* T4T definitions */ |
| typedef UINT8 tCE_T4T_AID_HANDLE; /* Handle for AID registration */ |
| #define CE_T4T_AID_HANDLE_INVALID 0xFF /* Invalid tCE_T4T_AID_HANDLE */ |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_T3tSetLocalNDEFMsg |
| ** |
| ** Description Initialise CE Type 3 Tag with mandatory NDEF message |
| ** |
| ** Returns NFC_STATUS_OK if success |
| ** |
| *******************************************************************************/ |
| NFC_API extern tNFC_STATUS CE_T3tSetLocalNDEFMsg (BOOLEAN read_only, |
| UINT32 size_max, |
| UINT32 size_current, |
| UINT8 *p_buf, |
| UINT8 *p_scratch_buf); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_T3tSetLocalNDefParams |
| ** |
| ** Description Sets T3T-specific NDEF parameters. (Optional - if not |
| ** called, then CE will use default parameters) |
| ** |
| ** Returns NFC_STATUS_OK if success |
| ** |
| *******************************************************************************/ |
| NFC_API extern tNFC_STATUS CE_T3tSetLocalNDefParams (UINT8 nbr, UINT8 nbw); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_T3tSendCheckRsp |
| ** |
| ** Description Send CHECK response message |
| ** |
| ** Returns NFC_STATUS_OK if success |
| ** |
| *******************************************************************************/ |
| NFC_API extern tNFC_STATUS CE_T3tSendCheckRsp (UINT8 status1, UINT8 status2, UINT8 num_blocks, UINT8 *p_block_data); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_T3tSendUpdateRsp |
| ** |
| ** Description Send UPDATE response message |
| ** |
| ** Returns NFC_STATUS_OK if success |
| ** |
| *******************************************************************************/ |
| NFC_API extern tNFC_STATUS CE_T3tSendUpdateRsp (UINT8 status1, UINT8 status2); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_T4tSetLocalNDEFMsg |
| ** |
| ** Description Initialise CE Type 4 Tag with mandatory NDEF message |
| ** |
| ** The following event may be returned |
| ** CE_T4T_UPDATE_START_EVT for starting update |
| ** CE_T4T_UPDATE_CPLT_EVT for complete update |
| ** CE_T4T_UPDATE_ABORT_EVT for failure of update |
| ** CE_T4T_RAW_FRAME_EVT for raw frame |
| ** |
| ** read_only: TRUE if read only |
| ** ndef_msg_max: Max NDEF message size |
| ** ndef_msg_len: NDEF message size |
| ** p_ndef_msg: NDEF message (excluding NLEN) |
| ** p_scratch_buf: temp storage for update |
| ** |
| ** Returns NFC_STATUS_OK if success |
| ** |
| *******************************************************************************/ |
| NFC_API extern tNFC_STATUS CE_T4tSetLocalNDEFMsg (BOOLEAN read_only, |
| UINT16 ndef_msg_max, |
| UINT16 ndef_msg_len, |
| UINT8 *p_ndef_msg, |
| UINT8 *p_scratch_buf); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_T4tRegisterAID |
| ** |
| ** Description Register AID in CE T4T |
| ** |
| ** aid_len: length of AID (up to NFC_MAX_AID_LEN) |
| ** p_aid: AID |
| ** p_cback: Raw frame will be forwarded with CE_RAW_FRAME_EVT |
| ** |
| ** Returns tCE_T4T_AID_HANDLE if successful, |
| ** CE_T4T_AID_HANDLE_INVALID otherwisse |
| ** |
| *******************************************************************************/ |
| NFC_API extern tCE_T4T_AID_HANDLE CE_T4tRegisterAID (UINT8 aid_len, |
| UINT8 *p_aid, |
| tCE_CBACK *p_cback); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_T4tDeregisterAID |
| ** |
| ** Description Deregister AID in CE T4T |
| ** |
| ** aid_len: length of AID (up to NFC_MAX_AID_LEN) |
| ** p_aid: AID |
| ** |
| ** Returns NFC_STATUS_OK if success |
| ** |
| *******************************************************************************/ |
| NFC_API extern void CE_T4tDeregisterAID (tCE_T4T_AID_HANDLE aid_handle); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_T4TTestSetCC |
| ** |
| ** Description Set fields in Capability Container File for testing |
| ** |
| ** Returns NFC_STATUS_OK if success |
| ** |
| *******************************************************************************/ |
| NFC_API extern tNFC_STATUS CE_T4TTestSetCC (UINT16 cc_len, |
| UINT8 version, |
| UINT16 max_le, |
| UINT16 max_lc); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_T4TTestSetNDEFCtrlTLV |
| ** |
| ** Description Set fields in NDEF File Control TLV for testing |
| ** |
| ** Returns NFC_STATUS_OK if success |
| ** |
| *******************************************************************************/ |
| NFC_API extern tNFC_STATUS CE_T4TTestSetNDEFCtrlTLV (UINT8 type, |
| UINT8 length, |
| UINT16 file_id, |
| UINT16 max_file_size, |
| UINT8 read_access, |
| UINT8 write_access); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_SendRawFrame |
| ** |
| ** Description This function sends a raw frame to the peer device. |
| ** |
| ** Returns tNFC_STATUS |
| ** |
| *******************************************************************************/ |
| NFC_API extern tNFC_STATUS CE_SendRawFrame (UINT8 *p_raw_data, UINT16 data_len); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_SetActivatedTagType |
| ** |
| ** Description This function selects the tag type for Reader/Writer mode. |
| ** |
| ** Returns tNFC_STATUS |
| ** |
| *******************************************************************************/ |
| NFC_API extern tNFC_STATUS CE_SetActivatedTagType (tNFC_ACTIVATE_DEVT *p_activate_params, UINT16 t3t_system_code, tCE_CBACK *p_cback); |
| |
| /******************************************************************************* |
| ** |
| ** Function CE_SetTraceLevel |
| ** |
| ** Description This function sets the trace level for Card Emulation mode. |
| ** If called with a value of 0xFF, |
| ** it simply returns the current trace level. |
| ** |
| ** Returns The new or current trace level |
| ** |
| *******************************************************************************/ |
| NFC_API extern UINT8 CE_SetTraceLevel (UINT8 new_level); |
| |
| #endif /* CE_API_H */ |