/*
***********************************************************************************************************************
* 
* Product Info
* Isolar version: ISOLAR-AB 4.0.2
* Product release version: RTA-BSW 3.1.0
* 
***********************************************************************************************************************
*/



#include "Dcm.h"
#include "Rte_Dcm.h"

#include "DcmDspUds_Uds_Prot.h"




#include "DcmDspUds_Rdtc_Priv.h"




#include "DcmDspUds_Cdtcs_Prot.h"







/**
 ***************************************************************************************************
            Session Control (DSC) Service
 ***************************************************************************************************
*/
/* Initialization of the parameters for the supported sessions */
#define DCM_START_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"
CONST(Dcm_Dsp_Session_t, DCM_CONST) Dcm_Dsp_Session[DCM_CFG_DSP_NUMSESSIONS] =
{

   /* session configuration for DEFAULT_SESSION*/
   {
		50000,				/* P2 Max time in us */
		2000000,				/* P2* Max time in us */
		0x1,				/* Session ID */
		RTE_MODE_DcmDiagnosticSessionControl_DEFAULT_SESSION, /* DcmDiagnosticSessionControl Mode  for the Session Level */
		DCM_NO_BOOT			/* Diagnostic session used for jump to Bootloader */
	},

   /* session configuration for PROGRAMMING_SESSION*/
   {
		50000,				/* P2 Max time in us */
		2000000,				/* P2* Max time in us */
		0x2,				/* Session ID */
		RTE_MODE_DcmDiagnosticSessionControl_PROGRAMMING_SESSION, /* DcmDiagnosticSessionControl Mode  for the Session Level */
		DCM_NO_BOOT			/* Diagnostic session used for jump to Bootloader */
	},

   /* session configuration for EXTENDED_DIAGNOSTIC_SESSION*/
   {
		50000,				/* P2 Max time in us */
		2000000,				/* P2* Max time in us */
		0x3,				/* Session ID */
		RTE_MODE_DcmDiagnosticSessionControl_EXTENDED_DIAGNOSTIC_SESSION, /* DcmDiagnosticSessionControl Mode  for the Session Level */
		DCM_NO_BOOT			/* Diagnostic session used for jump to Bootloader */
	},

   /* session configuration for CODING_SESSION*/
   {
		50000,				/* P2 Max time in us */
		2000000,				/* P2* Max time in us */
		0x41,				/* Session ID */
		RTE_MODE_DcmDiagnosticSessionControl_CODING_SESSION, /* DcmDiagnosticSessionControl Mode  for the Session Level */
		DCM_NO_BOOT			/* Diagnostic session used for jump to Bootloader */
	}
};
#define DCM_STOP_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"



