
Marking local functions: Clock_Ip_Sleep


Marking externally visible functions: ClockTimeoutExpired ClockStartTimeout ReportClockErrors Clock_Ip_TimeDelay Clock_Ip_GetClockFrequency Clock_Ip_EnableModuleClock Clock_Ip_DisableModuleClock Clock_Ip_InstallNotificationsCallback Clock_Ip_PowerModeChangeNotification Clock_Ip_ClearClockMonitorStatus Clock_Ip_GetClockMonitorStatus Clock_Ip_DisableClockMonitor Clock_Ip_DistributePll Clock_Ip_GetPllStatus Clock_Ip_InitClock Clock_Ip_Init


Marking externally visible variables: clockConfig


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

OsIf_GetElapsed/53 (OsIf_GetElapsed) @06ff6a80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: ClockTimeoutExpired/21 
  Calls: 
OsIf_MicrosToTicks/52 (OsIf_MicrosToTicks) @06ff68c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: ClockStartTimeout/20 
  Calls: 
OsIf_GetCounter/51 (OsIf_GetCounter) @06ff67e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: ClockStartTimeout/20 
  Calls: 
GetProducerClockFreq/50 (GetProducerClockFreq) @06ff6460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Clock_Ip_GetClockFrequency/15 
  Calls: 
consumerClockCallbacks/49 (consumerClockCallbacks) @06ffa3a8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_GetClockFrequency/15 (read)
  Availability: not_available
  Varpool flags: read-only
HwPllName/48 (HwPllName) @06fecdc8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_GetPllStatus/6 (read)Clock_Ip_GetPllStatus/6 (read)
  Availability: not_available
  Varpool flags: read-only
calcFreqCallbacks/47 (calcFreqCallbacks) @06fec9d8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_Sleep/16 (read)Clock_Ip_TimeDelay/17 (read)
  Availability: not_available
  Varpool flags: read-only
UpdateFrequencies/46 (UpdateFrequencies) @06f63e00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Clock_Ip_PowerModeChangeNotification/11 Clock_Ip_DistributePll/7 Clock_Ip_InitClock/5 
  Calls: 
SpecificPeripheralClockInitialization/45 (SpecificPeripheralClockInitialization) @06f63d20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Clock_Ip_DistributePll/7 Clock_Ip_InitClock/5 
  Calls: 
gateCallbacks/44 (gateCallbacks) @06fec4c8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_DisableModuleClock/13 (read)Clock_Ip_EnableModuleClock/14 (read)
  Availability: not_available
  Varpool flags: read-only
gateCallbackIndex/43 (gateCallbackIndex) @06fec480
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_DisableModuleClock/13 (read)Clock_Ip_EnableModuleClock/14 (read)
  Availability: not_available
  Varpool flags: read-only
clockName_sourceType/42 (clockName_sourceType) @06fec3a8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_DistributePll/7 (read)
  Availability: not_available
  Varpool flags: read-only
dividerCallbacks/41 (dividerCallbacks) @06fec120
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
dividerCallbackIndex/40 (dividerCallbackIndex) @06fec0d8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
dividerTriggerCallbacks/39 (dividerTriggerCallbacks) @06fec000
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
dividertriggerCallbackIndex/38 (dividertriggerCallbackIndex) @06f70630
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
pcfsCallbacks/37 (pcfsCallbacks) @06f70ee8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
pcfsCallbackIndex/36 (pcfsCallbackIndex) @06f70ea0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
intOscCallbacks/35 (intOscCallbacks) @06f70cf0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
ircoscCallbackIndex/34 (ircoscCallbackIndex) @06f70ca8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
extOscCallbacks/33 (extOscCallbacks) @06f70bd0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
xoscCallbackIndex/32 (xoscCallbackIndex) @06f70b88
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
pllCallbacks/31 (pllCallbacks) @06f70ab0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_GetPllStatus/6 (read)
  Availability: not_available
  Varpool flags: read-only
pllCallbackIndex/30 (pllCallbackIndex) @06f70a68
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_GetPllStatus/6 (read)
  Availability: not_available
  Varpool flags: read-only
fracDivCallbacks/29 (fracDivCallbacks) @06f70990
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
fractional_dividerCallbackIndex/28 (fractional_dividerCallbackIndex) @06f70948
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)
  Availability: not_available
  Varpool flags: read-only
selectorCallbacks/27 (selectorCallbacks) @06f70870
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_DistributePll/7 (read)
  Availability: not_available
  Varpool flags: read-only
selectorCallbackIndex/26 (selectorCallbackIndex) @06f70828
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_DistributePll/7 (read)
  Availability: not_available
  Varpool flags: read-only
