
Marking local functions:


Marking externally visible functions: ClockTimeoutExpired ClockStartTimeout ReportClockErrors 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:


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

functionWasCalled.6204/53 (functionWasCalled) @06cf15e8
  Type: variable definition analyzed
  Visibility: force_output no_reorder prevailing_def_ironly
  References: 
  Referring: CallEmptyCallbacks/20 (read)CallEmptyCallbacks/20 (write)
  Availability: available
  Varpool flags: initialized
OsIf_GetElapsed/52 (OsIf_GetElapsed) @06ce98c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: ClockTimeoutExpired/18 
  Calls: 
OsIf_MicrosToTicks/51 (OsIf_MicrosToTicks) @06ce9700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: ClockStartTimeout/17 
  Calls: 
OsIf_GetCounter/50 (OsIf_GetCounter) @06ce9620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: ClockStartTimeout/17 
  Calls: 
ClockPowerModeChangeNotification/49 (ClockPowerModeChangeNotification) @06ce9000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: Clock_Ip_PowerModeChangeNotification/11 
  Calls: 
ClockInitializeObjects/48 (ClockInitializeObjects) @0775fc40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: UpdateDriverContext/19 Clock_Ip_PowerModeChangeNotification/11 
  Calls: 
HwPllName/47 (HwPllName) @06ce1510
  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
DisableSafeClock/46 (DisableSafeClock) @0775fe00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: Clock_Ip_DistributePll/7 Clock_Ip_InitClock/5 
  Calls: 
SpecificPeripheralClockInitialization/45 (SpecificPeripheralClockInitialization) @0775fd20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: Clock_Ip_DistributePll/7 Clock_Ip_InitClock/5 
  Calls: 
gateCallbacks/44 (gateCallbacks) @06ce1000
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DisableModuleClock/13 (read)Clock_Ip_EnableModuleClock/14 (read)CallEmptyCallbacks/20 (read)CallEmptyCallbacks/20 (read)
  Availability: not_available
  Varpool flags: read-only
gateCallbackIndex/43 (gateCallbackIndex) @07780f78
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DisableModuleClock/13 (read)Clock_Ip_EnableModuleClock/14 (read)
  Availability: not_available
  Varpool flags: read-only
selectorCallbacks/42 (selectorCallbacks) @07780ea0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_DistributePll/7 (read)CallEmptyCallbacks/20 (read)ResetClockConfiguration/21 (read)
  Availability: not_available
  Varpool flags: read-only
selectorCallbackIndex/41 (selectorCallbackIndex) @07780e58
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_DistributePll/7 (read)ResetClockConfiguration/21 (read)
  Availability: not_available
  Varpool flags: read-only
sourceType_clockName/40 (sourceType_clockName) @07780e10
  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
fracDivCallbacks/39 (fracDivCallbacks) @07780d38
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)CallEmptyCallbacks/20 (read)CallEmptyCallbacks/20 (read)ResetClockConfiguration/21 (read)
  Availability: not_available
  Varpool flags: read-only
fractional_dividerCallbackIndex/38 (fractional_dividerCallbackIndex) @07780cf0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)ResetClockConfiguration/21 (read)
  Availability: not_available
  Varpool flags: read-only
pllCallbacks/37 (pllCallbacks) @07780a68
  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)CallEmptyCallbacks/20 (read)CallEmptyCallbacks/20 (read)ResetClockConfiguration/21 (read)
  Availability: not_available
  Varpool flags: read-only
pllCallbackIndex/36 (pllCallbackIndex) @07780a20
  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)ResetClockConfiguration/21 (read)
  Availability: not_available
  Varpool flags: read-only
dividerCallbacks/35 (dividerCallbacks) @077808b8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)CallEmptyCallbacks/20 (read)
  Availability: not_available
  Varpool flags: read-only
dividerCallbackIndex/34 (dividerCallbackIndex) @07780870
  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/33 (dividerTriggerCallbacks) @07780798
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)CallEmptyCallbacks/20 (read)
  Availability: not_available
  Varpool flags: read-only
dividertriggerCallbackIndex/32 (dividertriggerCallbackIndex) @07780750
  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/31 (pcfsCallbacks) @07780678
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)CallEmptyCallbacks/20 (read)
  Availability: not_available
  Varpool flags: read-only