/**
 ***************************************************************************************************
            Security Access (SECA) Service
 ***************************************************************************************************
*/
/* Initialization of the parameters for the supported security */
#define DCM_START_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"
CONST(Dcm_Dsp_Security_t, DCM_CONST) Dcm_Dsp_Security[DCM_CFG_DSP_NUMSECURITY] =
{
   /* security configuration for DSP_SEC_LEV_L1*/
   {
   
		10000,			/* Delay timer on Power On in DcmTaskTime Counts*/

		10000,			/* Delay time after failed security access in DcmTaskTime Counts */

		/* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
		(void*)	&Rte_Call_SecurityAccess_DSP_SEC_LEV_L1_GetSeed, /* RTE Port for the GetSeed Function */
		/* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
		(void*) &Rte_Call_SecurityAccess_DSP_SEC_LEV_L1_CompareKey, /* RTE Port for the Compare Key Function */
		0x1, 		/* Security Level */
		2,			/* Security Seed size */
		2,			/* Security Key size */
		3,			/* Number of failed security access after which delay time is active */
		5,			/* Number of failed security access after which security is locked */
		0,			/* Size of the Access Data Record in Seed Request */
		USE_ASYNCH_CLIENT_SERVER			}
,
   /* security configuration for DSP_SEC_LEV_L2*/
   {
   
		10000,			/* Delay timer on Power On in DcmTaskTime Counts*/

		10000,			/* Delay time after failed security access in DcmTaskTime Counts */

		/* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
		(void*)	&Rte_Call_SecurityAccess_DSP_SEC_LEV_L2_GetSeed, /* RTE Port for the GetSeed Function */
		/* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
		(void*) &Rte_Call_SecurityAccess_DSP_SEC_LEV_L2_CompareKey, /* RTE Port for the Compare Key Function */
		0x2, 		/* Security Level */
		2,			/* Security Seed size */
		2,			/* Security Key size */
		3,			/* Number of failed security access after which delay time is active */
		5,			/* Number of failed security access after which security is locked */
		0,			/* Size of the Access Data Record in Seed Request */
		USE_ASYNCH_CLIENT_SERVER			}
,
   /* security configuration for DSP_SEC_LEV_L3*/
   {
   
		10000,			/* Delay timer on Power On in DcmTaskTime Counts*/

		10000,			/* Delay time after failed security access in DcmTaskTime Counts */

		/* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
		(void*)	&Rte_Call_SecurityAccess_DSP_SEC_LEV_L3_GetSeed, /* RTE Port for the GetSeed Function */
		/* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
		(void*) &Rte_Call_SecurityAccess_DSP_SEC_LEV_L3_CompareKey, /* RTE Port for the Compare Key Function */
		0x3, 		/* Security Level */
		2,			/* Security Seed size */
		2,			/* Security Key size */
		3,			/* Number of failed security access after which delay time is active */
		5,			/* Number of failed security access after which security is locked */
		0,			/* Size of the Access Data Record in Seed Request */
		USE_ASYNCH_CLIENT_SERVER			}
,
   /* security configuration for DSP_SEC_LEV_L4*/
   {
   
		10000,			/* Delay timer on Power On in DcmTaskTime Counts*/

		10000,			/* Delay time after failed security access in DcmTaskTime Counts */

		/* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
		(void*)	&Rte_Call_SecurityAccess_DSP_SEC_LEV_L4_GetSeed, /* RTE Port for the GetSeed Function */
		/* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
		(void*) &Rte_Call_SecurityAccess_DSP_SEC_LEV_L4_CompareKey, /* RTE Port for the Compare Key Function */
		0x4, 		/* Security Level */
		2,			/* Security Seed size */
		2,			/* Security Key size */
		3,			/* Number of failed security access after which delay time is active */
		5,			/* Number of failed security access after which security is locked */
		0,			/* Size of the Access Data Record in Seed Request */
		USE_ASYNCH_CLIENT_SERVER			}

};
#define DCM_STOP_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"























 #define DCM_START_SEC_CODE /*Adding this for memory mapping*/
 #include "Dcm_Cfg_MemMap.h"
              
static FUNC(Std_ReturnType,DCM_CODE) Dcm_ReadDidSignal_DspData_ASW_VER_F189(P2VAR(uint8,AUTOMATIC,DCM_INTERN_DATA) Data)
{
    /*MR12 RULE 13.4 VIOLATION: The result of an assignment is being used in an arithmetic operation or another assigning operation. MISRA C:2012 Rule-13.4 */
     return(Rte_Read_R_DataServices_DspData_ASW_VER_F189_Data(Data));
}
                
              
static FUNC(Std_ReturnType,DCM_CODE) Dcm_ReadDidSignal_DspData_SYS_SUP_ID_F18A(P2VAR(uint8,AUTOMATIC,DCM_INTERN_DATA) Data)
{
    /*MR12 RULE 13.4 VIOLATION: The result of an assignment is being used in an arithmetic operation or another assigning operation. MISRA C:2012 Rule-13.4 */
     return(Rte_Read_R_DataServices_DspData_SYS_SUP_ID_F18A_Data(Data));
}
                
              
static FUNC(Std_ReturnType,DCM_CODE) Dcm_ReadDidSignal_DspData_MANU_DATE_F18B(P2VAR(uint8,AUTOMATIC,DCM_INTERN_DATA) Data)
{
    /*MR12 RULE 13.4 VIOLATION: The result of an assignment is being used in an arithmetic operation or another assigning operation. MISRA C:2012 Rule-13.4 */
     return(Rte_Read_R_DataServices_DspData_MANU_DATE_F18B_Data(Data));
}
                
 
  
 
#define DCM_STOP_SEC_CODE /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"


 #define DCM_START_SEC_CODE /*Adding this for memory mapping*/
 #include "Dcm_Cfg_MemMap.h"