SpecificPlatformInitClock/25 (SpecificPlatformInitClock) @06f63c40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Clock_Ip_InitClock/5 
  Calls: 
cmuCallbacks/24 (cmuCallbacks) @06f70708
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DisableClockMonitor/8 (read)Clock_Ip_GetClockMonitorStatus/9 (read)Clock_Ip_ClearClockMonitorStatus/10 (read)
  Availability: not_available
  Varpool flags: read-only
cmuCallbackIndex/23 (cmuCallbackIndex) @06f706c0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DisableClockMonitor/8 (read)Clock_Ip_GetClockMonitorStatus/9 (read)Clock_Ip_ClearClockMonitorStatus/10 (read)
  Availability: not_available
  Varpool flags: read-only
clockFeatures/22 (clockFeatures) @06f70678
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)Clock_Ip_GetPllStatus/6 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DisableClockMonitor/8 (read)Clock_Ip_GetClockMonitorStatus/9 (read)Clock_Ip_ClearClockMonitorStatus/10 (read)Clock_Ip_DisableModuleClock/13 (read)Clock_Ip_EnableModuleClock/14 (read)
  Availability: not_available
  Varpool flags: read-only
ClockTimeoutExpired/21 (ClockTimeoutExpired) @06f63460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: OsIf_GetElapsed/53 
ClockStartTimeout/20 (ClockStartTimeout) @06f631c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: OsIf_MicrosToTicks/52 OsIf_GetCounter/51 
ReportClockErrors/19 (ReportClockErrors) @06f5cd20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: clockNotificationsCallback/1 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
   Indirect call
ClockNotificatonsEmptyCallback/18 (ClockNotificatonsEmptyCallback) @06f5c7e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  References: 
  Referring: clockNotificationsCallback/1 (addr)
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
Clock_Ip_TimeDelay/17 (Clock_Ip_TimeDelay) @06f5c2a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: ClockCalcFreqCallIdx/3 (read)calcFreqCallbacks/47 (read)ClockCalcFreqCallIdx/3 (read)ClockCalcFreqCallIdx/3 (read)ClockCalcFreqCallIdx/3 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_Sleep/16 (Clock_Ip_Sleep) @06f5cee0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: ClockCalcFreqCallIdx/3 (read)calcFreqCallbacks/47 (read)ClockCalcFreqCallIdx/3 (read)ClockCalcFreqCallIdx/3 (write)ClockCalcFreqCallIdx/3 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Clock_Ip_InitClock/5 
  Calls: 
   Indirect call
Clock_Ip_GetClockFrequency/15 (Clock_Ip_GetClockFrequency) @06f5cc40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: consumerClockCallbacks/49 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: GetProducerClockFreq/50 
   Indirect call
Clock_Ip_EnableModuleClock/14 (Clock_Ip_EnableModuleClock) @06f5c9a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: clockFeatures/22 (read)gateCallbackIndex/43 (read)gateCallbacks/44 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_DisableModuleClock/13 (Clock_Ip_DisableModuleClock) @06f5c700
  Type: function definition analyzed
  Visibility: externally_visible public
  References: clockFeatures/22 (read)gateCallbackIndex/43 (read)gateCallbacks/44 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_InstallNotificationsCallback/12 (Clock_Ip_InstallNotificationsCallback) @06f5c460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: clockNotificationsCallback/1 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
Clock_Ip_PowerModeChangeNotification/11 (Clock_Ip_PowerModeChangeNotification) @06f5c1c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: UpdateFrequencies/46 
Clock_Ip_ClearClockMonitorStatus/10 (Clock_Ip_ClearClockMonitorStatus) @06e2de00
  Type: function definition analyzed
  Visibility: externally_visible public
  References: clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_GetClockMonitorStatus/9 (Clock_Ip_GetClockMonitorStatus) @06e2d8c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_DisableClockMonitor/8 (Clock_Ip_DisableClockMonitor) @06e2d380
  Type: function definition analyzed
  Visibility: externally_visible public
  References: clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_DistributePll/7 (Clock_Ip_DistributePll) @06e2dd20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: clockConfig/2 (read)clockConfig/2 (read)clockName_sourceType/42 (read)clockConfig/2 (read)clockFeatures/22 (read)selectorCallbackIndex/26 (read)selectorCallbacks/27 (read)clockConfig/2 (read)clockConfig/2 (read)clockTreeIsConsumingPll/0 (read)clockConfig/2 (read)clockConfig/2 (read)clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)clockConfig/2 (read)clockConfig/2 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: Clock_Ip_Init/4 
  Calls: UpdateFrequencies/46 SpecificPeripheralClockInitialization/45 
   Indirect call
   Indirect call
