
Marking local functions: Power_Ip_ConvertIntergeToResetType Power_Ip_PrepareLowPowerMode Power_Ip_DisableSoscClock Power_Ip_DisableFircClock


Marking externally visible functions: Power_Ip_InstallNotificationsCallback Power_Ip_EnableSleepOnExit Power_Ip_DisableSleepOnExit Power_Ip_InitPower Power_Ip_InitReset Power_Ip_GetResetRawValue Power_Ip_GetResetReason Power_Ip_PerformReset Power_Ip_SetMode


Marking externally visible variables: powerReportErrorsCallback


Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:
Symbol table:

Power_Ip_CM4_EnableSleepOnExit/35 (Power_Ip_CM4_EnableSleepOnExit) @060e2a80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_EnableSleepOnExit/12 
  Calls: 
Power_Ip_CM4_DisableSleepOnExit/34 (Power_Ip_CM4_DisableSleepOnExit) @060e28c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_DisableSleepOnExit/11 
  Calls: 
Power_Ip_SMC_AllowedModesConfig/33 (Power_Ip_SMC_AllowedModesConfig) @060e2700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_InitPower/10 
  Calls: 
Power_Ip_PMC_PowerInit/32 (Power_Ip_PMC_PowerInit) @060e2620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_InitPower/10 
  Calls: 
Power_Ip_RCM_ResetInit/31 (Power_Ip_RCM_ResetInit) @060e2460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_InitReset/9 
  Calls: 
Power_Ip_RCM_GetResetRawValue/30 (Power_Ip_RCM_GetResetRawValue) @060e22a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_GetResetRawValue/8 
  Calls: 
resetReasonArray.5801/29 (resetReasonArray) @06a8f3f0
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: Power_Ip_ConvertIntergeToResetType/6 (read)Power_Ip_ConvertIntergeToResetType/6 (read)
  Availability: available
  Varpool flags: initialized read-only const-value-known
Power_Ip_RCM_GetResetReason/28 (Power_Ip_RCM_GetResetReason) @060e2000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_GetResetReason/7 
  Calls: 
Power_Ip_CM4_SystemReset/27 (Power_Ip_CM4_SystemReset) @06a8ce00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_PerformReset/5 
  Calls: 
Power_Ip_SCG_DisableSoscClock/26 (Power_Ip_SCG_DisableSoscClock) @06a8cc40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_DisableSoscClock/2 
  Calls: 
Power_Ip_RCM_RestoreSystemResetIsrConfig/25 (Power_Ip_RCM_RestoreSystemResetIsrConfig) @06a8ca80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_DisableSoscClock/2 Power_Ip_DisableFircClock/1 
  Calls: 
Power_Ip_SCG_DisableFircClock/24 (Power_Ip_SCG_DisableFircClock) @06a8c9a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_DisableFircClock/1 
  Calls: 
Power_Ip_RCM_SystemResetIsrConfig/23 (Power_Ip_RCM_SystemResetIsrConfig) @06a8c8c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_DisableSoscClock/2 Power_Ip_DisableFircClock/1 
  Calls: 
Power_Ip_RCM_GetCurrentSystemResetIsrSettings/22 (Power_Ip_RCM_GetCurrentSystemResetIsrSettings) @06a8c7e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_DisableSoscClock/2 Power_Ip_DisableFircClock/1 
  Calls: 
Power_Ip_SCG_DropSysClkToSircInRunMode/21 (Power_Ip_SCG_DropSysClkToSircInRunMode) @06a8c700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_DisableSoscClock/2 Power_Ip_DisableFircClock/1 
  Calls: 
Power_Ip_CM4_EnableDeepSleep/20 (Power_Ip_CM4_EnableDeepSleep) @06a8c540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_PrepareLowPowerMode/3 Power_Ip_PrepareLowPowerMode/3 
  Calls: 
Power_Ip_SCG_DisableClockMonitors/19 (Power_Ip_SCG_DisableClockMonitors) @06a8c460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_PrepareLowPowerMode/3 
  Calls: 
ReportPowerErrors/18 (ReportPowerErrors) @06a8c2a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_SetMode/4 
  Calls: 
Power_Ip_CM4_DisableDeepSleep/17 (Power_Ip_CM4_DisableDeepSleep) @06a8c1c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_SetMode/4 
  Calls: 
Power_Ip_SMC_ModeConfig/16 (Power_Ip_SMC_ModeConfig) @06a8c0e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_SetMode/4 
  Calls: 
Power_Ip_SMC_ModeCheckEntry/15 (Power_Ip_SMC_ModeCheckEntry) @06a8c000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_SetMode/4 
  Calls: 
ReportPowerErrorsEmptyCallback/14 (ReportPowerErrorsEmptyCallback) @06a88380
  Type: function
  Visibility: external public
  Address is taken.
  References: 
  Referring: powerReportErrorsCallback/0 (addr)
  Availability: not_available
  Function flags: optimize_size
  Called by: 
  Calls: 