static FUNC(Std_ReturnType,DCM_CODE) Dcm_WriteDidSignal_DspData_ASW_VER_F189(P2CONST(uint8,AUTOMATIC,DCM_INTERN_DATA) Data)
{
   /*MR12 RULE 13.4 VIOLATION: The result of an assignment is being used in an arithmetic operation or another assigning operation. MISRA C:2012 Rule-13.4 */
    return(Rte_Write_P_DataServices_DspData_ASW_VER_F189_Data(Data));
}
static FUNC(Std_ReturnType,DCM_CODE) Dcm_WriteDidSignal_DspData_SYS_SUP_ID_F18A(P2CONST(uint8,AUTOMATIC,DCM_INTERN_DATA) Data)
{
   /*MR12 RULE 13.4 VIOLATION: The result of an assignment is being used in an arithmetic operation or another assigning operation. MISRA C:2012 Rule-13.4 */
    return(Rte_Write_P_DataServices_DspData_SYS_SUP_ID_F18A_Data(Data));
}
static FUNC(Std_ReturnType,DCM_CODE) Dcm_WriteDidSignal_DspData_MANU_DATE_F18B(P2CONST(uint8,AUTOMATIC,DCM_INTERN_DATA) Data)
{
   /*MR12 RULE 13.4 VIOLATION: The result of an assignment is being used in an arithmetic operation or another assigning operation. MISRA C:2012 Rule-13.4 */
    return(Rte_Write_P_DataServices_DspData_MANU_DATE_F18B_Data(Data));
}
 
#define DCM_STOP_SEC_CODE /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"


/*Handling of  Sender receiver supported IOCBI DIDs*/
 








/**
 **********************************************************************************************************************
           DID Signal Substructure Configuration for condition check for read and write and read datalength function
 **********************************************************************************************************************
**/
#define DCM_START_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"
CONST(Dcm_SignalDIDSubStructConfig_tst, DCM_CONST) Dcm_DspDid_ControlInfo_st[4]=
{
    {
        NULL_PTR,
        NULL_PTR
,
        NULL_PTR
          
    },



    {

            NULL_PTR,          /* Condition Check Read Function */
            NULL_PTR,          /* Read Data Length Function */
            /* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
	    (void*)&Dcm_WriteDidSignal_DspData_ASW_VER_F189,         /* Write Data Function */
    }
, 
    {

            NULL_PTR,          /* Condition Check Read Function */
            NULL_PTR,          /* Read Data Length Function */
            /* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
	    (void*)&Dcm_WriteDidSignal_DspData_SYS_SUP_ID_F18A,         /* Write Data Function */
    }
, 
    {

            NULL_PTR,          /* Condition Check Read Function */
            NULL_PTR,          /* Read Data Length Function */
            /* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
	    (void*)&Dcm_WriteDidSignal_DspData_MANU_DATE_F18B,         /* Write Data Function */
    }

};


#define DCM_STOP_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"

/**
 ***************************************************************************************************
           DID Signal Configuration
 ***************************************************************************************************
**/

#define DCM_START_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"
CONST(Dcm_DataInfoConfig_tst, DCM_CONST) Dcm_DspDataInfo_st [3]=
{
    
     {   
            /* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
             (void*)&Dcm_ReadDidSignal_DspData_ASW_VER_F189,            /* Read Data Function */
    
    
           64,                                                 /*Signal Data Size */
           DCM_INVALID_NVDBLOCK,                               /*NVM block id for USE_BLOCK_ID*/
           1,    /*Index to DcmDspControlInfoStructure*/
           DCM_UINT8,                    /* Data Type is UINT8*/
	       USE_DATA_SENDER_RECEIVER,      /*DataUsePort is USE_DATA_SENDER_RECEIVER*/
           DCM_BIG_ENDIAN,                 /*Signal endianness is BIG_ENDIAN*/
     
           TRUE,       /*Signal's fixedLength type**/
     
     
    }
    
    
,    
     {   
            /* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
             (void*)&Dcm_ReadDidSignal_DspData_MANU_DATE_F18B,            /* Read Data Function */
    
    
           64,                                                 /*Signal Data Size */
           DCM_INVALID_NVDBLOCK,                               /*NVM block id for USE_BLOCK_ID*/
           3,    /*Index to DcmDspControlInfoStructure*/
           DCM_UINT8,                    /* Data Type is UINT8*/
	       USE_DATA_SENDER_RECEIVER,      /*DataUsePort is USE_DATA_SENDER_RECEIVER*/
           DCM_BIG_ENDIAN,                 /*Signal endianness is BIG_ENDIAN*/
     
           TRUE,       /*Signal's fixedLength type**/
     
     
    }
    
    
,    
     {   
            /* MR12 RULE 11.1 VIOLATION: Typecast to function pointer required for implementation - Required for efficient RAM usage by using single void function pointer */
             (void*)&Dcm_ReadDidSignal_DspData_SYS_SUP_ID_F18A,            /* Read Data Function */
    
    
           64,                                                 /*Signal Data Size */
           DCM_INVALID_NVDBLOCK,                               /*NVM block id for USE_BLOCK_ID*/
           2,    /*Index to DcmDspControlInfoStructure*/
           DCM_UINT8,                    /* Data Type is UINT8*/
	       USE_DATA_SENDER_RECEIVER,      /*DataUsePort is USE_DATA_SENDER_RECEIVER*/
           DCM_BIG_ENDIAN,                 /*Signal endianness is BIG_ENDIAN*/
     
           TRUE,       /*Signal's fixedLength type**/
     
     
    }
    
    
};



