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 * =========================================================================== * 19 * * 20 * * 21 * \file phHciNfc_Pipe.h * 22 * \brief HCI Header for the Pipe Management. * 23 * * 24 * * 25 * Project: NFC-FRI-1.1 * 26 * * 27 * $Date: Fri Aug 14 17:01:27 2009 $ * 28 * $Author: ing04880 $ * 29 * $Revision: 1.17 $ * 30 * $Aliases: 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 $ 31 * * 32 * =========================================================================== * 33 */ 34 35 /*@{*/ 36 37 #ifndef PHHCINFC_PIPE_H 38 #define PHHCINFC_PIPE_H 39 40 /*@}*/ 41 42 43 /** 44 * \name HCI 45 * 46 * File: \ref phHciNfc_Pipe.h 47 * 48 */ 49 /*@{*/ 50 #define PHHCINFC_PIPE_FILEREVISION "$Revision: 1.17 $" /**< \ingroup grp_file_attributes */ 51 #define PHHCINFC_PIPE_FILEALIASES "$Aliases: 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 */ 52 /*@}*/ 53 54 /* 55 ***************************** Header File Inclusion **************************** 56 */ 57 58 #include <phHciNfc.h> 59 #include <phHciNfc_Generic.h> 60 61 /* 62 ****************************** Macro Definitions ******************************* 63 */ 64 65 #define PIPEINFO_SIZE 0x04U 66 #define PIPEID_LEN 0x01U 67 68 #define RESPONSE_GATEID_OFFSET 0x03U 69 #define RESPONSE_PIPEID_OFFSET 0x04U 70 71 72 #define PIPETYPE_STATIC_LINK 0x00U 73 #define PIPETYPE_STATIC_ADMIN 0x01U 74 #define PIPETYPE_DYNAMIC 0x02U 75 76 /* 77 ******************** Enumeration and Structure Definition ********************** 78 */ 79 80 typedef enum phHciNfc_PipeMgmt_Seq{ 81 /* Pipe for Identitiy Management */ 82 PIPE_IDMGMT_CREATE = 0x00U, 83 /* Pipe for Configuring PN544 Nfc Device */ 84 PIPE_PN544MGMT_CREATE, 85 /* Pipe for Configuring Polling Wheel */ 86 PIPE_POLLINGLOOP_CREATE, 87 /* Pipes for Configuring the RF Readers */ 88 PIPE_READER_A_CREATE, 89 PIPE_READER_B_CREATE, 90 PIPE_READER_F_CREATE, 91 PIPE_READER_JWL_CREATE, 92 PIPE_READER_ISO15693_CREATE, 93 /* Pipes for configuring the Card Emulation */ 94 PIPE_CARD_A_CREATE, 95 PIPE_CARD_A_DELETE, 96 PIPE_CARD_B_CREATE, 97 PIPE_CARD_B_DELETE, 98 PIPE_CARD_F_CREATE, 99 PIPE_CARD_F_DELETE, 100 /* Pipes for Peer to Peer Communication */ 101 PIPE_NFC_INITIATOR_CREATE, 102 PIPE_NFC_TARGET_CREATE, 103 /* Secure Element Commands */ 104 PIPE_WI_CREATE, 105 PIPE_SWP_CREATE, 106 /* Connectiviy Gate Pipe */ 107 PIPE_CONNECTIVITY, 108 109 /* Clearing all the created Pipes */ 110 PIPE_DELETE_ALL, 111 PIPE_MGMT_END 112 } phHciNfc_PipeMgmt_Seq_t; 113 114 /** \defgroup grp_hci_nfc HCI Component 115 * 116 * 117 */ 118 119 /* 120 *********************** Function Prototype Declaration ************************* 121 */ 122 123 /*! 124 * \brief Creates the Pipes of all the Supported Gates . 125 * 126 * This function Creates the pipes for all the supported gates 127 */ 128 129 extern 130 NFCSTATUS 131 phHciNfc_Create_All_Pipes( 132 phHciNfc_sContext_t *psHciContext, 133 void *pHwRef, 134 phHciNfc_PipeMgmt_Seq_t *p_pipe_seq 135 ); 136 137 /*! 138 * \brief Deletes the Pipes of all the Supported Gates . 139 * 140 * This function Deletes the pipes for all the supported gates 141 */ 142 extern 143 NFCSTATUS 144 phHciNfc_Delete_All_Pipes( 145 phHciNfc_sContext_t *psHciContext, 146 void *pHwRef, 147 phHciNfc_PipeMgmt_Seq_t pipeSeq 148 ); 149 150 /*! 151 * \brief Updates the Information of Pipes of all the Supported Gates . 152 * 153 * This function Updates the pipe information for all the supported gates 154 */ 155 156 extern 157 NFCSTATUS 158 phHciNfc_Update_PipeInfo( 159 phHciNfc_sContext_t *psHciContext, 160 phHciNfc_PipeMgmt_Seq_t *pPipeSeq, 161 uint8_t pipe_id, 162 phHciNfc_Pipe_Info_t *pPipeInfo 163 ); 164 165 /** 166 * \ingroup grp_hci_nfc 167 * 168 * The phHciNfc_Open_Pipe function opens 169 * . 170 * 171 * \param[in] psContext psContext is pointer to the context 172 * Structure of the HCI Layer. 173 * \param[in] pHwRef pHwRef is the Information of 174 * the Device Interface Link . 175 * \param[in] pPipeHandle pPipeHandle is the handle used to open 176 * the Static or Dynamically Created Pipe. 177 * 178 * \retval NFCSTATUS_PENDING Pipe Open is pending. 179 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 180 * could not be interpreted properly. 181 * \retval Other errors Errors related to the lower layers 182 * 183 */ 184 185 extern 186 NFCSTATUS 187 phHciNfc_Open_Pipe ( 188 phHciNfc_sContext_t *psContext, 189 void *pHwRef, 190 phHciNfc_Pipe_Info_t *pPipeHandle 191 ); 192 193 /** 194 * \ingroup grp_hci_nfc 195 * 196 * The phHciNfc_Close_Pipe function closes 197 * . 198 * 199 * \param[in] psContext psContext is pointer to the context 200 * Structure of the HCI Layer. 201 * \param[in] pHwRef pHwRef is the Information of 202 * the Device Interface Link . 203 * \param[in] pPipeHandle pPipeHandle is the handle used to closes 204 * the Static or Dynamically Created Pipe. 205 * 206 * \retval NFCSTATUS_PENDING Pipe close is pending. 207 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 208 * could not be interpreted properly. 209 * \retval Other errors Errors related to the lower layers 210 * 211 */ 212 213 extern 214 NFCSTATUS 215 phHciNfc_Close_Pipe ( 216 phHciNfc_sContext_t *psContext, 217 void *pHwRef, 218 phHciNfc_Pipe_Info_t *pPipeHandle 219 ); 220 221 /** 222 * \ingroup grp_hci_nfc 223 * 224 * The phHciNfc_Delete_Pipe function deletes the dynamically created pipe 225 * using the supplied pipe handle. 226 * 227 * \param[in] psContext psContext is pointer to the context 228 * Structure of the HCI Layer. 229 * \param[in] pHwRef pHwRef is the Information of 230 * the Device Interface Link . 231 * \param[in] pPipeHandle pPipeHandle is the handle used to delete 232 * the Dynamically Created Pipe. 233 * 234 * \retval NFCSTATUS_PENDING Pipe Deletion is pending. 235 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 236 * could not be interpreted properly. 237 * 238 */ 239 240 extern 241 NFCSTATUS 242 phHciNfc_Delete_Pipe( 243 phHciNfc_sContext_t *psHciContext, 244 void *pHwRef, 245 phHciNfc_Pipe_Info_t *pPipeHandle 246 ); 247 248 /*! 249 * \brief Creates and Update the Pipes during the Session 250 * 251 * This function Creates and Update the Pipes of all the Supported Gates 252 * for the already initialised session. 253 */ 254 255 extern 256 NFCSTATUS 257 phHciNfc_Update_Pipe( 258 phHciNfc_sContext_t *psHciContext, 259 void *pHwRef, 260 phHciNfc_PipeMgmt_Seq_t *p_pipe_seq 261 ); 262 263 264 extern 265 NFCSTATUS 266 phHciNfc_CE_Pipes_OP( 267 phHciNfc_sContext_t *psHciContext, 268 void *pHwRef, 269 phHciNfc_PipeMgmt_Seq_t *p_pipe_seq 270 ); 271 272 #endif 273 274