/*
* Copyright (C) 2010 NXP Semiconductors
*
* 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.
*/
/*!
* =========================================================================== *
* *
* *
* \file phHciNfc_Pipe.h *
* \brief HCI Header for the Pipe Management. *
* *
* *
* Project: NFC-FRI-1.1 *
* *
* $Date: Fri Aug 14 17:01:27 2009 $ *
* $Author: ing04880 $ *
* $Revision: 1.17 $ *
* $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 $
* *
* =========================================================================== *
*/
/*@{*/
#ifndef PHHCINFC_PIPE_H
#define PHHCINFC_PIPE_H
/*@}*/
/**
* \name HCI
*
* File: \ref phHciNfc_Pipe.h
*
*/
/*@{*/
#define PHHCINFC_PIPE_FILEREVISION "$Revision: 1.17 $" /**< \ingroup grp_file_attributes */
#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 */
/*@}*/
/*
***************************** Header File Inclusion ****************************
*/
#include <phHciNfc.h>
#include <phHciNfc_Generic.h>
/*
****************************** Macro Definitions *******************************
*/
#define PIPEINFO_SIZE 0x04U
#define PIPEID_LEN 0x01U
#define RESPONSE_GATEID_OFFSET 0x03U
#define RESPONSE_PIPEID_OFFSET 0x04U
#define PIPETYPE_STATIC_LINK 0x00U
#define PIPETYPE_STATIC_ADMIN 0x01U
#define PIPETYPE_DYNAMIC 0x02U
/*
******************** Enumeration and Structure Definition **********************
*/
typedef enum phHciNfc_PipeMgmt_Seq{
/* Pipe for Identitiy Management */
PIPE_IDMGMT_CREATE = 0x00U,
/* Pipe for Configuring PN544 Nfc Device */
PIPE_PN544MGMT_CREATE,
/* Pipe for Configuring Polling Wheel */
PIPE_POLLINGLOOP_CREATE,
/* Pipes for Configuring the RF Readers */
PIPE_READER_A_CREATE,
PIPE_READER_B_CREATE,
PIPE_READER_F_CREATE,
PIPE_READER_JWL_CREATE,
PIPE_READER_ISO15693_CREATE,
/* Pipes for configuring the Card Emulation */
PIPE_CARD_A_CREATE,
PIPE_CARD_A_DELETE,
PIPE_CARD_B_CREATE,
PIPE_CARD_B_DELETE,
PIPE_CARD_F_CREATE,
PIPE_CARD_F_DELETE,
/* Pipes for Peer to Peer Communication */
PIPE_NFC_INITIATOR_CREATE,
PIPE_NFC_TARGET_CREATE,
/* Secure Element Commands */
PIPE_WI_CREATE,
PIPE_SWP_CREATE,
/* Connectiviy Gate Pipe */
PIPE_CONNECTIVITY,
/* Clearing all the created Pipes */
PIPE_DELETE_ALL,
PIPE_MGMT_END
} phHciNfc_PipeMgmt_Seq_t;
/** \defgroup grp_hci_nfc HCI Component
*
*
*/
/*
*********************** Function Prototype Declaration *************************
*/
/*!
* \brief Creates the Pipes of all the Supported Gates .
*
* This function Creates the pipes for all the supported gates
*/
extern
NFCSTATUS
phHciNfc_Create_All_Pipes(
phHciNfc_sContext_t *psHciContext,
void *pHwRef,
phHciNfc_PipeMgmt_Seq_t *p_pipe_seq
);
/*!
* \brief Deletes the Pipes of all the Supported Gates .
*
* This function Deletes the pipes for all the supported gates
*/
extern
NFCSTATUS
phHciNfc_Delete_All_Pipes(
phHciNfc_sContext_t *psHciContext,
void *pHwRef,
phHciNfc_PipeMgmt_Seq_t pipeSeq
);
/*!
* \brief Updates the Information of Pipes of all the Supported Gates .
*
* This function Updates the pipe information for all the supported gates
*/
extern
NFCSTATUS
phHciNfc_Update_PipeInfo(
phHciNfc_sContext_t *psHciContext,
phHciNfc_PipeMgmt_Seq_t *pPipeSeq,
uint8_t pipe_id,
phHciNfc_Pipe_Info_t *pPipeInfo
);
/**
* \ingroup grp_hci_nfc
*
* The phHciNfc_Open_Pipe function opens
* .
*
* \param[in] psContext psContext is pointer to the context
* Structure of the HCI Layer.
* \param[in] pHwRef pHwRef is the Information of
* the Device Interface Link .
* \param[in] pPipeHandle pPipeHandle is the handle used to open
* the Static or Dynamically Created Pipe.
*
* \retval NFCSTATUS_PENDING Pipe Open is pending.
* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
* could not be interpreted properly.
* \retval Other errors Errors related to the lower layers
*
*/
extern
NFCSTATUS
phHciNfc_Open_Pipe (
phHciNfc_sContext_t *psContext,
void *pHwRef,
phHciNfc_Pipe_Info_t *pPipeHandle
);
/**
* \ingroup grp_hci_nfc
*
* The phHciNfc_Close_Pipe function closes
* .
*
* \param[in] psContext psContext is pointer to the context
* Structure of the HCI Layer.
* \param[in] pHwRef pHwRef is the Information of
* the Device Interface Link .
* \param[in] pPipeHandle pPipeHandle is the handle used to closes
* the Static or Dynamically Created Pipe.
*
* \retval NFCSTATUS_PENDING Pipe close is pending.
* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
* could not be interpreted properly.
* \retval Other errors Errors related to the lower layers
*
*/
extern
NFCSTATUS
phHciNfc_Close_Pipe (
phHciNfc_sContext_t *psContext,
void *pHwRef,
phHciNfc_Pipe_Info_t *pPipeHandle
);
/**
* \ingroup grp_hci_nfc
*
* The phHciNfc_Delete_Pipe function deletes the dynamically created pipe
* using the supplied pipe handle.
*
* \param[in] psContext psContext is pointer to the context
* Structure of the HCI Layer.
* \param[in] pHwRef pHwRef is the Information of
* the Device Interface Link .
* \param[in] pPipeHandle pPipeHandle is the handle used to delete
* the Dynamically Created Pipe.
*
* \retval NFCSTATUS_PENDING Pipe Deletion is pending.
* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
* could not be interpreted properly.
*
*/
extern
NFCSTATUS
phHciNfc_Delete_Pipe(
phHciNfc_sContext_t *psHciContext,
void *pHwRef,
phHciNfc_Pipe_Info_t *pPipeHandle
);
/*!
* \brief Creates and Update the Pipes during the Session
*
* This function Creates and Update the Pipes of all the Supported Gates
* for the already initialised session.
*/
extern
NFCSTATUS
phHciNfc_Update_Pipe(
phHciNfc_sContext_t *psHciContext,
void *pHwRef,
phHciNfc_PipeMgmt_Seq_t *p_pipe_seq
);
extern
NFCSTATUS
phHciNfc_CE_Pipes_OP(
phHciNfc_sContext_t *psHciContext,
void *pHwRef,
phHciNfc_PipeMgmt_Seq_t *p_pipe_seq
);
#endif