#define DCM_STOP_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"



/**
 ***************************************************************************************************
           DID Signal Configuration
 ***************************************************************************************************
**/
#define DCM_START_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"


/* DID DspDid_ASW_VER_F189 signal configuration */
static CONST(Dcm_SignalDIDConfig_tst, DCM_CONST) DcmDspDid_F189_SigConf[1]=
{
 /* Signal DspDidSignal_F189 */
    {
        0,    /* Signal Bit Position */
        0
    }
};

/* DID DspDid_SYS_SUP_ID_F18A signal configuration */
static CONST(Dcm_SignalDIDConfig_tst, DCM_CONST) DcmDspDid_F18A_SigConf[1]=
{
 /* Signal DspDidSignal_F18A */
    {
        0,    /* Signal Bit Position */
        2
    }
};

/* DID DspDid_MANU_DATE_F18B signal configuration */
static CONST(Dcm_SignalDIDConfig_tst, DCM_CONST) DcmDspDid_F18B_SigConf[1]=
{
 /* Signal DspDidSignal_F18B */
    {
        0,    /* Signal Bit Position */
        1
    }
};


#define DCM_STOP_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"



/**
 ***************************************************************************************************
           DID Extended Configuration
 ***************************************************************************************************
*/
#define DCM_START_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"
static CONST(Dcm_ExtendedDIDConfig_tst, DCM_CONST) Did_extendedConfig_DspDidInfo_ASW_VER_F189=
{
    
        0x5uL,     /* Allowed Read Session levels */
        0xffffffffuL, /* Allowed Read Security levels */
        NULL_PTR,       /*  No User defined Mode rule Function configured  */
        0x5uL,     /* Allowed Write Session levels */
        0xffffffffuL, /* Allowed Write Security levels */
        NULL_PTR,       /*  No User defined Mode rule Function configured  */
};
static CONST(Dcm_ExtendedDIDConfig_tst, DCM_CONST) Did_extendedConfig_DspDidInfo_SYS_SUP_ID_F18A=
{
    
        0x5uL,     /* Allowed Read Session levels */
        0xffffffffuL, /* Allowed Read Security levels */
        NULL_PTR,       /*  No User defined Mode rule Function configured  */
        0x5uL,     /* Allowed Write Session levels */
        0xffffffffuL, /* Allowed Write Security levels */
        NULL_PTR,       /*  No User defined Mode rule Function configured  */
};
static CONST(Dcm_ExtendedDIDConfig_tst, DCM_CONST) Did_extendedConfig_DspDidInfo_MANU_DATE_F18B=
{
    
        0x1uL,     /* Allowed Read Session levels */
        0xffffffffuL, /* Allowed Read Security levels */
        NULL_PTR,       /*  No User defined Mode rule Function configured  */
        0x5uL,     /* Allowed Write Session levels */
        0xffffffffuL, /* Allowed Write Security levels */
        NULL_PTR,       /*  No User defined Mode rule Function configured  */
};

#define DCM_STOP_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"