Clock_Ip_GetPllStatus/6 (Clock_Ip_GetPllStatus) @06e2da80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: HwPllName/48 (read)clockFeatures/22 (read)pllCallbackIndex/30 (read)pllCallbacks/31 (read)HwPllName/48 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: Clock_Ip_Init/4 
  Calls: 
   Indirect call
Clock_Ip_InitClock/5 (Clock_Ip_InitClock) @06e2d7e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: ClockCalcFreqCallIdx/3 (write)clockConfig/2 (read)clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)clockConfig/2 (write)clockFeatures/22 (read)selectorCallbackIndex/26 (read)selectorCallbacks/27 (read)clockFeatures/22 (read)fractional_dividerCallbackIndex/28 (read)fracDivCallbacks/29 (read)clockFeatures/22 (read)pllCallbackIndex/30 (read)pllCallbacks/31 (read)clockFeatures/22 (read)xoscCallbackIndex/32 (read)extOscCallbacks/33 (read)clockFeatures/22 (read)ircoscCallbackIndex/34 (read)intOscCallbacks/35 (read)clockFeatures/22 (read)xoscCallbackIndex/32 (read)extOscCallbacks/33 (read)clockFeatures/22 (read)pcfsCallbackIndex/36 (read)pcfsCallbacks/37 (read)clockFeatures/22 (read)dividertriggerCallbackIndex/38 (read)dividerTriggerCallbacks/39 (read)clockFeatures/22 (read)dividerCallbackIndex/40 (read)dividerCallbacks/41 (read)clockFeatures/22 (read)dividertriggerCallbackIndex/38 (read)dividerTriggerCallbacks/39 (read)clockFeatures/22 (read)pllCallbackIndex/30 (read)pllCallbacks/31 (read)clockFeatures/22 (read)fractional_dividerCallbackIndex/28 (read)fracDivCallbacks/29 (read)clockTreeIsConsumingPll/0 (write)clockName_sourceType/42 (read)clockFeatures/22 (read)selectorCallbackIndex/26 (read)selectorCallbacks/27 (read)clockTreeIsConsumingPll/0 (write)clockFeatures/22 (read)gateCallbackIndex/43 (read)gateCallbacks/44 (read)clockTreeIsConsumingPll/0 (read)clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: Clock_Ip_Init/4 
  Calls: UpdateFrequencies/46 SpecificPeripheralClockInitialization/45 Clock_Ip_Sleep/16 SpecificPlatformInitClock/25 
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
   Indirect call
Clock_Ip_Init/4 (Clock_Ip_Init) @06e2d540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: clockTreeIsConsumingPll/0 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Clock_Ip_DistributePll/7 Clock_Ip_GetPllStatus/6 Clock_Ip_InitClock/5 
ClockCalcFreqCallIdx/3 (ClockCalcFreqCallIdx) @06e2b678
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: Clock_Ip_InitClock/5 (write)Clock_Ip_Sleep/16 (read)Clock_Ip_Sleep/16 (read)Clock_Ip_Sleep/16 (write)Clock_Ip_Sleep/16 (read)Clock_Ip_TimeDelay/17 (read)Clock_Ip_TimeDelay/17 (read)Clock_Ip_TimeDelay/17 (read)Clock_Ip_TimeDelay/17 (write)
  Availability: available
  Varpool flags:
clockConfig/2 (clockConfig) @06e2b5e8
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (write)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)
  Availability: available
  Varpool flags: initialized
clockNotificationsCallback/1 (clockNotificationsCallback) @06e2b5a0
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: ClockNotificatonsEmptyCallback/18 (addr)
  Referring: Clock_Ip_InstallNotificationsCallback/12 (write)ReportClockErrors/19 (read)
  Availability: available
  Varpool flags: initialized
clockTreeIsConsumingPll/0 (clockTreeIsConsumingPll) @06e2b510
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: Clock_Ip_Init/4 (read)Clock_Ip_InitClock/5 (write)Clock_Ip_InitClock/5 (write)Clock_Ip_InitClock/5 (read)Clock_Ip_DistributePll/7 (read)
  Availability: available
  Varpool flags: initialized
ClockTimeoutExpired (uint32 * startTimeInOut, uint32 * elapsedTimeInOut, uint32 TimeoutTicks)
{
  boolean D.5258;
  long unsigned int D.5257;

  <bb 2> :
  # DEBUG BEGIN_STMT
  D.5257 = OsIf_GetElapsed (startTimeInOut, 0);
  _1 = *elapsedTimeInOut;
  _2 = D.5257 + _1;
  *elapsedTimeInOut = _2;
  # DEBUG BEGIN_STMT
  _3 = *elapsedTimeInOut;
  D.5258 = TimeoutTicks <= _3;
  return D.5258;

}


