15d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/*
25d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Copyright (C) 2010 NXP Semiconductors
35d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *
45d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Licensed under the Apache License, Version 2.0 (the "License");
55d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * you may not use this file except in compliance with the License.
65d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * You may obtain a copy of the License at
75d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *
85d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      http://www.apache.org/licenses/LICENSE-2.0
95d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *
105d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Unless required by applicable law or agreed to in writing, software
115d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * distributed under the License is distributed on an "AS IS" BASIS,
125d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * See the License for the specific language governing permissions and
145d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * limitations under the License.
155d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
165d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
175d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
185d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
195d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \file  phFriNfc_LlcpMac.h
205d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \brief NFC LLCP MAC Mappings For Different RF Technologies.
215d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *
225d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Project: NFC-FRI
235d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *
245d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
255d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
265d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#ifndef PHFRINFC_LLCPMAC_H
275d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#define PHFRINFC_LLCPMAC_H
285d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
295d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
305d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/*include files*/
315d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phNfcTypes.h>
325d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phNfcLlcpTypes.h>
335d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phNfcStatus.h>
345d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phFriNfc.h>
355d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
365d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phFriNfc_OvrHal.h>
375d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
385d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
395d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \name LLCP MAC Mapping
405d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *
415d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * File: \ref phFriNfc_LlcpMac.h
425d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *
435d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
445d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
455d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
465d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/** \defgroup grp_fri_nfc_llcp_mac LLCP MAC Mapping Component
475d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *
485d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *  This component implements the different MAC mapping for a Logical Link Control Protocol communication,
495d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *  as defined by the NFC Forum LLCP specifications.\n
505d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *  The MAC component handles the mapping for the different technologies supported by LLCP
515d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *..This component provides an API to the upper layer with the following features:\n\n
525d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *  - Reset the MAC mapping component
535d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      - \ref phFriNfc_LlcpMac_ChkLlcp
545d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      .
555d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *  - Check the LLCP Compliancy
565d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      - \ref phFriNfc_LlcpMac_ChkLlcp
575d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      .
585d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *  - Activate the LLCP link
595d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      - \ref phFriNfc_LlcpMac_Activate
605d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      .
615d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *  - Deactivate the LLCP link
625d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      - \ref phFriNfc_LlcpMac_Deactivate
635d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      .
645d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *  - Register the MAC component Interface with a specific technologie (NFCIP/ISO14443)
655d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      - \ref phFriNfc_LlcpMac_Register
665d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      .
675d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *  - Send packets through the LLCP link
685d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      - \ref phFriNfc_LlcpMac_Send
695d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      .
705d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly  *  - Receive packets through the LLCP link
715d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *      - \ref phFriNfc_LlcpMac_Receive
725d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *
735d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
745d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
755d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
765d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \ingroup grp_fri_nfc_llcp_mac
775d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \brief Declaration of a MAC type
785d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
795d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellystruct phFriNfc_LlcpMac;
805d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef struct phFriNfc_LlcpMac phFriNfc_LlcpMac_t;
815d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
825d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
835d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *  \ingroup grp_fri_nfc_llcp_mac
845d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly *
855d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
865d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/*========== ENUMERATES ===========*/
875d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
885d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/* Enum reperesents the different MAC mapping*/
895d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef enum phFriNfc_LlcpMac_eType
905d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{
915d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_eTypeNfcip,
925d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_eTypeIso14443
935d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly}phFriNfc_LlcpMac_eType_t;
945d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
955d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/* Enum reperesents the different Peer type for a LLCP communication*/
965d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef enum phFriNfc_LlcpMac_ePeerType
975d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{
985d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_ePeerTypeInitiator,
995d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_ePeerTypeTarget
1005d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly}phFriNfc_LlcpMac_ePeerType_t;
1015d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1025d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1035d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1045d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1055d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1065d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1075d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/*========== CALLBACKS ===========*/
1085d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1095d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef void (*phFriNfc_LlcpMac_Chk_CB_t) (void        *pContext,
1105d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                           NFCSTATUS   status);
1115d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1125d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef void (*phFriNfc_LlcpMac_LinkStatus_CB_t) (void                             *pContext,
1135d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                                  phFriNfc_LlcpMac_eLinkStatus_t   eLinkStatus,
1145d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                                  phNfc_sData_t                    *psData,
1155d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                                  phFriNfc_LlcpMac_ePeerType_t     PeerRemoteDevType);
1165d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1175d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef void (*phFriNfc_LlcpMac_Send_CB_t) (void            *pContext,
1185d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                            NFCSTATUS       status);
1195d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1205d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1215d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef void (*phFriNfc_LlcpMac_Reveive_CB_t) (void               *pContext,
1225d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                               NFCSTATUS          status,
1235d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                               phNfc_sData_t      *psData);
1245d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1255d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1265d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/*========== FUNCTIONS TYPES ===========*/
1275d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1285d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef NFCSTATUS (*pphFriNfcLlpcMac_Chk_t) ( phFriNfc_LlcpMac_t               *LlcpMac,
1295d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                              phFriNfc_LlcpMac_Chk_CB_t        ChkLlcpMac_Cb,
1305d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                              void                             *pContext);
1315d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1325d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef NFCSTATUS (*pphFriNfcLlpcMac_Activate_t) (phFriNfc_LlcpMac_t                   *LlcpMac);
1335d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1345d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef NFCSTATUS (*pphFriNfcLlpcMac_Deactivate_t) (phFriNfc_LlcpMac_t                 *LlcpMac);
1355d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1365d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef NFCSTATUS (*pphFriNfcLlpcMac_Send_t) (phFriNfc_LlcpMac_t               *LlcpMac,
1375d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                              phNfc_sData_t                    *psData,
1385d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                              phFriNfc_LlcpMac_Send_CB_t       LlcpMacSend_Cb,
1395d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                              void                             *pContext);
1405d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1415d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef NFCSTATUS (*pphFriNfcLlpcMac_Receive_t) (phFriNfc_LlcpMac_t               *LlcpMac,
1425d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                                 phNfc_sData_t                    *psData,
1435d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                                 phFriNfc_LlcpMac_Reveive_CB_t    LlcpMacReceive_Cb,
1445d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                                 void                             *pContext);
1455d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1465d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/*========== STRUCTURES ===========*/
1475d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1485d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
1495d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \ingroup grp_fri_nfc_llcp_mac
1505d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \brief Generic Interface structure with the Lower Layer
1515d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
1525d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef struct phFriNfc_LlcpMac_Interface
1535d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{
1545d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   pphFriNfcLlpcMac_Chk_t              chk;
1555d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   pphFriNfcLlpcMac_Activate_t         activate;
1565d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   pphFriNfcLlpcMac_Deactivate_t       deactivate;
1575d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   pphFriNfcLlpcMac_Send_t             send;
1585d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   pphFriNfcLlpcMac_Receive_t          receive;
1595d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly} phFriNfc_LlcpMac_Interface_t;
1605d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1615d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
1625d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \ingroup grp_fri_nfc_llcp_mac
1635d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \brief Definition of the MAC type
1645d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
1655d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellystruct phFriNfc_LlcpMac
1665d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{
1675d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_eLinkStatus_t      LinkState;
1685d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phHal_sRemoteDevInformation_t       *psRemoteDevInfo;
1695d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_LinkStatus_CB_t    LinkStatus_Cb;
1705d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   void                                *LinkStatus_Context;
1715d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_Interface_t        LlcpMacInterface;
1725d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_ePeerType_t        PeerRemoteDevType;
1735d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_eType_t            MacType;
1745d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1755d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   /**<\internal Holds the completion routine informations of the Map Layer*/
1765d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_CplRt_t                   MacCompletionInfo;
1775d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   void                               *LowerDevice;
1785d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_Send_CB_t         MacSend_Cb;
1795d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   void                               *MacSend_Context;
1805d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phFriNfc_LlcpMac_Reveive_CB_t      MacReceive_Cb;
1815d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   void                               *MacReceive_Context;
1825d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phNfc_sData_t                      *psReceiveBuffer;
1835d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phNfc_sData_t                      *psSendBuffer;
1845d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phNfc_sData_t                      sConfigParam;
1855d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   uint8_t                            RecvPending;
1865d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   uint8_t                            SendPending;
1875d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   uint8_t                            RecvStatus;
1885d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phHal_uCmdList_t                   Cmd;
1895d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly   phHal_sDepAdditionalInfo_t         psDepAdditionalInfo;
1905d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly} ;
1915d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1925d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1935d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/*
1945d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly################################################################################
1955d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly********************** MAC Interface Function Prototype  ***********************
1965d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly################################################################################
1975d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly*/
1985d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
1995d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
2005d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \ingroup grp_fri_nfc_llcp_mac
2015d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \brief
2025d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
2035d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick PellyNFCSTATUS phFriNfc_LlcpMac_Reset (phFriNfc_LlcpMac_t                 *LlcpMac,
2045d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                  void                               *LowerDevice,
2055d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                  phFriNfc_LlcpMac_LinkStatus_CB_t   LinkStatus_Cb,
2065d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                  void                               *pContext);
2075d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
2085d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \ingroup grp_fri_nfc_llcp_mac
2095d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \brief
2105d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
2115d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick PellyNFCSTATUS phFriNfc_LlcpMac_ChkLlcp (phFriNfc_LlcpMac_t                  *LlcpMac,
2125d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                    phHal_sRemoteDevInformation_t       *psRemoteDevInfo,
2135d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                    phFriNfc_LlcpMac_Chk_CB_t           ChkLlcpMac_Cb,
2145d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                    void                                *pContext);
2155d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
2165d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
2175d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \ingroup grp_fri_nfc_llcp_mac
2185d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \brief
2195d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
2205d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick PellyNFCSTATUS phFriNfc_LlcpMac_Activate (phFriNfc_LlcpMac_t                   *LlcpMac);
2215d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
2225d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
2235d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \ingroup grp_fri_nfc_llcp_mac
2245d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \brief
2255d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
2265d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick PellyNFCSTATUS phFriNfc_LlcpMac_Deactivate (phFriNfc_LlcpMac_t                 *LlcpMac);
2275d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
2285d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
2295d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \ingroup grp_fri_nfc_llcp_mac
2305d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \brief
2315d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
2325d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick PellyNFCSTATUS phFriNfc_LlcpMac_Send (phFriNfc_LlcpMac_t               *LlcpMac,
2335d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                 phNfc_sData_t                    *psData,
2345d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                 phFriNfc_LlcpMac_Send_CB_t       LlcpMacSend_Cb,
2355d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                 void                             *pContext);
2365d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
2375d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**
2385d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \ingroup grp_fri_nfc_llcp_mac
2395d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \brief
2405d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */
2415d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick PellyNFCSTATUS phFriNfc_LlcpMac_Receive (phFriNfc_LlcpMac_t               *LlcpMac,
2425d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                    phNfc_sData_t                    *psData,
2435d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                    phFriNfc_LlcpMac_Reveive_CB_t    ReceiveLlcpMac_Cb,
2445d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly                                    void                             *pContext);
2455d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly
2465d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#endif /* PHFRINFC_LLCPMAC_H */
247