/**
 ***************************************************************************************************
           DID Configuration Structure
 ***************************************************************************************************
*/
#define DCM_START_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"
CONST (Dcm_DIDConfig_tst, DCM_CONST) Dcm_DIDConfig []=
{

    {
        0xF189,                        /*DID*/
        1,                          /*No of Signals*/
        8,                            /*TotalSize*/
        TRUE,                      /*FixedLength*/
        FALSE,                      /*DynamicallyDefined*/
        DcmDspDid_F189_SigConf,        /*DidSignalRef*/
#if (DCM_CFG_POSTBUILD_SUPPORT != DCM_CFG_OFF)
        ((DCM_CFG_CONFIGSET1)|(DCM_CFG_CONFIGSET2)|(DCM_CFG_CONFIGSET3)|(DCM_CFG_CONFIGSET4)|
         (DCM_CFG_CONFIGSET5)|(DCM_CFG_CONFIGSET6)|(DCM_CFG_CONFIGSET7)|(DCM_CFG_CONFIGSET8)),                          /*DidConfigurationMask indicating availability of DID in different configuration sets*/
#endif
        &Did_extendedConfig_DspDidInfo_ASW_VER_F189   /*ExtendedConfiguration*/
    }


,
    {
        0xF18A,                        /*DID*/
        1,                          /*No of Signals*/
        8,                            /*TotalSize*/
        TRUE,                      /*FixedLength*/
        FALSE,                      /*DynamicallyDefined*/
        DcmDspDid_F18A_SigConf,        /*DidSignalRef*/
#if (DCM_CFG_POSTBUILD_SUPPORT != DCM_CFG_OFF)
        ((DCM_CFG_CONFIGSET1)|(DCM_CFG_CONFIGSET2)|(DCM_CFG_CONFIGSET3)|(DCM_CFG_CONFIGSET4)|
         (DCM_CFG_CONFIGSET5)|(DCM_CFG_CONFIGSET6)|(DCM_CFG_CONFIGSET7)|(DCM_CFG_CONFIGSET8)),                          /*DidConfigurationMask indicating availability of DID in different configuration sets*/
#endif
        &Did_extendedConfig_DspDidInfo_SYS_SUP_ID_F18A   /*ExtendedConfiguration*/
    }


,
    {
        0xF18B,                        /*DID*/
        1,                          /*No of Signals*/
        8,                            /*TotalSize*/
        TRUE,                      /*FixedLength*/
        FALSE,                      /*DynamicallyDefined*/
        DcmDspDid_F18B_SigConf,        /*DidSignalRef*/
#if (DCM_CFG_POSTBUILD_SUPPORT != DCM_CFG_OFF)
        ((DCM_CFG_CONFIGSET1)|(DCM_CFG_CONFIGSET2)|(DCM_CFG_CONFIGSET3)|(DCM_CFG_CONFIGSET4)|
         (DCM_CFG_CONFIGSET5)|(DCM_CFG_CONFIGSET6)|(DCM_CFG_CONFIGSET7)|(DCM_CFG_CONFIGSET8)),                          /*DidConfigurationMask indicating availability of DID in different configuration sets*/
#endif
        &Did_extendedConfig_DspDidInfo_MANU_DATE_F18B   /*ExtendedConfiguration*/
    }



};
#define DCM_STOP_SEC_CONST_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"


#define DCM_START_SEC_CODE /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"
FUNC(uint16,DCM_CODE) Dcm_DIDcalculateTableSize_u16(void)
{
  return ((uint16)(sizeof(Dcm_DIDConfig))/(uint16)(sizeof(Dcm_DIDConfig_tst)));
}
#define DCM_STOP_SEC_CODE /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"







#define DCM_START_SEC_CODE /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"
boolean Dcm_ControlDtcSettingModecheck_b(
/* MR12 RULE 8.13 VIOLATION:The object addressed by the pointer parameter 'NegRespCode_u8' is not modified and so the pointer could be of type 'pointer to const' - Prototype is suggested by Autosar */
P2VAR(Dcm_NegativeResponseCodeType,AUTOMATIC,DCM_INTERN_DATA) NegRespCode_u8)
{
    VAR(Std_ReturnType,AUTOMATIC) retVal_u8;
    VAR(boolean,AUTOMATIC) retVal_b;

    /* Call the DcmAppl API to check if the DTC Setting needs to be re-enabled */
    retVal_u8 =DcmAppl_UserDTCSettingEnableModeRuleService();

    if(retVal_u8!=E_OK)
    {
        (void)NegRespCode_u8;
        retVal_b = FALSE;
    }
    else
    {
        (void)NegRespCode_u8;
        retVal_b = TRUE;
    }
    return (retVal_b);

}
#define DCM_STOP_SEC_CODE /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"








/**
 ***************************************************************************************************
        Clear Diagnostic Information Service (0x14)
 ***************************************************************************************************
*/
#define DCM_START_SEC_VAR_INIT_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"
/* MR12 RULE 8.4 VIOLATION: - '%s' has external linkage but is being defined without any previous declaration */
P2FUNC(boolean,DCM_APPL_CODE,Dcm_CdiModeRuleRef_pf)	(P2VAR(Dcm_NegativeResponseCodeType,AUTOMATIC,DCM_INTERN_DATA) Nrc_u8) = NULL_PTR;
#define DCM_STOP_SEC_VAR_INIT_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"

#define DCM_START_SEC_VAR_INIT_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"
P2FUNC(Std_ReturnType,DCM_APPL_CODE,Dcm_CDIUserConditionCheck_pf) (VAR(uint32,AUTOMATIC) GoDTC,P2VAR( Dcm_NegativeResponseCodeType,DCM_INTERN_DATA,AUTOMATIC) ErrorCode) = NULL_PTR;
#define DCM_STOP_SEC_VAR_INIT_UNSPECIFIED /*Adding this for memory mapping*/
#include "Dcm_Cfg_MemMap.h"