Power_Ip_InstallNotificationsCallback/13 (Power_Ip_InstallNotificationsCallback) @06a880e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: powerReportErrorsCallback/0 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
Power_Ip_EnableSleepOnExit/12 (Power_Ip_EnableSleepOnExit) @06a88d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Power_Ip_CM4_EnableSleepOnExit/35 
Power_Ip_DisableSleepOnExit/11 (Power_Ip_DisableSleepOnExit) @06a88a80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Power_Ip_CM4_DisableSleepOnExit/34 
Power_Ip_InitPower/10 (Power_Ip_InitPower) @06a887e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Power_Ip_SMC_AllowedModesConfig/33 Power_Ip_PMC_PowerInit/32 
Power_Ip_InitReset/9 (Power_Ip_InitReset) @06a88540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Power_Ip_RCM_ResetInit/31 
Power_Ip_GetResetRawValue/8 (Power_Ip_GetResetRawValue) @06a882a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Power_Ip_RCM_GetResetRawValue/30 
Power_Ip_GetResetReason/7 (Power_Ip_GetResetReason) @06a88000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Power_Ip_ConvertIntergeToResetType/6 Power_Ip_RCM_GetResetReason/28 
Power_Ip_ConvertIntergeToResetType/6 (Power_Ip_ConvertIntergeToResetType) @06a81b60
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: resetReasonArray.5801/29 (read)resetReasonArray.5801/29 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Power_Ip_GetResetReason/7 
  Calls: 
Power_Ip_PerformReset/5 (Power_Ip_PerformReset) @06a81380
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Power_Ip_CM4_SystemReset/27 
Power_Ip_SetMode/4 (Power_Ip_SetMode) @06a81d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: ReportPowerErrors/18 Power_Ip_CM4_DisableDeepSleep/17 Power_Ip_SMC_ModeConfig/16 Power_Ip_PrepareLowPowerMode/3 Power_Ip_SMC_ModeCheckEntry/15 
Power_Ip_PrepareLowPowerMode/3 (Power_Ip_PrepareLowPowerMode) @06a81a80
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Power_Ip_SetMode/4 
  Calls: Power_Ip_CM4_EnableDeepSleep/20 Power_Ip_CM4_EnableDeepSleep/20 Power_Ip_DisableSoscClock/2 Power_Ip_DisableFircClock/1 Power_Ip_SCG_DisableClockMonitors/19 
Power_Ip_DisableSoscClock/2 (Power_Ip_DisableSoscClock) @06a817e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Power_Ip_PrepareLowPowerMode/3 
  Calls: Power_Ip_RCM_RestoreSystemResetIsrConfig/25 Power_Ip_SCG_DisableSoscClock/26 Power_Ip_RCM_SystemResetIsrConfig/23 Power_Ip_RCM_GetCurrentSystemResetIsrSettings/22 Power_Ip_SCG_DropSysClkToSircInRunMode/21 
Power_Ip_DisableFircClock/1 (Power_Ip_DisableFircClock) @06a81540
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Power_Ip_PrepareLowPowerMode/3 
  Calls: Power_Ip_RCM_RestoreSystemResetIsrConfig/25 Power_Ip_SCG_DisableFircClock/24 Power_Ip_RCM_SystemResetIsrConfig/23 Power_Ip_RCM_GetCurrentSystemResetIsrSettings/22 Power_Ip_SCG_DropSysClkToSircInRunMode/21 
powerReportErrorsCallback/0 (powerReportErrorsCallback) @06018120
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: ReportPowerErrorsEmptyCallback/14 (addr)
  Referring: Power_Ip_InstallNotificationsCallback/13 (write)
  Availability: available
  Varpool flags: initialized
Power_Ip_InstallNotificationsCallback (void (*Power_Ip_ReportErrorsCallbackType) (Power_Ip_PowerReportErrorType, uint8) reportErrorsCallback)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  powerReportErrorsCallback = reportErrorsCallback;
  return;

}


Power_Ip_EnableSleepOnExit ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  Power_Ip_CM4_EnableSleepOnExit ();
  return;

}


Power_Ip_DisableSleepOnExit ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  Power_Ip_CM4_DisableSleepOnExit ();
  return;

}


Power_Ip_InitPower (const struct Power_Ip_HwIPsConfigType * Power_Ip_pHwIPsConfigPtr)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = Power_Ip_pHwIPsConfigPtr->PMC_pConfig;
  Power_Ip_PMC_PowerInit (_1);
  # DEBUG BEGIN_STMT
  _2 = Power_Ip_pHwIPsConfigPtr->SMC_pConfig;
  Power_Ip_SMC_AllowedModesConfig (_2);
  return;

}