pcfsCallbackIndex/30 (pcfsCallbackIndex) @07780630
  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/29 (extOscCallbacks) @07780510
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)CallEmptyCallbacks/20 (read)ResetClockConfiguration/21 (read)
  Availability: not_available
  Varpool flags: read-only
xoscCallbackIndex/28 (xoscCallbackIndex) @077804c8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)Clock_Ip_InitClock/5 (read)ResetClockConfiguration/21 (read)
  Availability: not_available
  Varpool flags: read-only
intOscCallbacks/27 (intOscCallbacks) @077803f0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Clock_Ip_InitClock/5 (read)CallEmptyCallbacks/20 (read)
  Availability: not_available
  Varpool flags: read-only
ircoscCallbackIndex/26 (ircoscCallbackIndex) @077803a8
  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
SpecificPlatformInitClock/25 (SpecificPlatformInitClock) @0775fb60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: Clock_Ip_InitClock/5 
  Calls: 
cmuCallbacks/24 (cmuCallbacks) @07780240
  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_DistributePll/7 (read)Clock_Ip_DisableClockMonitor/8 (read)Clock_Ip_GetClockMonitorStatus/9 (read)Clock_Ip_ClearClockMonitorStatus/10 (read)CallEmptyCallbacks/20 (read)CallEmptyCallbacks/20 (read)CallEmptyCallbacks/20 (read)CallEmptyCallbacks/20 (read)
  Availability: not_available
  Varpool flags: read-only
cmuCallbackIndex/23 (cmuCallbackIndex) @077801f8
  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_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) @077801b0
  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_GetPllStatus/6 (read)Clock_Ip_DistributePll/7 (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)ResetClockConfiguration/21 (read)ResetClockConfiguration/21 (read)ResetClockConfiguration/21 (read)ResetClockConfiguration/21 (read)
  Availability: not_available
  Varpool flags: read-only
ResetClockConfiguration/21 (ResetClockConfiguration) @0775f460
  Type: function definition analyzed
  Visibility: force_output no_reorder prevailing_def_ironly
  References: clockFeatures/22 (read)selectorCallbackIndex/41 (read)selectorCallbacks/42 (read)clockFeatures/22 (read)fractional_dividerCallbackIndex/38 (read)fracDivCallbacks/39 (read)clockFeatures/22 (read)pllCallbackIndex/36 (read)pllCallbacks/37 (read)clockFeatures/22 (read)xoscCallbackIndex/28 (read)extOscCallbacks/29 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: Clock_Ip_InitClock/5 
  Calls: 
   Indirect call
   Indirect call
   Indirect call
   Indirect call
CallEmptyCallbacks/20 (CallEmptyCallbacks) @0775f1c0
  Type: function definition analyzed
  Visibility: force_output no_reorder prevailing_def_ironly
  References: functionWasCalled.6204/53 (read)functionWasCalled.6204/53 (write)cmuCallbacks/24 (read)cmuCallbacks/24 (read)cmuCallbacks/24 (read)cmuCallbacks/24 (read)dividerCallbacks/35 (read)dividerTriggerCallbacks/33 (read)extOscCallbacks/29 (read)fracDivCallbacks/39 (read)fracDivCallbacks/39 (read)gateCallbacks/44 (read)gateCallbacks/44 (read)intOscCallbacks/27 (read)pllCallbacks/37 (read)pllCallbacks/37 (read)selectorCallbacks/42 (read)pcfsCallbacks/31 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: UpdateDriverContext/19 
  Calls: 
   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
UpdateDriverContext/19 (UpdateDriverContext) @0775ad20
  Type: function definition analyzed
  Visibility: force_output no_reorder prevailing_def_ironly
  References: clockObjectsAreInitialized/1 (read)clockObjectsAreInitialized/1 (write)
  Referring: 
  Availability: available
  Function flags: body
  Called by: Clock_Ip_InitClock/5 
  Calls: CallEmptyCallbacks/20 ClockInitializeObjects/48 
ClockTimeoutExpired/18 (ClockTimeoutExpired) @0775a7e0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: 
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: OsIf_GetElapsed/52 
ClockStartTimeout/17 (ClockStartTimeout) @0775a2a0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: 
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: OsIf_MicrosToTicks/51 OsIf_GetCounter/50 
ReportClockErrors/16 (ReportClockErrors) @0775aee0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockNotificationsCallback/2 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: 
   Indirect call