ClockStartTimeout (uint32 * startTimeOut, uint32 * elapsedTimeOut, uint32 * timeoutTicksOut, uint32 timeoutUs)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = OsIf_GetCounter (0);
  *startTimeOut = _1;
  # DEBUG BEGIN_STMT
  *elapsedTimeOut = 0;
  # DEBUG BEGIN_STMT
  _2 = OsIf_MicrosToTicks (timeoutUs, 0);
  *timeoutTicksOut = _2;
  return;

}


ReportClockErrors (Clock_Ip_ClockNotificationType error, Clock_Ip_NameType clockName)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  clockNotificationsCallback.21_1 = clockNotificationsCallback;
  clockNotificationsCallback.21_1 (error, clockName);
  return;

}


ClockNotificatonsEmptyCallback (Clock_Ip_ClockNotificationType notification, Clock_Ip_NameType clockName)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return;

}


Clock_Ip_TimeDelay ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx.17_1 = ClockCalcFreqCallIdx;
  _2 = (int) ClockCalcFreqCallIdx.17_1;
  _3 = calcFreqCallbacks[_2];
  _3 ();
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx.18_4 = ClockCalcFreqCallIdx;
  if (ClockCalcFreqCallIdx.18_4 <= 33)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx.19_5 = ClockCalcFreqCallIdx;
  ClockCalcFreqCallIdx.20_6 = ClockCalcFreqCallIdx.19_5;
  _7 = ClockCalcFreqCallIdx.20_6 + 1;
  ClockCalcFreqCallIdx = _7;

  <bb 4> :
  return;

}


Clock_Ip_Sleep ()
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx.3_1 = ClockCalcFreqCallIdx;
  _2 = (int) ClockCalcFreqCallIdx.3_1;
  _3 = calcFreqCallbacks[_2];
  _3 ();
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx.4_4 = ClockCalcFreqCallIdx;
  ClockCalcFreqCallIdx.5_5 = ClockCalcFreqCallIdx.4_4;
  _6 = ClockCalcFreqCallIdx.5_5 + 1;
  ClockCalcFreqCallIdx = _6;

  <bb 4> :
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx.6_7 = ClockCalcFreqCallIdx;
  if (ClockCalcFreqCallIdx.6_7 <= 33)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  return;

}


Clock_Ip_GetClockFrequency (Clock_Ip_NameType clockName)
{
  uint32 frequency;
  uint32 D.5253;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (clockName > 21)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) clockName;
  _2 = _1 + 4294967274;
  _3 = consumerClockCallbacks[_2];
  frequency = _3 ();
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  frequency = GetProducerClockFreq (clockName);

  <bb 5> :
  # DEBUG BEGIN_STMT
  D.5253 = frequency;
  return D.5253;

}


Clock_Ip_EnableModuleClock (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) clockName;
  _2 = clockFeatures[_1][1];
  _3 = (int) _2;
  _4 = gateCallbackIndex[_3];
  callbackIndex = (uint32) _4;
  # DEBUG BEGIN_STMT
  _5 = gateCallbacks[callbackIndex].Update;
  _5 (clockName, 0);
  return;

}


Clock_Ip_DisableModuleClock (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) clockName;
  _2 = clockFeatures[_1][1];
  _3 = (int) _2;
  _4 = gateCallbackIndex[_3];
  callbackIndex = (uint32) _4;
  # DEBUG BEGIN_STMT
  _5 = gateCallbacks[callbackIndex].Update;
  _5 (clockName, 1);
  return;

}


Clock_Ip_InstallNotificationsCallback (void (*Clock_Ip_NotificationsCallbackType) (Clock_Ip_ClockNotificationType, Clock_Ip_NameType) callback)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  clockNotificationsCallback = callback;
  return;

}


Clock_Ip_PowerModeChangeNotification (power_modes_t powerMode, power_notification_t notification)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  UpdateFrequencies (powerMode);
  return;

}


Clock_Ip_ClearClockMonitorStatus (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) clockName;
  _2 = clockFeatures[_1][1];
  _3 = (int) _2;
  _4 = cmuCallbackIndex[_3];
  callbackIndex = (uint32) _4;
  # DEBUG BEGIN_STMT
  _5 = cmuCallbacks[callbackIndex].Clear;
  _5 (clockName);
  return;

}