Power_Ip_InitReset (const struct Power_Ip_HwIPsConfigType * Power_Ip_pHwIPsConfigPtr)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = Power_Ip_pHwIPsConfigPtr->RCM_pConfig;
  Power_Ip_RCM_ResetInit (_1);
  return;

}


Power_Ip_GetResetRawValue ()
{
  Power_Ip_RawResetType ResetReason;
  Power_Ip_RawResetType D.5851;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ResetReason = Power_Ip_RCM_GetResetRawValue ();
  # DEBUG BEGIN_STMT
  D.5851 = ResetReason;
  return D.5851;

}


Power_Ip_GetResetReason ()
{
  uint32 resetVal;
  Power_Ip_ResetType eResetReason;
  Power_Ip_ResetType D.5844;

  <bb 2> :
  # DEBUG BEGIN_STMT
  eResetReason = 14;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  resetVal = Power_Ip_RCM_GetResetReason ();
  # DEBUG BEGIN_STMT
  eResetReason = Power_Ip_ConvertIntergeToResetType (resetVal);
  # DEBUG BEGIN_STMT
  D.5844 = eResetReason;
  return D.5844;

}


Power_Ip_ConvertIntergeToResetType (uint32 resetReasonIndex)
{
  static const Power_Ip_ResetType resetReasonArray[15] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
  Power_Ip_ResetType eResetReason;
  Power_Ip_ResetType D.5849;

  <bb 2> :
  # DEBUG BEGIN_STMT
  eResetReason = 12;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = resetReasonArray[resetReasonIndex];
  if (_1 <= 14)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  eResetReason = resetReasonArray[resetReasonIndex];
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  eResetReason = 12;

  <bb 5> :
  # DEBUG BEGIN_STMT
  D.5849 = eResetReason;
  return D.5849;

}


Power_Ip_PerformReset (const struct Power_Ip_HwIPsConfigType * Power_Ip_pHwIPsConfigPtr)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_CM4_SystemReset ();
  # DEBUG BEGIN_STMT
  return;

}


Power_Ip_SetMode (const struct Power_Ip_ModeConfigType * Power_Ip_pModeConfigPtr)
{
  Power_Ip_PowerModeType ePowerMode;
  uint32 ePowerSwitchMode;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ePowerMode = Power_Ip_pModeConfigPtr->Power_Ip_ePowerMode;
  # DEBUG BEGIN_STMT
  _1 = Power_Ip_SMC_ModeCheckEntry (ePowerMode);
  if (_1 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  ePowerSwitchMode = 1;
  goto <bb 6>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  Power_Ip_PrepareLowPowerMode (ePowerMode);
  # DEBUG BEGIN_STMT
  ePowerSwitchMode = Power_Ip_SMC_ModeConfig (Power_Ip_pModeConfigPtr);
  # DEBUG BEGIN_STMT
  _2 = ePowerMode + 4294967293;
  if (_2 <= 2)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_CM4_DisableDeepSleep ();

  <bb 6> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (ePowerSwitchMode == 1)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  ReportPowerErrors (3, 255);

  <bb 8> :
  # DEBUG BEGIN_STMT
  return;

}


Power_Ip_PrepareLowPowerMode (Power_Ip_PowerModeType ePowerMode)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = ePowerMode + 4294967294;
  if (_1 <= 1)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_SCG_DisableClockMonitors ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_DisableFircClock ();
  # DEBUG BEGIN_STMT
  Power_Ip_DisableSoscClock ();
  # DEBUG BEGIN_STMT
  if (ePowerMode == 3)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_CM4_EnableDeepSleep ();

  <bb 5> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = ePowerMode + 4294967292;
  if (_2 <= 1)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_CM4_EnableDeepSleep ();

  <bb 7> :
  # DEBUG BEGIN_STMT
  return;

}


Power_Ip_DisableSoscClock ()
{
  uint32 u32SystemResetIsrConfig;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_SCG_DropSysClkToSircInRunMode ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  u32SystemResetIsrConfig = Power_Ip_RCM_GetCurrentSystemResetIsrSettings ();
  # DEBUG BEGIN_STMT
  Power_Ip_RCM_SystemResetIsrConfig ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_SCG_DisableSoscClock ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_RCM_RestoreSystemResetIsrConfig (u32SystemResetIsrConfig);
  return;

}


Power_Ip_DisableFircClock ()
{
  uint32 u32SystemResetIsrConfig;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_SCG_DropSysClkToSircInRunMode ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  u32SystemResetIsrConfig = Power_Ip_RCM_GetCurrentSystemResetIsrSettings ();
  # DEBUG BEGIN_STMT
  Power_Ip_RCM_SystemResetIsrConfig ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_SCG_DisableFircClock ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_RCM_RestoreSystemResetIsrConfig (u32SystemResetIsrConfig);
  return;

}


