Swt_Ip_IrqHandler (uint32 u32Instance) { struct SWT_Type * const base; : # DEBUG BEGIN_STMT base = s_swtBase[u32Instance]; # DEBUG BEGIN_STMT _1 = Swt_Ip_GetIntFlag (base); if (_1 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT Swt_Ip_ClearIntFlag (base); # DEBUG BEGIN_STMT _2 = Swt_Ip_apCallbackPtr[u32Instance]; if (_2 != 0B) goto ; [INV] else goto ; [INV] : _3 = Swt_Ip_IsIntEnabled (base); if (_3 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _4 = Swt_Ip_apCallbackPtr[u32Instance]; _4 (); : return; } Swt_Ip_StopTimer (const uint32 u32Instance) { Swt_Ip_StatusType ret; Swt_Ip_LockType lockConfig; struct SWT_Type * const base; Swt_Ip_StatusType D.4582; : # DEBUG BEGIN_STMT base = s_swtBase[u32Instance]; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT lockConfig = Swt_Ip_GetLock (base); # DEBUG BEGIN_STMT SchM_Enter_Wdg_WDG_EXCLUSIVE_AREA_11 (); # DEBUG BEGIN_STMT ret = Swt_Ip_Unlock (base); # DEBUG BEGIN_STMT if (ret == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT Swt_Ip_Disable (base); # DEBUG BEGIN_STMT Swt_Ip_Lock (base, lockConfig); : # DEBUG BEGIN_STMT SchM_Exit_Wdg_WDG_EXCLUSIVE_AREA_11 (); # DEBUG BEGIN_STMT D.4582 = ret; return D.4582; } Swt_Ip_StartTimer (const uint32 u32Instance) { Swt_Ip_StatusType ret; Swt_Ip_LockType lockConfig; struct SWT_Type * const base; Swt_Ip_StatusType D.4578; : # DEBUG BEGIN_STMT base = s_swtBase[u32Instance]; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT lockConfig = Swt_Ip_GetLock (base); # DEBUG BEGIN_STMT SchM_Enter_Wdg_WDG_EXCLUSIVE_AREA_10 (); # DEBUG BEGIN_STMT ret = Swt_Ip_Unlock (base); # DEBUG BEGIN_STMT if (ret == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT Swt_Ip_Enable (base); # DEBUG BEGIN_STMT Swt_Ip_Lock (base, lockConfig); : # DEBUG BEGIN_STMT SchM_Exit_Wdg_WDG_EXCLUSIVE_AREA_10 (); # DEBUG BEGIN_STMT D.4578 = ret; return D.4578; } Swt_Ip_SetTimeout (const uint32 u32Instance, const uint32 u32TimeoutValue, const uint32 u32WindowValue) { Swt_Ip_StatusType ret; Swt_Ip_LockType lockConfig; struct SWT_Type * const base; Swt_Ip_StatusType D.4574; : # DEBUG BEGIN_STMT base = s_swtBase[u32Instance]; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT lockConfig = Swt_Ip_GetLock (base); # DEBUG BEGIN_STMT ret = Swt_Ip_CheckTimeout (u32TimeoutValue, u32WindowValue); # DEBUG BEGIN_STMT if (ret == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _1 = Swt_Ip_Unlock (base); if (_1 == 1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT ret = 1; goto ; [INV] : # DEBUG BEGIN_STMT Swt_Ip_Disable (base); # DEBUG BEGIN_STMT base->TO = u32TimeoutValue; # DEBUG BEGIN_STMT if (u32WindowValue != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT base->WN = u32WindowValue; # DEBUG BEGIN_STMT _2 = base->CR; _3 = _2 | 128; base->CR = _3; goto ; [INV] : # DEBUG BEGIN_STMT _4 = base->CR; _5 = _4 & 4294967167; base->CR = _5; : # DEBUG BEGIN_STMT Swt_Ip_Enable (base); # DEBUG BEGIN_STMT Swt_Ip_Lock (base, lockConfig); : # DEBUG BEGIN_STMT D.4574 = ret; return D.4574; } Swt_Ip_Config (const uint32 u32Instance, const struct Swt_Ip_ConfigType * const Swt_Ip_pConfig) { boolean bSwtEnabled; Swt_Ip_StatusType ret; struct SWT_Type * const base; Swt_Ip_StatusType D.4564; : # DEBUG BEGIN_STMT base = s_swtBase[u32Instance]; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = Swt_Ip_pConfig->u32TimeoutValue; _2 = Swt_Ip_pConfig->u32WindowValue; ret = Swt_Ip_CheckTimeout (_1, _2); # DEBUG BEGIN_STMT if (ret == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _3 = Swt_Ip_Unlock (base); if (_3 == 1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT ret = 1; goto ; [INV] : # DEBUG BEGIN_STMT bSwtEnabled = Swt_Ip_IsEnable (base); # DEBUG BEGIN_STMT if (bSwtEnabled != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT Swt_Ip_Disable (base); : # DEBUG BEGIN_STMT Swt_Ip_RegisterConfig (base, Swt_Ip_pConfig); # DEBUG BEGIN_STMT if (bSwtEnabled != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT Swt_Ip_Enable (base); : # DEBUG BEGIN_STMT _4 = Swt_Ip_pConfig->lockConfig; Swt_Ip_Lock (base, _4); : # DEBUG BEGIN_STMT D.4564 = ret; return D.4564; } Swt_Ip_Service (const uint32 u32Instance) { boolean bUnlockSequence; struct SWT_Type * const base; boolean iftmp.7; boolean iftmp.6; : # DEBUG BEGIN_STMT base = s_swtBase[u32Instance]; # DEBUG BEGIN_STMT bUnlockSequence = 0; # DEBUG BEGIN_STMT SchM_Enter_Wdg_WDG_EXCLUSIVE_AREA_09 (); # DEBUG BEGIN_STMT _1 = Swt_Ip_IsKeyedServiceMode (base); if (_1 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _2 = Swt_Ip_ServiceKeyGen (base); if (_2 == 50464) goto ; [INV] else goto ; [INV] : _3 = (int) bUnlockSequence; if (_3 != 0) goto ; [INV] else goto ; [INV] : iftmp.6 = 1; goto ; [INV] : iftmp.6 = 0; : bUnlockSequence = iftmp.6; # DEBUG BEGIN_STMT _4 = Swt_Ip_ServiceKeyGen (base); Swt_Ip_ServiceCmd (base, _4); # DEBUG BEGIN_STMT _5 = Swt_Ip_ServiceKeyGen (base); if (_5 == 50464) goto ; [INV] else goto ; [INV] : _6 = (int) bUnlockSequence; if (_6 != 0) goto ; [INV] else goto ; [INV] : iftmp.7 = 1; goto ; [INV] : iftmp.7 = 0; : bUnlockSequence = iftmp.7; # DEBUG BEGIN_STMT _7 = Swt_Ip_ServiceKeyGen (base); Swt_Ip_ServiceCmd (base, _7); # DEBUG BEGIN_STMT _8 = Swt_Ip_GetLock (base); if (_8 == 1) goto ; [INV] else goto ; [INV] : if (bUnlockSequence != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT Swt_Ip_ServiceCmd (base, 55592); # DEBUG BEGIN_STMT Swt_Ip_Lock (base, 1); goto ; [INV] : # DEBUG BEGIN_STMT Swt_Ip_ServiceCmd (base, 42498); # DEBUG BEGIN_STMT Swt_Ip_ServiceCmd (base, 46208); : # DEBUG BEGIN_STMT SchM_Exit_Wdg_WDG_EXCLUSIVE_AREA_09 (); return; } Swt_Ip_Deinit (const uint32 u32Instance) { Swt_Ip_StatusType ret; struct SWT_Type * const base; Swt_Ip_StatusType D.4530; : # DEBUG BEGIN_STMT base = s_swtBase[u32Instance]; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ret = Swt_Ip_Unlock (base); # DEBUG BEGIN_STMT if (ret == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT Swt_Ip_Disable (base); # DEBUG BEGIN_STMT base->IR = 1; # DEBUG BEGIN_STMT base->TO = 7601632; # DEBUG BEGIN_STMT base->WN = 0; # DEBUG BEGIN_STMT base->SK = 0; # DEBUG BEGIN_STMT base->CR = 4278190346; # DEBUG BEGIN_STMT Swt_Ip_ClearRequest (base); : # DEBUG BEGIN_STMT D.4530 = ret; return D.4530; } Swt_Ip_Init (const uint32 u32Instance, const struct Swt_Ip_ConfigType * const Swt_Ip_pConfig) { Swt_Ip_StatusType ret; struct SWT_Type * const base; Swt_Ip_StatusType D.4474; : # DEBUG BEGIN_STMT base = s_swtBase[u32Instance]; # DEBUG BEGIN_STMT ret = 0; # DEBUG BEGIN_STMT _1 = Swt_Ip_IsEnable (base); if (_1 != 0) goto ; [INV] else goto ; [INV] : _2 = Swt_Ip_Unlock (base); if (_2 == 1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT ret = 1; goto ; [INV] : # DEBUG BEGIN_STMT _3 = Swt_Ip_pConfig->u32TimeoutValue; _4 = Swt_Ip_pConfig->u32WindowValue; ret = Swt_Ip_CheckTimeout (_3, _4); # DEBUG BEGIN_STMT if (ret == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT Swt_Ip_RegisterConfig (base, Swt_Ip_pConfig); # DEBUG BEGIN_STMT _5 = Swt_Ip_pConfig->bEnInterrupt; if (_5 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _6 = Swt_Ip_pConfig->pfSwtCallback; Swt_Ip_apCallbackPtr[u32Instance] = _6; : # DEBUG BEGIN_STMT Swt_Ip_Enable (base); # DEBUG BEGIN_STMT _7 = Swt_Ip_pConfig->lockConfig; Swt_Ip_Lock (base, _7); : # DEBUG BEGIN_STMT D.4474 = ret; return D.4474; } Swt_Ip_ClearIntFlag (struct SWT_Type * const base) { : # DEBUG BEGIN_STMT _1 = base->IR; _2 = _1 & 1; base->IR = _2; return; } Swt_Ip_IsIntEnabled (const struct SWT_Type * const base) { boolean D.4592; : # DEBUG BEGIN_STMT _1 = base->CR; _2 = _1 & 64; D.4592 = _2 != 0; return D.4592; } Swt_Ip_GetIntFlag (const struct SWT_Type * const base) { boolean D.4590; : # DEBUG BEGIN_STMT _1 = base->IR; _2 = _1 & 1; D.4590 = _2 != 0; return D.4590; } Swt_Ip_ClearRequest (struct SWT_Type * const base) { : # DEBUG BEGIN_STMT base->RRR = 1; return; } Swt_Ip_ServiceKeyGen (const struct SWT_Type * const base) { uint16 D.4551; : # DEBUG BEGIN_STMT _1 = base->SK; _2 = (short unsigned int) _1; _3 = _2 * 17; D.4551 = _3 + 3; return D.4551; } Swt_Ip_IsKeyedServiceMode (const struct SWT_Type * const base) { boolean D.4549; : # DEBUG BEGIN_STMT _1 = base->CR; _2 = _1 >> 9; _3 = _2 & 3; D.4549 = _3 == 1; return D.4549; } Swt_Ip_ServiceCmd (struct SWT_Type * const base, uint16 u16ServiceKey) { : # DEBUG BEGIN_STMT _1 = base->SR; _2 = _1 & 4294901760; _3 = (long unsigned int) u16ServiceKey; _4 = _2 | _3; base->SR = _4; return; } Swt_Ip_CheckTimeout (uint32 u32TimeoutValue, uint32 u32WindowValue) { Swt_Ip_StatusType ret; Swt_Ip_StatusType D.4497; : # DEBUG BEGIN_STMT ret = 0; # DEBUG BEGIN_STMT if (u32TimeoutValue <= 2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT ret = 1; : # DEBUG BEGIN_STMT if (u32WindowValue != 0) goto ; [INV] else goto ; [INV] : if (u32TimeoutValue <= u32WindowValue) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT ret = 1; : # DEBUG BEGIN_STMT D.4497 = ret; return D.4497; } Swt_Ip_RegisterConfig (struct SWT_Type * const base, const struct Swt_Ip_ConfigType * const Swt_Ip_pConfig) { uint32 cr; long unsigned int iftmp.5; long unsigned int iftmp.4; long unsigned int iftmp.3; long unsigned int iftmp.2; long unsigned int iftmp.1; long unsigned int iftmp.0; : # DEBUG BEGIN_STMT cr = 0; # DEBUG BEGIN_STMT _1 = Swt_Ip_pConfig->u8MapEnBitmask; _2 = (long unsigned int) _1; _3 = _2 << 24; _4 = Swt_Ip_pConfig->bEnKeyedService; if (_4 != 0) goto ; [INV] else goto ; [INV] : iftmp.0 = 512; goto ; [INV] : iftmp.0 = 0; : _5 = iftmp.0 | _3; _6 = Swt_Ip_pConfig->bEnResetOnInvalidAccess; if (_6 != 0) goto ; [INV] else goto ; [INV] : iftmp.1 = 256; goto ; [INV] : iftmp.1 = 0; : _7 = iftmp.1 | _5; _8 = Swt_Ip_pConfig->bEnWindow; if (_8 != 0) goto ; [INV] else goto ; [INV] : iftmp.2 = 128; goto ; [INV] : iftmp.2 = 0; : _9 = iftmp.2 | _7; _10 = Swt_Ip_pConfig->bEnInterrupt; if (_10 != 0) goto ; [INV] else goto ; [INV] : iftmp.3 = 64; goto ; [INV] : iftmp.3 = 0; : _11 = iftmp.3 | _9; _12 = Swt_Ip_pConfig->bEnRunInStopMode; if (_12 != 0) goto ; [INV] else goto ; [INV] : iftmp.4 = 0; goto ; [INV] : iftmp.4 = 4; : _13 = iftmp.4 | _11; _14 = Swt_Ip_pConfig->bEnRunInDebugMode; if (_14 != 0) goto ; [INV] else goto ; [INV] : iftmp.5 = 0; goto ; [INV] : iftmp.5 = 2; : cr = iftmp.5 | _13; # DEBUG BEGIN_STMT base->CR = cr; # DEBUG BEGIN_STMT base->IR = 1; # DEBUG BEGIN_STMT _15 = Swt_Ip_pConfig->u32TimeoutValue; base->TO = _15; # DEBUG BEGIN_STMT _16 = Swt_Ip_pConfig->bEnWindow; if (_16 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _17 = Swt_Ip_pConfig->u32WindowValue; base->WN = _17; : # DEBUG BEGIN_STMT _18 = Swt_Ip_pConfig->bEnKeyedService; if (_18 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _19 = Swt_Ip_pConfig->u16InitialKey; _20 = (long unsigned int) _19; base->SK = _20; : return; } Swt_Ip_Unlock (struct SWT_Type * const base) { uint32 ElapsedTicks; uint32 CurrentTicks; uint32 TimeoutTicks; Swt_Ip_StatusType ret; Swt_Ip_StatusType D.4488; long unsigned int D.4483; : # DEBUG BEGIN_STMT ret = 0; # DEBUG BEGIN_STMT TimeoutTicks = OsIf_MicrosToTicks (3000, 0); # DEBUG BEGIN_STMT CurrentTicks = 0; # DEBUG BEGIN_STMT ElapsedTicks = 0; # DEBUG BEGIN_STMT _1 = base->CR; _2 = _1 & 32; if (_2 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT ret = 1; goto ; [INV] : # DEBUG BEGIN_STMT _3 = base->CR; _4 = _3 & 16; if (_4 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT base->SR = 50464; # DEBUG BEGIN_STMT base->SR = 55592; # DEBUG BEGIN_STMT _5 = OsIf_GetCounter (0); CurrentTicks = _5; # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT D.4483 = OsIf_GetElapsed (&CurrentTicks, 0); ElapsedTicks = D.4483 + ElapsedTicks; : # DEBUG BEGIN_STMT _6 = base->CR; _7 = _6 & 16; if (_7 != 0) goto ; [INV] else goto ; [INV] : if (ElapsedTicks < TimeoutTicks) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (ElapsedTicks >= TimeoutTicks) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT ret = 1; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT D.4488 = ret; CurrentTicks = {CLOBBER}; return D.4488; } Swt_Ip_Lock (struct SWT_Type * const base, Swt_Ip_LockType lockConfig) { : # DEBUG BEGIN_STMT _1 = (int) lockConfig; switch (_1) [INV], case 1: [INV], case 2: [INV]> : : # DEBUG BEGIN_STMT _2 = base->CR; _3 = _2 | 32; base->CR = _3; # DEBUG BEGIN_STMT goto ; [INV] : : # DEBUG BEGIN_STMT _4 = base->CR; _5 = _4 | 16; base->CR = _5; # DEBUG BEGIN_STMT : : return; } Swt_Ip_GetLock (const struct SWT_Type * const base) { Swt_Ip_LockType lockMode; Swt_Ip_LockType D.4553; : # DEBUG BEGIN_STMT lockMode = 0; # DEBUG BEGIN_STMT _1 = base->CR; _2 = _1 >> 4; _3 = _2 & 3; switch (_3) [INV], case 0: [INV], case 1: [INV], case 2: [INV]> : : # DEBUG BEGIN_STMT lockMode = 0; # DEBUG BEGIN_STMT goto ; [INV] : : # DEBUG BEGIN_STMT lockMode = 1; # DEBUG BEGIN_STMT goto ; [INV] : : # DEBUG BEGIN_STMT lockMode = 2; # DEBUG BEGIN_STMT goto ; [INV] : : # DEBUG BEGIN_STMT lockMode = 2; # DEBUG BEGIN_STMT : # DEBUG BEGIN_STMT D.4553 = lockMode; return D.4553; } Swt_Ip_Disable (struct SWT_Type * const base) { : # DEBUG BEGIN_STMT _1 = base->CR; _2 = _1 & 4294967294; base->CR = _2; return; } Swt_Ip_Enable (struct SWT_Type * const base) { : # DEBUG BEGIN_STMT _1 = base->CR; _2 = _1 | 1; base->CR = _2; return; } Swt_Ip_IsEnable (const struct SWT_Type * const base) { boolean D.4476; : # DEBUG BEGIN_STMT _1 = base->CR; _2 = _1 & 1; D.4476 = _2 != 0; return D.4476; }