}\r
\r
\r
-boolean DsdLookupSid(uint8 sid, Dcm_DsdServiceType **sidPtr)\r
+boolean DsdLookupSid(uint8 sid, const Dcm_DsdServiceType **sidPtr)\r
{\r
boolean returnStatus = TRUE;\r
- uint16 i;\r
+ const Dcm_DsdServiceType *service = msgData.serviceTable->DsdService;\r
\r
- for (i = 0; (msgData.serviceTable->DsdService[i].DsdSidTabServiceId != sid) && !msgData.serviceTable->DsdService[i].Arc_EOL; i++);\r
+ while ((service->DsdSidTabServiceId != sid) && !service->Arc_EOL) {\r
+ service++;\r
+ }\r
\r
- if (!msgData.serviceTable->DsdService[i].Arc_EOL) {\r
- *sidPtr = (Dcm_DsdServiceType*)&msgData.serviceTable->DsdService[i];\r
+ if (!service->Arc_EOL) {\r
+ *sidPtr = service;\r
}\r
else {\r
returnStatus = FALSE;\r
boolean DsdAskApplicationForServicePermission(uint8 *requestData, uint16 dataSize)\r
{\r
Std_ReturnType returnCode = E_OK;\r
+ const Dcm_DslServiceRequestIndicationType *serviceRequestIndication = DCM_Config.Dsl->DslServiceRequestIndication;\r
Std_ReturnType result;\r
- uint16 i;\r
\r
- for (i = 0; !DCM_Config.Dsl->DslServiceRequestIndication[i].Arc_EOL && returnCode != E_REQUEST_NOT_ACCEPTED; i++) {\r
- if (DCM_Config.Dsl->DslServiceRequestIndication[i].Indication != NULL) {\r
- result = DCM_Config.Dsl->DslServiceRequestIndication[i].Indication(requestData, dataSize);\r
+ while (!serviceRequestIndication->Arc_EOL && (returnCode != E_REQUEST_NOT_ACCEPTED)) {\r
+ if (serviceRequestIndication->Indication != NULL) {\r
+ result = serviceRequestIndication->Indication(requestData, dataSize);\r
if (result != E_OK)\r
returnCode = result;\r
}\r
+ serviceRequestIndication++;\r
}\r
\r
return returnCode;\r
void DsdHandleRequest(void)\r
{\r
Std_ReturnType result;\r
- Dcm_DsdServiceType *sidConfPtr = NULL;\r
+ const Dcm_DsdServiceType *sidConfPtr = NULL;\r
\r
/** @req DCM178 **/\r
if (DCM_RESPOND_ALL_REQUEST || ((msgData.pduRxData->SduDataPtr[0] & 0x7F) < 0x40)) { /** @req DCM084 **/\r
{\r
boolean returnStatus = TRUE;\r
Dcm_SesCtrlType currentSession;\r
- uint16 i;\r
\r
DslGetSesCtrlType(¤tSession);\r
- for (i = 0; (sessionLevelRefTable[i]->DspSessionLevel != currentSession) && !sessionLevelRefTable[i]->Arc_EOL; i++);\r
- if (sessionLevelRefTable[i]->Arc_EOL) {\r
+ while (((*sessionLevelRefTable)->DspSessionLevel != currentSession) && !(*sessionLevelRefTable)->Arc_EOL) {\r
+ sessionLevelRefTable++;\r
+ }\r
+\r
+ if ((*sessionLevelRefTable)->Arc_EOL) {\r
returnStatus = FALSE;\r
}\r
\r
{\r
boolean returnStatus = TRUE;\r
Dcm_SecLevelType currentSecurityLevel;\r
- uint16 i;\r
\r
DslGetSecurityLevel(¤tSecurityLevel);\r
- for (i = 0; (securityLevelRefTable[i]->DspSecurityLevel != currentSecurityLevel) && !securityLevelRefTable[i]->Arc_EOL; i++);\r
- if (securityLevelRefTable[i]->Arc_EOL) {\r
+ while (((*securityLevelRefTable)->DspSecurityLevel != currentSecurityLevel) && !(*securityLevelRefTable)->Arc_EOL) {\r
+ securityLevelRefTable++;\r
+ }\r
+ if ((*securityLevelRefTable)->Arc_EOL) {\r
returnStatus = FALSE;\r
}\r
\r
Std_ReturnType AskApplicationForSessionPermission(Dcm_SesCtrlType newSessionLevel)\r
{\r
Std_ReturnType returnCode = E_OK;\r
+ const Dcm_DslSessionControlType *sesControl = DCM_Config.Dsl->DslSessionControl;\r
Dcm_SesCtrlType currentSessionLevel;\r
Std_ReturnType result;\r
- uint16 i;\r
\r
- for (i = 0; !DCM_Config.Dsl->DslSessionControl[i].Arc_EOL && (returnCode != E_SESSION_NOT_ALLOWED); i++) {\r
- if (DCM_Config.Dsl->DslSessionControl[i].GetSesChgPermission != NULL) {\r
+ while (!sesControl->Arc_EOL && (returnCode != E_SESSION_NOT_ALLOWED)) {\r
+ if (sesControl->GetSesChgPermission != NULL) {\r
Dcm_GetSesCtrlType(¤tSessionLevel);\r
- result = DCM_Config.Dsl->DslSessionControl[i].GetSesChgPermission(currentSessionLevel ,newSessionLevel);\r
+ result = sesControl->GetSesChgPermission(currentSessionLevel ,newSessionLevel);\r
if (result != E_OK) {\r
returnCode = result;\r
}\r
}\r
+ sesControl++;\r
}\r
\r
return returnCode;\r
void DspUdsDiagnosticSessionControl(const PduInfoType *pduRxData, PduInfoType *pduTxData)\r
{\r
// @req DCM250 **/\r
+ const Dcm_DspSessionRowType *sessionRow = DCM_Config.Dsp->DspSession->DspSessionRow;\r
Dcm_SesCtrlType reqSessionType;\r
Std_ReturnType result;\r
- uint16 i;\r
\r
if (pduRxData->SduLength == 2) {\r
reqSessionType = pduRxData->SduDataPtr[1];\r
// Check if type exist in session table\r
- for (i = 0; (DCM_Config.Dsp->DspSession->DspSessionRow[i].DspSessionLevel != reqSessionType) && !DCM_Config.Dsp->DspSession->DspSessionRow[i].Arc_EOL;i++);\r
+ while ((sessionRow->DspSessionLevel != reqSessionType) && !sessionRow->Arc_EOL) {\r
+ sessionRow++;\r
+ }\r
\r
- if (!DCM_Config.Dsp->DspSession->DspSessionRow[i].Arc_EOL) {\r
+ if (!sessionRow->Arc_EOL) {\r
result = AskApplicationForSessionPermission(reqSessionType);\r
if (result == E_OK) {\r
DslSetSesCtrlType(reqSessionType); /** @req DCM311 **/\r
\r
boolean DspLookupDid(uint16 didNr, const Dcm_DspDidType **didPtr)\r
{\r
- uint16 i;\r
+ const Dcm_DspDidType *dspDid = DCM_Config.Dsp->DspDid;\r
boolean didFound = FALSE;\r
- for (i = 0; (DCM_Config.Dsp->DspDid[i].DspDidIdentifier != didNr) && !DCM_Config.Dsp->DspDid[i].Arc_EOL; i++);\r
\r
- if (!DCM_Config.Dsp->DspDid[i].Arc_EOL) {\r
+ while ((dspDid->DspDidIdentifier != didNr) && !dspDid->Arc_EOL) {\r
+ dspDid++;\r
+ }\r
+\r
+ if (!dspDid->Arc_EOL) {\r
didFound = TRUE;\r
- *didPtr = &DCM_Config.Dsp->DspDid[i];\r
+ *didPtr = dspDid;\r
}\r
\r
return didFound;\r