ClockNotificatonsEmptyCallback/15 (ClockNotificatonsEmptyCallback) @0775ac40
  Type: function definition analyzed
  Visibility: force_output no_reorder prevailing_def_ironly
  Address is taken.
  References: 
  Referring: clockNotificationsCallback/2 (addr)
  Availability: available
  Function flags: body
  Called by: 
  Calls: 
Clock_Ip_EnableModuleClock/14 (Clock_Ip_EnableModuleClock) @0775a9a0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockFeatures/22 (read)gateCallbackIndex/43 (read)gateCallbacks/44 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_DisableModuleClock/13 (Clock_Ip_DisableModuleClock) @0775a700
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockFeatures/22 (read)gateCallbackIndex/43 (read)gateCallbacks/44 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_InstallNotificationsCallback/12 (Clock_Ip_InstallNotificationsCallback) @0775a460
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockNotificationsCallback/2 (write)
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: 
Clock_Ip_PowerModeChangeNotification/11 (Clock_Ip_PowerModeChangeNotification) @0775a1c0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockObjectsAreInitialized/1 (read)clockObjectsAreInitialized/1 (write)
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: ClockPowerModeChangeNotification/49 ClockInitializeObjects/48 
Clock_Ip_ClearClockMonitorStatus/10 (Clock_Ip_ClearClockMonitorStatus) @06be9e00
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_GetClockMonitorStatus/9 (Clock_Ip_GetClockMonitorStatus) @06be98c0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_DisableClockMonitor/8 (Clock_Ip_DisableClockMonitor) @06be9380
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: 
   Indirect call
Clock_Ip_DistributePll/7 (Clock_Ip_DistributePll) @06be9d20
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockConfig/3 (read)clockConfig/3 (read)sourceType_clockName/40 (read)clockConfig/3 (read)clockFeatures/22 (read)selectorCallbackIndex/41 (read)selectorCallbacks/42 (read)clockConfig/3 (read)clockConfig/3 (read)clockTreeIsConsumingPll/0 (read)clockConfig/3 (read)clockFeatures/22 (read)gateCallbackIndex/43 (read)gateCallbacks/44 (read)clockConfig/3 (read)clockConfig/3 (read)clockConfig/3 (read)clockConfig/3 (read)clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)clockConfig/3 (read)clockConfig/3 (read)clockConfig/3 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: Clock_Ip_Init/4 
  Calls: DisableSafeClock/46 SpecificPeripheralClockInitialization/45 
   Indirect call
   Indirect call
   Indirect call
Clock_Ip_GetPllStatus/6 (Clock_Ip_GetPllStatus) @06be9a80
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: HwPllName/47 (read)clockFeatures/22 (read)pllCallbackIndex/36 (read)pllCallbacks/37 (read)HwPllName/47 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: Clock_Ip_Init/4 
  Calls: 
   Indirect call
Clock_Ip_InitClock/5 (Clock_Ip_InitClock) @06be97e0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockConfig/3 (read)clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)clockConfig/3 (write)clockFeatures/22 (read)ircoscCallbackIndex/26 (read)intOscCallbacks/27 (read)clockFeatures/22 (read)xoscCallbackIndex/28 (read)extOscCallbacks/29 (read)clockFeatures/22 (read)pcfsCallbackIndex/30 (read)pcfsCallbacks/31 (read)clockFeatures/22 (read)dividertriggerCallbackIndex/32 (read)dividerTriggerCallbacks/33 (read)clockFeatures/22 (read)dividerCallbackIndex/34 (read)dividerCallbacks/35 (read)clockFeatures/22 (read)dividertriggerCallbackIndex/32 (read)dividerTriggerCallbacks/33 (read)clockFeatures/22 (read)pllCallbackIndex/36 (read)pllCallbacks/37 (read)clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)clockFeatures/22 (read)xoscCallbackIndex/28 (read)extOscCallbacks/29 (read)clockFeatures/22 (read)pllCallbackIndex/36 (read)pllCallbacks/37 (read)clockFeatures/22 (read)fractional_dividerCallbackIndex/38 (read)fracDivCallbacks/39 (read)clockTreeIsConsumingPll/0 (write)sourceType_clockName/40 (read)clockFeatures/22 (read)selectorCallbackIndex/41 (read)selectorCallbacks/42 (read)clockTreeIsConsumingPll/0 (write)clockTreeIsConsumingPll/0 (read)clockFeatures/22 (read)gateCallbackIndex/43 (read)gateCallbacks/44 (read)clockFeatures/22 (read)cmuCallbackIndex/23 (read)cmuCallbacks/24 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: Clock_Ip_Init/4 
  Calls: DisableSafeClock/46 SpecificPeripheralClockInitialization/45 UpdateDriverContext/19 ResetClockConfiguration/21 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
