
#ifndef CANIF_INTEGRATION_H
#define CANIF_INTEGRATION_H


/*
 *  Set the MCAL minor release version here.
 *  Example:
 *  For AR 4.0.3, the minor version is 0U
 *  For AR 4.2.2, the minor version is 2U
 *  For AR 4.3.1, the minor version is 3U
 *  Default is 2U for compliance with AR 4.2.2
*/
#define CANIF_RX_INDICATION_VERSION (0U)

#define CANIF_WRITE_INTEGRATION_VERSION (2U)

#define CANIF_CONTROLLERMODEINDICATION_VERSION (2U)

#define CANIF_SETCONTROLLERMODE_INTEGRATION_VERSION (2U)


#include "CanIf.h"

#define CANIF_START_SEC_CODE
#include "CanIf_MemMap.h"

#if(CANIF_RX_INDICATION_VERSION < 1)
extern FUNC(void, CANIF_CODE) CanIf_RxIndication(
                                                 VAR(Can_HwHandleType, AUTOMATIC) Hrh,
                                                 VAR(Can_IdType, AUTOMATIC) CanId,
                                                 VAR(uint8, AUTOMATIC) CanDlc,
                                                 P2CONST (uint8, AUTOMATIC, CANIF_APPL_DATA) CanSduPtr
                                                );
#elif(CANIF_RX_INDICATION_VERSION >= 1)
extern FUNC(void, CANIF_CODE) CanIf_RxIndication(
                                            P2CONST (Can_HwType, AUTOMATIC, CANIF_APPL_DATA) Mailbox,
                                            P2CONST (PduInfoType, AUTOMATIC, CANIF_APPL_DATA) PduInfoPtr
                                         );
#endif

extern Can_ReturnType CanIf_Write_Integration(Can_HwHandleType Hth,const Can_PduType* PduInfoPtr);

#if(CANIF_CONTROLLERMODEINDICATION_VERSION > 2)
extern void CanIf_ControllerModeIndication( uint8 ControllerId, Can_ControllerStateType ControllerMode);
#elif(CANIF_CONTROLLERMODEINDICATION_VERSION <= 2)
extern void CanIf_ControllerModeIndication( uint8 ControllerId, CanIf_ControllerModeType ControllerMode);
#endif

extern FUNC(Can_ReturnType, CANIF_CODE) CanIf_SetControllerMode_Integration( uint8 Controller, Can_StateTransitionType Transition);

#define CANIF_STOP_SEC_CODE
#include "CanIf_MemMap.h"

#endif /* CANIF_INTEGRATION_H */
