
#include "Dcm_Cfg_Prot.h"
#include "DcmDspUds_Uds_Inf.h"
#include "Rte_Dcm.h"
/*TESTCODE-START
#include "DcmTest.h"
TESTCODE-END*/

#if (((DCM_CFG_DSP_READMEMORYBYADDRESS_ENABLED != DCM_CFG_OFF) || (DCM_CFG_DSP_WRITEMEMORYBYADDRESS_ENABLED != DCM_CFG_OFF)))

#define DCM_START_SEC_CODE /*Adding this for memory mapping*/
#include "Dcm_MemMap.h"
 /**
 * @ingroup DCM_TPL
 * DcmAppl_UserMemoryRangeModeRuleService :-\n
 * This API is used to do specific checks on the DID read/write/control operation before processing the service.The ErrorCode parameter(Nrc_u8) needs to be updated by the application in case of failed checks.
 *
 * @param[in]     adrMemoryAddress_u32 : Address location from which data should be read/written
 * @param[in]     dataDataLength_u32 :length of the data to be read/written
 * @param[in]     dataDirection_en: Indicates whether the memory location is being read/written (DCM_SUPPORT_READ/DCM_SUPPORT_WRITE)
 * @param[out]    Nrc_u8 : NRC to be set by the application
 * @retval               E_OK   : Memory location specific checks passed successfully \n
 * @retval               E_NOT_OK  : Memory location specific checks failed\n
 *
 */
Std_ReturnType DcmAppl_UserMemoryRangeModeRuleService(Dcm_NegativeResponseCodeType * Nrc_u8,uint32 adrMemoryAddress_u32,uint32 dataDataLength_u32,Dcm_Direction_t dataDirection_en)
{
	Std_ReturnType retVal_u8 = E_OK;
	*Nrc_u8= 0x00;
	/*TESTCODE-START
	retVal_u8=DcmTest_DcmAppl_UserMemoryRangeModeRuleService(Nrc_u8,adrMemoryAddress_u32,dataDataLength_u32,dataDirection_en);
	TESTCODE-END*/
	return (retVal_u8);
}
#define DCM_STOP_SEC_CODE /*Adding this for memory mapping*/
#include "Dcm_MemMap.h"
#endif