Clock_Ip_Init/4 (Clock_Ip_Init) @06be9540
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: clockTreeIsConsumingPll/0 (read)
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: Clock_Ip_DistributePll/7 Clock_Ip_GetPllStatus/6 Clock_Ip_InitClock/5 
clockConfig/3 (clockConfig) @06be61b0
  Type: variable definition analyzed
  Visibility: force_output no_reorder prevailing_def_ironly
  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)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)Clock_Ip_DistributePll/7 (read)
  Availability: available
  Varpool flags:
clockNotificationsCallback/2 (clockNotificationsCallback) @06be6168
  Type: variable definition analyzed
  Visibility: force_output no_reorder prevailing_def_ironly
  References: ClockNotificatonsEmptyCallback/15 (addr)
  Referring: Clock_Ip_InstallNotificationsCallback/12 (write)ReportClockErrors/16 (read)
  Availability: available
  Varpool flags: initialized
clockObjectsAreInitialized/1 (clockObjectsAreInitialized) @06be60d8
  Type: variable definition analyzed
  Visibility: force_output no_reorder prevailing_def_ironly
  References: 
  Referring: Clock_Ip_PowerModeChangeNotification/11 (read)Clock_Ip_PowerModeChangeNotification/11 (write)UpdateDriverContext/19 (read)UpdateDriverContext/19 (write)
  Availability: available
  Varpool flags:
clockTreeIsConsumingPll/0 (clockTreeIsConsumingPll) @06be6048
  Type: variable definition analyzed
  Visibility: force_output no_reorder 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:
ResetClockConfiguration (const struct Clock_Ip_ClockConfigType * config)
{
  uint32 i;
  uint32 callbackIndex;

  <bb 2> :
  _1 = config->selectorsCount;
  i = (uint32) _1;
  goto <bb 4>; [INV]

  <bb 3> :
  _2 = i + 4294967295;
  _3 = config->selectors[_2].name;
  _4 = clockFeatures[_3][1];
  _5 = (int) _4;
  _6 = selectorCallbackIndex[_5];
  callbackIndex = (uint32) _6;
  _7 = selectorCallbacks[callbackIndex].Reset;
  _8 = i + 4294967295;
  _9 = &config->selectors[_8];
  _7 (_9);
  i = i + 4294967295;

  <bb 4> :
  if (i != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  _10 = config->fracDivsCount;
  i = (uint32) _10;
  goto <bb 7>; [INV]

  <bb 6> :
  _11 = i + 4294967295;
  _12 = config->fracDivs[_11].name;
  _13 = clockFeatures[_12][1];
  _14 = (int) _13;
  _15 = fractional_dividerCallbackIndex[_14];
  callbackIndex = (uint32) _15;
  _16 = fracDivCallbacks[callbackIndex].Reset;
  _17 = i + 4294967295;
  _18 = &config->fracDivs[_17];
  _16 (_18);
  i = i + 4294967295;

  <bb 7> :
  if (i != 0)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 8> :
  _19 = config->pllsCount;
  i = (uint32) _19;
  goto <bb 10>; [INV]

  <bb 9> :
  _20 = i + 4294967295;
  _21 = config->plls[_20].name;
  _22 = clockFeatures[_21][1];
  _23 = (int) _22;
  _24 = pllCallbackIndex[_23];
  callbackIndex = (uint32) _24;
  _25 = pllCallbacks[callbackIndex].Reset;
  _26 = i + 4294967295;
  _27 = &config->plls[_26];
  _25 (_27);
  i = i + 4294967295;

  <bb 10> :
  if (i != 0)
    goto <bb 9>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 11> :
  _28 = config->xoscsCount;
  i = (uint32) _28;
  goto <bb 13>; [INV]

  <bb 12> :
  _29 = i + 4294967295;
  _30 = config->xoscs[_29].name;
  _31 = clockFeatures[_30][1];
  _32 = (int) _31;
  _33 = xoscCallbackIndex[_32];
  callbackIndex = (uint32) _33;
  _34 = extOscCallbacks[callbackIndex].Reset;
  _35 = i + 4294967295;
  _36 = &config->xoscs[_35];
  _34 (_36);
  i = i + 4294967295;

  <bb 13> :
  if (i != 0)
    goto <bb 12>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 14> :
  return;

}


CallEmptyCallbacks ()
{
  static boolean functionWasCalled = 0;

  <bb 2> :
  functionWasCalled.20_1 = functionWasCalled;
  _2 = ~functionWasCalled.20_1;
  if (_2 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  functionWasCalled = 1;
  _3 = cmuCallbacks[0].Set;
  _3 (0B);
  _4 = cmuCallbacks[0].Disable;
  _4 (87);
  _5 = cmuCallbacks[0].Clear;
  _5 (87);
  _6 = cmuCallbacks[0].GetStatus;
  _6 (87);
  _7 = dividerCallbacks[0].Set;
  _7 (0B);
  _8 = dividerTriggerCallbacks[0].Configure;
  _8 (0B);
  _9 = extOscCallbacks[0].Reset;
  _9 (0B);
  _10 = fracDivCallbacks[0].Set;
  _10 (0B);
  _11 = fracDivCallbacks[0].Complete;
  _11 (87);
  _12 = gateCallbacks[0].Set;
  _12 (0B);
  _13 = gateCallbacks[0].Update;
  _13 (87, 0);
  _14 = intOscCallbacks[0].Set;
  _14 (0B);
  _15 = pllCallbacks[0].Set;
  _15 (0B);
  _16 = pllCallbacks[0].Complete;
  _16 (87);
  _17 = selectorCallbacks[0].Set;
  _17 (0B);
  _18 = pcfsCallbacks[0].Set;
  _18 (0B);

  <bb 4> :
  return;

}


UpdateDriverContext (const struct Clock_Ip_ClockConfigType * config)
{
  <bb 2> :
  clockObjectsAreInitialized.19_1 = clockObjectsAreInitialized;
  _2 = ~clockObjectsAreInitialized.19_1;
  if (_2 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  ClockInitializeObjects ();
  clockObjectsAreInitialized = 1;

  <bb 4> :
  CallEmptyCallbacks ();
  return;

}


ClockTimeoutExpired (uint32 * startTimeInOut, uint32 * elapsedTimeInOut, uint32 TimeoutTicks)
{
  boolean D.6258;
  long unsigned int D.6257;

  <bb 2> :
  D.6257 = OsIf_GetElapsed (startTimeInOut, 0);
  _1 = *elapsedTimeInOut;
  _2 = D.6257 + _1;
  *elapsedTimeInOut = _2;
  _3 = *elapsedTimeInOut;
  D.6258 = TimeoutTicks <= _3;

  <bb 3> :
<L0>:
  return D.6258;

}


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

}


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

}


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

}


Clock_Ip_EnableModuleClock (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;

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

}


Clock_Ip_DisableModuleClock (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;

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

}


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

}


Clock_Ip_PowerModeChangeNotification (power_modes_t powerMode, power_notification_t notification)
{
  <bb 2> :
  clockObjectsAreInitialized.17_1 = clockObjectsAreInitialized;
  _2 = ~clockObjectsAreInitialized.17_1;
  if (_2 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  ClockInitializeObjects ();
  clockObjectsAreInitialized = 1;

  <bb 4> :
  ClockPowerModeChangeNotification (powerMode, notification);
  return;

}


Clock_Ip_ClearClockMonitorStatus (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;

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

}


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

  <bb 2> :
  _1 = clockFeatures[clockName][1];
  _2 = (int) _1;
  _3 = cmuCallbackIndex[_2];
  callbackIndex = (uint32) _3;
  _4 = cmuCallbacks[callbackIndex].GetStatus;
  D.6253 = _4 (clockName);

  <bb 3> :
<L0>:
  return D.6253;

}


Clock_Ip_DisableClockMonitor (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;

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

}