Clock_Ip_GetClockMonitorStatus (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;
  Clock_Ip_CmuStatusType D.5248;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) clockName;
  _2 = clockFeatures[_1][1];
  _3 = (int) _2;
  _4 = cmuCallbackIndex[_3];
  callbackIndex = (uint32) _4;
  # DEBUG BEGIN_STMT
  _5 = cmuCallbacks[callbackIndex].GetStatus;
  D.5248 = _5 (clockName);
  return D.5248;

}


Clock_Ip_DisableClockMonitor (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) clockName;
  _2 = clockFeatures[_1][1];
  _3 = (int) _2;
  _4 = cmuCallbackIndex[_3];
  callbackIndex = (uint32) _4;
  # DEBUG BEGIN_STMT
  _5 = cmuCallbacks[callbackIndex].Disable;
  _5 (clockName);
  return;

}


Clock_Ip_DistributePll ()
{
  uint32 callbackIndex;
  uint32 i;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  clockConfig.7_1 = clockConfig;
  if (clockConfig.7_1 != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 7>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  clockConfig.8_2 = clockConfig;
  _3 = clockConfig.8_2->selectors[i].value;
  _4 = (int) _3;
  _5 = clockName_sourceType[_4];
  if (_5 != 1)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  clockConfig.9_6 = clockConfig;
  _7 = clockConfig.9_6->selectors[i].name;
  _8 = (int) _7;
  _9 = clockFeatures[_8][1];
  _10 = (int) _9;
  _11 = selectorCallbackIndex[_10];
  callbackIndex = (uint32) _11;
  # DEBUG BEGIN_STMT
  _12 = selectorCallbacks[callbackIndex].Set;
  clockConfig.10_13 = clockConfig;
  _14 = &clockConfig.10_13->selectors[i];
  _12 (_14);

  <bb 6> :
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 7> :
  # DEBUG BEGIN_STMT
  clockConfig.11_15 = clockConfig;
  _16 = clockConfig.11_15->selectorsCount;
  _17 = (long unsigned int) _16;
  if (i < _17)
    goto <bb 4>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  clockTreeIsConsumingPll.12_18 = clockTreeIsConsumingPll;
  if (clockTreeIsConsumingPll.12_18 != 0)
    goto <bb 9>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  clockConfig.13_19 = clockConfig;
  _20 = &clockConfig.13_19->specificPeriphalConfiguration;
  SpecificPeripheralClockInitialization (_20);
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 11>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  clockConfig.14_21 = clockConfig;
  _22 = clockConfig.14_21->cmus[i].name;
  _23 = (int) _22;
  _24 = clockFeatures[_23][1];
  _25 = (int) _24;
  _26 = cmuCallbackIndex[_25];
  callbackIndex = (uint32) _26;
  # DEBUG BEGIN_STMT
  _27 = cmuCallbacks[callbackIndex].Set;
  clockConfig.15_28 = clockConfig;
  _29 = &clockConfig.15_28->cmus[i];
  _27 (_29);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 11> :
  # DEBUG BEGIN_STMT
  clockConfig.16_30 = clockConfig;
  _31 = clockConfig.16_30->cmusCount;
  _32 = (long unsigned int) _31;
  if (i < _32)
    goto <bb 10>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  UpdateFrequencies (0);
  return;

}


Clock_Ip_GetPllStatus ()
{
  uint32 callbackIndex;
  uint32 i;
  clock_pll_status_t pllStatus;
  Clock_Ip_PllStatusType retValue;
  Clock_Ip_PllStatusType D.5240;

  <bb 2> :
  # DEBUG BEGIN_STMT
  retValue = 2;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 8>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = HwPllName[i];
  _2 = (int) _1;
  _3 = clockFeatures[_2][1];
  _4 = (int) _3;
  _5 = pllCallbackIndex[_4];
  callbackIndex = (uint32) _5;
  # DEBUG BEGIN_STMT
  _6 = pllCallbacks[callbackIndex].Complete;
  _7 = HwPllName[i];
  pllStatus = _6 (_7);
  # DEBUG BEGIN_STMT
  if (pllStatus == 1)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  retValue = 1;
  # DEBUG BEGIN_STMT
  goto <bb 9>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  if (pllStatus == 2)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  retValue = 0;

  <bb 7> :
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 8> :
  # DEBUG BEGIN_STMT
  if (i == 0)
    goto <bb 3>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  D.5240 = retValue;
  return D.5240;

}


Clock_Ip_InitClock (const struct Clock_Ip_ClockConfigType * config)
{
  uint32 i;
  uint32 callbackIndex;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx = 0;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  clockConfig.1_1 = clockConfig;
  if (clockConfig.1_1 != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _2 = config->cmus[i].name;
  _3 = (int) _2;
  _4 = clockFeatures[_3][1];
  _5 = (int) _4;
  _6 = cmuCallbackIndex[_5];
  callbackIndex = (uint32) _6;
  # DEBUG BEGIN_STMT
  _7 = cmuCallbacks[callbackIndex].Reset;
  _8 = &config->cmus[i];
  _7 (_8);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 5> :
  # DEBUG BEGIN_STMT
  _9 = config->cmusCount;
  _10 = (long unsigned int) _9;
  if (i < _10)
    goto <bb 4>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  clockConfig = config;
  # DEBUG BEGIN_STMT
  SpecificPlatformInitClock (config);
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 8>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  _11 = config->selectors[i].name;
  _12 = (int) _11;
  _13 = clockFeatures[_12][1];
  _14 = (int) _13;
  _15 = selectorCallbackIndex[_14];
  callbackIndex = (uint32) _15;
  # DEBUG BEGIN_STMT
  _16 = selectorCallbacks[callbackIndex].Reset;
  _17 = &config->selectors[i];
  _16 (_17);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 8> :
  # DEBUG BEGIN_STMT
  _18 = config->selectorsCount;
  _19 = (long unsigned int) _18;
  if (i < _19)
    goto <bb 7>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 11>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  _20 = config->fracDivs[i].name;
  _21 = (int) _20;
  _22 = clockFeatures[_21][1];
  _23 = (int) _22;
  _24 = fractional_dividerCallbackIndex[_23];
  callbackIndex = (uint32) _24;
  # DEBUG BEGIN_STMT
  _25 = fracDivCallbacks[callbackIndex].Reset;
  _26 = &config->fracDivs[i];
  _25 (_26);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 11> :
  # DEBUG BEGIN_STMT
  _27 = config->fracDivsCount;
  _28 = (long unsigned int) _27;
  if (i < _28)
    goto <bb 10>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 14>; [INV]

  <bb 13> :
  # DEBUG BEGIN_STMT
  _29 = config->plls[i].name;
  _30 = (int) _29;
  _31 = clockFeatures[_30][1];
  _32 = (int) _31;
  _33 = pllCallbackIndex[_32];
  callbackIndex = (uint32) _33;
  # DEBUG BEGIN_STMT
  _34 = pllCallbacks[callbackIndex].Reset;
  _35 = &config->plls[i];
  _34 (_35);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 14> :
  # DEBUG BEGIN_STMT
  _36 = config->pllsCount;
  _37 = (long unsigned int) _36;
  if (i < _37)
    goto <bb 13>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 17>; [INV]

  <bb 16> :
  # DEBUG BEGIN_STMT
  _38 = config->xoscs[i].name;
  _39 = (int) _38;
  _40 = clockFeatures[_39][1];
  _41 = (int) _40;
  _42 = xoscCallbackIndex[_41];
  callbackIndex = (uint32) _42;
  # DEBUG BEGIN_STMT
  _43 = extOscCallbacks[callbackIndex].Reset;
  _44 = &config->xoscs[i];
  _43 (_44);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 17> :
  # DEBUG BEGIN_STMT
  _45 = config->xoscsCount;
  _46 = (long unsigned int) _45;
  if (i < _46)
    goto <bb 16>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 18> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 20>; [INV]

  <bb 19> :
  # DEBUG BEGIN_STMT
  _47 = config->ircoscs[i].name;
  _48 = (int) _47;
  _49 = clockFeatures[_48][1];
  _50 = (int) _49;
  _51 = ircoscCallbackIndex[_50];
  callbackIndex = (uint32) _51;
  # DEBUG BEGIN_STMT
  _52 = intOscCallbacks[callbackIndex].Set;
  _53 = &config->ircoscs[i];
  _52 (_53);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 20> :
  # DEBUG BEGIN_STMT
  _54 = config->ircoscsCount;
  _55 = (long unsigned int) _54;
  if (i < _55)
    goto <bb 19>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 21> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 23>; [INV]

  <bb 22> :
  # DEBUG BEGIN_STMT
  _56 = config->xoscs[i].name;
  _57 = (int) _56;
  _58 = clockFeatures[_57][1];
  _59 = (int) _58;
  _60 = xoscCallbackIndex[_59];
  callbackIndex = (uint32) _60;
  # DEBUG BEGIN_STMT
  _61 = extOscCallbacks[callbackIndex].Set;
  _62 = &config->xoscs[i];
  _61 (_62);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 23> :
  # DEBUG BEGIN_STMT
  _63 = config->xoscsCount;
  _64 = (long unsigned int) _63;
  if (i < _64)
    goto <bb 22>; [INV]
  else
    goto <bb 24>; [INV]

  <bb 24> :
  # DEBUG BEGIN_STMT
  Clock_Ip_Sleep ();
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 26>; [INV]

  <bb 25> :
  # DEBUG BEGIN_STMT
  _65 = config->pcfs[i].name;
  _66 = (int) _65;
  _67 = clockFeatures[_66][1];
  _68 = (int) _67;
  _69 = pcfsCallbackIndex[_68];
  callbackIndex = (uint32) _69;
  # DEBUG BEGIN_STMT
  _70 = pcfsCallbacks[callbackIndex].Set;
  _71 = &config->pcfs[i];
  _70 (_71);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 26> :
  # DEBUG BEGIN_STMT
  _72 = config->pcfsCount;
  _73 = (long unsigned int) _72;
  if (i < _73)
    goto <bb 25>; [INV]
  else
    goto <bb 27>; [INV]

  <bb 27> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 29>; [INV]

  <bb 28> :
  # DEBUG BEGIN_STMT
  _74 = config->dividerTriggers[i].name;
  _75 = (int) _74;
  _76 = clockFeatures[_75][1];
  _77 = (int) _76;
  _78 = dividertriggerCallbackIndex[_77];
  callbackIndex = (uint32) _78;
  # DEBUG BEGIN_STMT
  _79 = dividerTriggerCallbacks[callbackIndex].Configure;
  _80 = &config->dividerTriggers[i];
  _79 (_80);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 29> :
  # DEBUG BEGIN_STMT
  _81 = config->dividerTriggersCount;
  _82 = (long unsigned int) _81;
  if (i < _82)
    goto <bb 28>; [INV]
  else
    goto <bb 30>; [INV]

  <bb 30> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 32>; [INV]

  <bb 31> :
  # DEBUG BEGIN_STMT
  _83 = config->dividers[i].name;
  _84 = (int) _83;
  _85 = clockFeatures[_84][1];
  _86 = (int) _85;
  _87 = dividerCallbackIndex[_86];
  callbackIndex = (uint32) _87;
  # DEBUG BEGIN_STMT
  _88 = dividerCallbacks[callbackIndex].Set;
  _89 = &config->dividers[i];
  _88 (_89);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 32> :
  # DEBUG BEGIN_STMT
  _90 = config->dividersCount;
  _91 = (long unsigned int) _90;
  if (i < _91)
    goto <bb 31>; [INV]
  else
    goto <bb 33>; [INV]

  <bb 33> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 35>; [INV]

  <bb 34> :
  # DEBUG BEGIN_STMT
  _92 = config->dividerTriggers[i].name;
  _93 = (int) _92;
  _94 = clockFeatures[_93][1];
  _95 = (int) _94;
  _96 = dividertriggerCallbackIndex[_95];
  callbackIndex = (uint32) _96;
  # DEBUG BEGIN_STMT
  _97 = dividerTriggerCallbacks[callbackIndex].TriggerUpdate;
  _98 = &config->dividerTriggers[i];
  _97 (_98);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 35> :
  # DEBUG BEGIN_STMT
  _99 = config->dividerTriggersCount;
  _100 = (long unsigned int) _99;
  if (i < _100)
    goto <bb 34>; [INV]
  else
    goto <bb 36>; [INV]

  <bb 36> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 38>; [INV]

  <bb 37> :
  # DEBUG BEGIN_STMT
  _101 = config->plls[i].name;
  _102 = (int) _101;
  _103 = clockFeatures[_102][1];
  _104 = (int) _103;
  _105 = pllCallbackIndex[_104];
  callbackIndex = (uint32) _105;
  # DEBUG BEGIN_STMT
  _106 = pllCallbacks[callbackIndex].Set;
  _107 = &config->plls[i];
  _106 (_107);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 38> :
  # DEBUG BEGIN_STMT
  _108 = config->pllsCount;
  _109 = (long unsigned int) _108;
  if (i < _109)
    goto <bb 37>; [INV]
  else
    goto <bb 39>; [INV]

  <bb 39> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 41>; [INV]

  <bb 40> :
  # DEBUG BEGIN_STMT
  _110 = config->fracDivs[i].name;
  _111 = (int) _110;
  _112 = clockFeatures[_111][1];
  _113 = (int) _112;
  _114 = fractional_dividerCallbackIndex[_113];
  callbackIndex = (uint32) _114;
  # DEBUG BEGIN_STMT
  _115 = fracDivCallbacks[callbackIndex].Set;
  _116 = &config->fracDivs[i];
  _115 (_116);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 41> :
  # DEBUG BEGIN_STMT
  _117 = config->fracDivsCount;
  _118 = (long unsigned int) _117;
  if (i < _118)
    goto <bb 40>; [INV]
  else
    goto <bb 42>; [INV]

  <bb 42> :
  # DEBUG BEGIN_STMT
  clockTreeIsConsumingPll = 0;
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 47>; [INV]

  <bb 43> :
  # DEBUG BEGIN_STMT
  _119 = config->selectors[i].value;
  _120 = (int) _119;
  _121 = clockName_sourceType[_120];
  if (_121 == 1)
    goto <bb 44>; [INV]
  else
    goto <bb 45>; [INV]

  <bb 44> :
  # DEBUG BEGIN_STMT
  _122 = config->selectors[i].name;
  _123 = (int) _122;
  _124 = clockFeatures[_123][1];
  _125 = (int) _124;
  _126 = selectorCallbackIndex[_125];
  callbackIndex = (uint32) _126;
  # DEBUG BEGIN_STMT
  _127 = selectorCallbacks[callbackIndex].Set;
  _128 = &config->selectors[i];
  _127 (_128);
  goto <bb 46>; [INV]

  <bb 45> :
  # DEBUG BEGIN_STMT
  clockTreeIsConsumingPll = 1;

  <bb 46> :
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 47> :
  # DEBUG BEGIN_STMT
  _129 = config->selectorsCount;
  _130 = (long unsigned int) _129;
  if (i < _130)
    goto <bb 43>; [INV]
  else
    goto <bb 48>; [INV]

  <bb 48> :
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 50>; [INV]

  <bb 49> :
  # DEBUG BEGIN_STMT
  _131 = config->gates[i].name;
  _132 = (int) _131;
  _133 = clockFeatures[_132][1];
  _134 = (int) _133;
  _135 = gateCallbackIndex[_134];
  callbackIndex = (uint32) _135;
  # DEBUG BEGIN_STMT
  _136 = gateCallbacks[callbackIndex].Set;
  _137 = &config->gates[i];
  _136 (_137);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 50> :
  # DEBUG BEGIN_STMT
  _138 = config->gatesCount;
  _139 = (long unsigned int) _138;
  if (i < _139)
    goto <bb 49>; [INV]
  else
    goto <bb 51>; [INV]

  <bb 51> :
  # DEBUG BEGIN_STMT
  clockTreeIsConsumingPll.2_140 = clockTreeIsConsumingPll;
  _141 = ~clockTreeIsConsumingPll.2_140;
  if (_141 != 0)
    goto <bb 52>; [INV]
  else
    goto <bb 55>; [INV]

  <bb 52> :
  # DEBUG BEGIN_STMT
  _142 = &config->specificPeriphalConfiguration;
  SpecificPeripheralClockInitialization (_142);
  # DEBUG BEGIN_STMT
  i = 0;
  goto <bb 54>; [INV]

  <bb 53> :
  # DEBUG BEGIN_STMT
  _143 = config->cmus[i].name;
  _144 = (int) _143;
  _145 = clockFeatures[_144][1];
  _146 = (int) _145;
  _147 = cmuCallbackIndex[_146];
  callbackIndex = (uint32) _147;
  # DEBUG BEGIN_STMT
  _148 = cmuCallbacks[callbackIndex].Set;
  _149 = &config->cmus[i];
  _148 (_149);
  # DEBUG BEGIN_STMT
  i = i + 1;

  <bb 54> :
  # DEBUG BEGIN_STMT
  _150 = config->cmusCount;
  _151 = (long unsigned int) _150;
  if (i < _151)
    goto <bb 53>; [INV]
  else
    goto <bb 55>; [INV]

  <bb 55> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  UpdateFrequencies (0);
  return;

}


Clock_Ip_Init (const struct Clock_Ip_ClockConfigType * config)
{
  Clock_Ip_PllStatusType pllStatus;
  Clock_Ip_StatusType clockStatus;
  Clock_Ip_StatusType D.5226;

  <bb 2> :
  # DEBUG BEGIN_STMT
  clockStatus = 1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Clock_Ip_InitClock (config);
  # DEBUG BEGIN_STMT
  clockTreeIsConsumingPll.0_1 = clockTreeIsConsumingPll;
  if (clockTreeIsConsumingPll.0_1 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  pllStatus = Clock_Ip_GetPllStatus ();
  # DEBUG BEGIN_STMT
  if (pllStatus == 0)
    goto <bb 4>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  Clock_Ip_DistributePll ();
  # DEBUG BEGIN_STMT
  clockStatus = 0;
  goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  clockStatus = 0;

  <bb 6> :
  # DEBUG BEGIN_STMT
  D.5226 = clockStatus;
  return D.5226;

}


