/**
    ******************************************************************************
    * @file
    * @author
    * @version
    * @date
    * @brief
    * @function List:
    ******************************************************************************
    * @attention
    *
    *
    * <h2><center>&copy; COPYRIGHT 2021 </center></h2>
    ******************************************************************************
    * @History:
    * @Author:
    * @Data:
    * @Version:
*/

#ifndef _DCM_CBK_H_
#define _DCM_CBK_H_

/*******************************************************************************
* Include files
********************************************************************************/
#include "Dcm.h"

/*******************************************************************************
* Global Function Prototype
********************************************************************************/
#define DCM_START_SEC_PUBLIC_CODE
#include "MemMap.h"

extern FUNC(BufReq_ReturnType,DCM_PUBLIC_CODE) Dcm_StartOfReception
(
    PduIdType     DcmRxPduId,
    PduLengthType TpSduLength,
    P2VAR(PduLengthType,AUTOMATIC,DCM_APPL_DATA) Length
);

extern FUNC(BufReq_ReturnType,DCM_PUBLIC_CODE) Dcm_CopyRxData
(
    PduIdType      DcmRxPduId,
    P2VAR(PduInfoType,AUTOMATIC,DCM_APPL_DATA) PduInfoPointer,
    P2VAR(PduLengthType,AUTOMATIC,DCM_APPL_DATA) RxBufferSizePtr
);

extern FUNC(void,DCM_PUBLIC_CODE) Dcm_RxIndication
(
    PduIdType       DcmRxPduId,
    NotifResultType Result
);

extern FUNC(BufReq_ReturnType,DCM_PUBLIC_CODE) Dcm_CopyTxData
(
    PduIdType      DcmTxPduId,
    P2VAR(PduInfoType,AUTOMATIC,DCM_APPL_DATA) PduInfoPtr,
    P2VAR(RetryInfoType,AUTOMATIC,DCM_APPL_DATA) RetryInfoPtr,
    P2VAR(PduLengthType,AUTOMATIC,DCM_APPL_DATA) TxDataCntPtr
);

extern FUNC(void,DCM_PUBLIC_CODE) Dcm_TxConfirmation
(
    PduIdType       DcmTxPduId,
    NotifResultType Result
);

#define DCM_STOP_SEC_PUBLIC_CODE
#include "MemMap.h"

#endif