Clock_Ip_DistributePll ()
{
  uint32 callbackIndex;
  uint32 i;

  <bb 2> :
  clockConfig.3_1 = clockConfig;
  if (clockConfig.3_1 != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 16>; [INV]

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

  <bb 4> :
  clockConfig.4_2 = clockConfig;
  _3 = clockConfig.4_2->selectors[i].value;
  _4 = sourceType_clockName[_3];
  if (_4 == 3)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  clockConfig.5_5 = clockConfig;
  _6 = clockConfig.5_5->selectors[i].name;
  _7 = clockFeatures[_6][1];
  _8 = (int) _7;
  _9 = selectorCallbackIndex[_8];
  callbackIndex = (uint32) _9;
  _10 = selectorCallbacks[callbackIndex].Set;
  clockConfig.6_11 = clockConfig;
  _12 = &clockConfig.6_11->selectors[i];
  _10 (_12);

  <bb 6> :
  i = i + 1;

  <bb 7> :
  clockConfig.7_13 = clockConfig;
  _14 = clockConfig.7_13->selectorsCount;
  _15 = (long unsigned int) _14;
  if (i < _15)
    goto <bb 4>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 8> :
  clockTreeIsConsumingPll.8_16 = clockTreeIsConsumingPll;
  if (clockTreeIsConsumingPll.8_16 != 0)
    goto <bb 9>; [INV]
  else
    goto <bb 16>; [INV]

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

  <bb 10> :
  clockConfig.9_17 = clockConfig;
  _18 = clockConfig.9_17->gates[i].name;
  _19 = clockFeatures[_18][1];
  _20 = (int) _19;
  _21 = gateCallbackIndex[_20];
  callbackIndex = (uint32) _21;
  _22 = gateCallbacks[callbackIndex].Set;
  clockConfig.10_23 = clockConfig;
  _24 = &clockConfig.10_23->gates[i];
  _22 (_24);
  i = i + 1;

  <bb 11> :
  clockConfig.11_25 = clockConfig;
  _26 = clockConfig.11_25->gatesCount;
  _27 = (long unsigned int) _26;
  if (i < _27)
    goto <bb 10>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 12> :
  clockConfig.12_28 = clockConfig;
  _29 = &clockConfig.12_28->specificPeriphalConfiguration;
  SpecificPeripheralClockInitialization (_29);
  i = 0;
  goto <bb 14>; [INV]

  <bb 13> :
  clockConfig.13_30 = clockConfig;
  _31 = clockConfig.13_30->cmus[i].name;
  _32 = clockFeatures[_31][1];
  _33 = (int) _32;
  _34 = cmuCallbackIndex[_33];
  callbackIndex = (uint32) _34;
  _35 = cmuCallbacks[callbackIndex].Enable;
  clockConfig.14_36 = clockConfig;
  _37 = &clockConfig.14_36->cmus[i];
  _35 (_37);
  i = i + 1;

  <bb 14> :
  clockConfig.15_38 = clockConfig;
  _39 = clockConfig.15_38->cmusCount;
  _40 = (long unsigned int) _39;
  if (i < _40)
    goto <bb 13>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 15> :
  clockConfig.16_41 = clockConfig;
  DisableSafeClock (clockConfig.16_41);

  <bb 16> :
  return;

}


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

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

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

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

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

  <bb 6> :
  retValue = 0;

  <bb 7> :
  i = i + 1;

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

  <bb 9> :
  D.6245 = retValue;

  <bb 10> :
<L7>:
  return D.6245;

}


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

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

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

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

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

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

  <bb 7> :
  _10 = config->ircoscs[i].name;
  _11 = clockFeatures[_10][1];
  _12 = (int) _11;
  _13 = ircoscCallbackIndex[_12];
  callbackIndex = (uint32) _13;
  _14 = intOscCallbacks[callbackIndex].Set;
  _15 = &config->ircoscs[i];
  _14 (_15);
  i = i + 1;

  <bb 8> :
  _16 = config->ircoscsCount;
  _17 = (long unsigned int) _16;
  if (i < _17)
    goto <bb 7>; [INV]
  else
    goto <bb 9>; [INV]

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

  <bb 10> :
  _18 = config->xoscs[i].name;
  _19 = clockFeatures[_18][1];
  _20 = (int) _19;
  _21 = xoscCallbackIndex[_20];
  callbackIndex = (uint32) _21;
  _22 = extOscCallbacks[callbackIndex].Set;
  _23 = &config->xoscs[i];
  _22 (_23);
  i = i + 1;

  <bb 11> :
  _24 = config->xoscsCount;
  _25 = (long unsigned int) _24;
  if (i < _25)
    goto <bb 10>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 12> :
  UpdateDriverContext (config);
  i = 0;
  goto <bb 14>; [INV]

  <bb 13> :
  _26 = config->pcfs[i].name;
  _27 = clockFeatures[_26][1];
  _28 = (int) _27;
  _29 = pcfsCallbackIndex[_28];
  callbackIndex = (uint32) _29;
  _30 = pcfsCallbacks[callbackIndex].Set;
  _31 = &config->pcfs[i];
  _30 (_31);
  i = i + 1;

  <bb 14> :
  _32 = config->pcfsCount;
  _33 = (long unsigned int) _32;
  if (i < _33)
    goto <bb 13>; [INV]
  else
    goto <bb 15>; [INV]

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

  <bb 16> :
  _34 = config->dividerTriggers[i].name;
  _35 = clockFeatures[_34][1];
  _36 = (int) _35;
  _37 = dividertriggerCallbackIndex[_36];
  callbackIndex = (uint32) _37;
  _38 = dividerTriggerCallbacks[callbackIndex].Configure;
  _39 = &config->dividerTriggers[i];
  _38 (_39);
  i = i + 1;

  <bb 17> :
  _40 = config->dividerTriggersCount;
  _41 = (long unsigned int) _40;
  if (i < _41)
    goto <bb 16>; [INV]
  else
    goto <bb 18>; [INV]

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

  <bb 19> :
  _42 = config->dividers[i].name;
  _43 = clockFeatures[_42][1];
  _44 = (int) _43;
  _45 = dividerCallbackIndex[_44];
  callbackIndex = (uint32) _45;
  _46 = dividerCallbacks[callbackIndex].Set;
  _47 = &config->dividers[i];
  _46 (_47);
  i = i + 1;

  <bb 20> :
  _48 = config->dividersCount;
  _49 = (long unsigned int) _48;
  if (i < _49)
    goto <bb 19>; [INV]
  else
    goto <bb 21>; [INV]

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

  <bb 22> :
  _50 = config->dividerTriggers[i].name;
  _51 = clockFeatures[_50][1];
  _52 = (int) _51;
  _53 = dividertriggerCallbackIndex[_52];
  callbackIndex = (uint32) _53;
  _54 = dividerTriggerCallbacks[callbackIndex].TriggerUpdate;
  _55 = &config->dividerTriggers[i];
  _54 (_55);
  i = i + 1;

  <bb 23> :
  _56 = config->dividerTriggersCount;
  _57 = (long unsigned int) _56;
  if (i < _57)
    goto <bb 22>; [INV]
  else
    goto <bb 24>; [INV]

  <bb 24> :
  i = 0;
  goto <bb 26>; [INV]

  <bb 25> :
  _58 = config->plls[i].name;
  _59 = clockFeatures[_58][1];
  _60 = (int) _59;
  _61 = pllCallbackIndex[_60];
  callbackIndex = (uint32) _61;
  _62 = pllCallbacks[callbackIndex].Set;
  _63 = &config->plls[i];
  _62 (_63);
  i = i + 1;

  <bb 26> :
  _64 = config->pllsCount;
  _65 = (long unsigned int) _64;
  if (i < _65)
    goto <bb 25>; [INV]
  else
    goto <bb 27>; [INV]

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

  <bb 28> :
  _66 = config->cmus[i].name;
  _67 = clockFeatures[_66][1];
  _68 = (int) _67;
  _69 = cmuCallbackIndex[_68];
  callbackIndex = (uint32) _69;
  _70 = cmuCallbacks[callbackIndex].Set;
  _71 = &config->cmus[i];
  _70 (_71);
  i = i + 1;

  <bb 29> :
  _72 = config->cmusCount;
  _73 = (long unsigned int) _72;
  if (i < _73)
    goto <bb 28>; [INV]
  else
    goto <bb 30>; [INV]

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

  <bb 31> :
  _74 = config->xoscs[i].name;
  _75 = clockFeatures[_74][1];
  _76 = (int) _75;
  _77 = xoscCallbackIndex[_76];
  callbackIndex = (uint32) _77;
  _78 = extOscCallbacks[callbackIndex].Complete;
  _79 = &config->xoscs[i];
  _78 (_79);
  i = i + 1;

  <bb 32> :
  _80 = config->xoscsCount;
  _81 = (long unsigned int) _80;
  if (i < _81)
    goto <bb 31>; [INV]
  else
    goto <bb 33>; [INV]

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

  <bb 34> :
  _82 = config->plls[i].name;
  _83 = clockFeatures[_82][1];
  _84 = (int) _83;
  _85 = pllCallbackIndex[_84];
  callbackIndex = (uint32) _85;
  _86 = pllCallbacks[callbackIndex].Enable;
  _87 = &config->plls[i];
  _86 (_87);
  i = i + 1;

  <bb 35> :
  _88 = config->pllsCount;
  _89 = (long unsigned int) _88;
  if (i < _89)
    goto <bb 34>; [INV]
  else
    goto <bb 36>; [INV]

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

  <bb 37> :
  _90 = config->fracDivs[i].name;
  _91 = clockFeatures[_90][1];
  _92 = (int) _91;
  _93 = fractional_dividerCallbackIndex[_92];
  callbackIndex = (uint32) _93;
  _94 = fracDivCallbacks[callbackIndex].Set;
  _95 = &config->fracDivs[i];
  _94 (_95);
  i = i + 1;

  <bb 38> :
  _96 = config->fracDivsCount;
  _97 = (long unsigned int) _96;
  if (i < _97)
    goto <bb 37>; [INV]
  else
    goto <bb 39>; [INV]

  <bb 39> :
  clockTreeIsConsumingPll = 0;
  i = 0;
  goto <bb 44>; [INV]

  <bb 40> :
  _98 = config->selectors[i].value;
  _99 = sourceType_clockName[_98];
  if (_99 != 3)
    goto <bb 41>; [INV]
  else
    goto <bb 42>; [INV]

  <bb 41> :
  _100 = config->selectors[i].name;
  _101 = clockFeatures[_100][1];
  _102 = (int) _101;
  _103 = selectorCallbackIndex[_102];
  callbackIndex = (uint32) _103;
  _104 = selectorCallbacks[callbackIndex].Set;
  _105 = &config->selectors[i];
  _104 (_105);
  goto <bb 43>; [INV]

  <bb 42> :
  clockTreeIsConsumingPll = 1;

  <bb 43> :
  i = i + 1;

  <bb 44> :
  _106 = config->selectorsCount;
  _107 = (long unsigned int) _106;
  if (i < _107)
    goto <bb 40>; [INV]
  else
    goto <bb 45>; [INV]

  <bb 45> :
  clockTreeIsConsumingPll.2_108 = clockTreeIsConsumingPll;
  _109 = ~clockTreeIsConsumingPll.2_108;
  if (_109 != 0)
    goto <bb 46>; [INV]
  else
    goto <bb 53>; [INV]

  <bb 46> :
  i = 0;
  goto <bb 48>; [INV]

  <bb 47> :
  _110 = config->gates[i].name;
  _111 = clockFeatures[_110][1];
  _112 = (int) _111;
  _113 = gateCallbackIndex[_112];
  callbackIndex = (uint32) _113;
  _114 = gateCallbacks[callbackIndex].Set;
  _115 = &config->gates[i];
  _114 (_115);
  i = i + 1;

  <bb 48> :
  _116 = config->gatesCount;
  _117 = (long unsigned int) _116;
  if (i < _117)
    goto <bb 47>; [INV]
  else
    goto <bb 49>; [INV]

  <bb 49> :
  _118 = &config->specificPeriphalConfiguration;
  SpecificPeripheralClockInitialization (_118);
  i = 0;
  goto <bb 51>; [INV]

  <bb 50> :
  _119 = config->cmus[i].name;
  _120 = clockFeatures[_119][1];
  _121 = (int) _120;
  _122 = cmuCallbackIndex[_121];
  callbackIndex = (uint32) _122;
  _123 = cmuCallbacks[callbackIndex].Enable;
  _124 = &config->cmus[i];
  _123 (_124);
  i = i + 1;

  <bb 51> :
  _125 = config->cmusCount;
  _126 = (long unsigned int) _125;
  if (i < _126)
    goto <bb 50>; [INV]
  else
    goto <bb 52>; [INV]

  <bb 52> :
  DisableSafeClock (config);

  <bb 53> :
  return;

}


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

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

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

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

  <bb 5> :
  clockStatus = 0;

  <bb 6> :
  D.6231 = clockStatus;

  <bb 7> :
<L5>:
  return D.6231;

}


