/**
*   @file    CanIf.h
*   @version 1.0.0
*
*   @brief   AUTOSAR CanIf - CanIf Cbk module interface
*   @details AUTOSAR CanIf Cbk module interface.- Stub Version
*   This file contains sample code only. It is not part of the production code deliverables.
*
*   @addtogroup CANIF_MODULE
*   @{
*/
/*==================================================================================================
*   Project              : AUTOSAR 4.3 MCAL
*   Platform             : PA
*   Peripheral           : generic
*   Dependencies         : 
*
*   Autosar Version      : 4.3.1
*   Autosar Revision     : ASR_REL_4_3_REV_0001
*   Autosar Conf.Variant :
*   SW Version           : 1.0.0
*   Build Version        : MPC5777C_MCAL_1_0_0_RTM_ASR_REL_4_3_REV_0001_20190315
*
*   (c) Copyright 2006-2016 Freescale Semiconductor, Inc. 
*       Copyright 2017-2019 NXP
*   All Rights Reserved.
==================================================================================================*/
/*==================================================================================================
==================================================================================================*/
#ifndef CANIF_CBK_H
#define CANIF_CBK_H

#ifdef  __cplusplus
extern "C"
{
#endif
#include "CanIf_Types.h"
/*==================================================================================================
*                               SOURCE FILE VERSION INFORMATION
==================================================================================================*/
#define CANIF_CBK_VENDOR_ID                         43
#define CANIF_CBK_MODULE_ID                         60
#define CANIF_CBK_AR_RELEASE_MAJOR_VERSION          4
#define CANIF_CBK_AR_RELEASE_MINOR_VERSION          3
#define CANIF_CBK_AR_RELEASE_REVISION_VERSION       1
#define CANIF_CBK_SW_MAJOR_VERSION                  1
#define CANIF_CBK_SW_MINOR_VERSION                  0
#define CANIF_CBK_SW_PATCH_VERSION                  0

/*==================================================================================================
*                                           CONSTANTS
==================================================================================================*/

/*==================================================================================================
*                                       DEFINES AND MACROS
==================================================================================================*/
#define CANIF_PUBLIC_ICOM           STD_OFF
#define CANIF_TRIGGER_TRANSMIT      STD_OFF

#ifdef CAN_43_LLCE_PUBLIC_ICOM_SUPPORT
    #if CAN_43_LLCE_PUBLIC_ICOM_SUPPORT == STD_ON
        #define CANIF_PUBLIC_ICOM          STD_ON
    #endif
#endif

#ifdef CAN_43_FLEXCAN_PUBLIC_ICOM_SUPPORT
    #if CAN_43_FLEXCAN_PUBLIC_ICOM_SUPPORT == STD_ON
        #define CANIF_PUBLIC_ICOM          STD_ON
    #endif
#endif

#ifdef CAN_PUBLIC_ICOM_SUPPORT
    #if CAN_PUBLIC_ICOM_SUPPORT == STD_ON
        #define CANIF_PUBLIC_ICOM          STD_ON
    #endif
#endif

#ifdef CAN_43_LLCE_TRIGGER_TRANSMIT_EN
    #if CAN_43_LLCE_TRIGGER_TRANSMIT_EN == STD_ON
        #define CANIF_TRIGGER_TRANSMIT          STD_ON
    #endif
#endif

#ifdef CAN_43_FLEXCAN_TRIGGER_TRANSMIT_EN
    #if CAN_43_FLEXCAN_TRIGGER_TRANSMIT_EN == STD_ON
        #define CANIF_TRIGGER_TRANSMIT          STD_ON
    #endif
#endif

#ifdef CAN_TRIGGER_TRANSMIT_EN
    #if CAN_TRIGGER_TRANSMIT_EN == STD_ON
        #define CANIF_TRIGGER_TRANSMIT          STD_ON
    #endif
#endif


/*==================================================================================================
*                                 STRUCTURES AND OTHER TYPEDEFS
==================================================================================================*/

/*==================================================================================================
*                                     FUNCTION PROTOTYPES
==================================================================================================*/

FUNC (void, CANIF_CODE) CanIf_TxConfirmation(PduIdType CanTxPduId);
FUNC (void, CANIF_CODE) CanIf_RxIndication( const Can_HwType* Mailbox, const PduInfoType* PduInfoPtr );
FUNC (void, CANIF_CODE) CanIf_ControllerBusOff(uint8 Controller);
FUNC (void, CANIF_CODE) CanIf_ControllerModeIndication( uint8 Controller, CanIf_ControllerModeType ControllerMode );

#if (CANIF_PUBLIC_ICOM == STD_ON)
    FUNC (void, CANIF_CODE) CanIf_CurrentIcomConfiguration( uint8 ControllerId, IcomConfigIdType ConfigurationId, IcomSwitch_ErrorType Error);
#endif

#if (CANIF_TRIGGER_TRANSMIT == STD_ON)
    FUNC (Std_ReturnType, CANIF_CODE) CanIf_TriggerTransmit( PduIdType TxPduId,PduInfoType* PduInfoPtr );
#endif

#ifdef __cplusplus
}
#endif

#endif                          /* CANIF_CBK_H */

/** @} */

