
Marking local functions: Pit_Ip_ProcessCommonInterrupt Pit_Ip_GetLowerLifetimerValue Pit_Ip_GetUpperLifetimerValue Pit_Ip_GetInterruptBit Pit_Ip_ClearInterruptFlag Pit_Ip_EnableInterrupt Pit_Ip_GetCounterValue Pit_Ip_SetCounterValue Pit_Ip_IsChannelRunning Pit_Ip_Reset Pit_Ip_SetChainMode Pit_Ip_SetDebugMode Pit_Ip_EnableTimer Pit_Ip_EnableModule


Marking externally visible functions: PIT_0_ISR Pit_Ip_GetLifetimeTimer Pit_Ip_SetLifetimeTimerCount Pit_Ip_DisableChannelInterrupt Pit_Ip_EnableChannelInterrupt Pit_Ip_GetCurrentTimer Pit_Ip_StopChannel Pit_Ip_StartChannel Pit_Ip_Deinit Pit_Ip_InitChannel Pit_Ip_Init Pit_Ip_GetInterruptFlags Pit_Ip_GetLoadValue


Marking externally visible variables: pitBase


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

SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_01/36 (SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_01) @06b96b60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Pit_Ip_SetChainMode/7 
  Calls: 
SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_01/35 (SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_01) @06b96a80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Pit_Ip_SetChainMode/7 
  Calls: 
SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_03/34 (SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_03) @06b8be00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Pit_Ip_ClearInterruptFlag/13 
  Calls: 
SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_03/33 (SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_03) @06b8bd20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Pit_Ip_ClearInterruptFlag/13 
  Calls: 
SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_02/32 (SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_02) @06b8bb60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Pit_Ip_EnableInterrupt/12 
  Calls: 
SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_02/31 (SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_02) @06b8ba80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Pit_Ip_EnableInterrupt/12 
  Calls: 
SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_00/30 (SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_00) @06b8b8c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Pit_Ip_EnableTimer/5 
  Calls: 
SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_00/29 (SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_00) @06b8b7e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Pit_Ip_EnableTimer/5 
  Calls: 
PIT_0_ISR/28 (PIT_0_ISR) @06b84b60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_ProcessCommonInterrupt/17 Pit_Ip_GetInterruptFlags/3 
Pit_Ip_GetLifetimeTimer/27 (Pit_Ip_GetLifetimeTimer) @06b84620
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_GetLowerLifetimerValue/16 Pit_Ip_GetUpperLifetimerValue/15 
Pit_Ip_SetLifetimeTimerCount/26 (Pit_Ip_SetLifetimeTimerCount) @06b840e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_EnableTimer/5 Pit_Ip_SetCounterValue/10 Pit_Ip_EnableTimer/5 Pit_Ip_SetChainMode/7 Pit_Ip_EnableInterrupt/12 Pit_Ip_SetCounterValue/10 
Pit_Ip_DisableChannelInterrupt/25 (Pit_Ip_DisableChannelInterrupt) @06b84d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_ClearInterruptFlag/13 Pit_Ip_EnableInterrupt/12 
Pit_Ip_EnableChannelInterrupt/24 (Pit_Ip_EnableChannelInterrupt) @06b84a80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_EnableInterrupt/12 Pit_Ip_ClearInterruptFlag/13 
Pit_Ip_GetCurrentTimer/23 (Pit_Ip_GetCurrentTimer) @06b847e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_GetCounterValue/11 
Pit_Ip_StopChannel/22 (Pit_Ip_StopChannel) @06b84540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_ClearInterruptFlag/13 Pit_Ip_EnableTimer/5 
Pit_Ip_StartChannel/21 (Pit_Ip_StartChannel) @06b842a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_EnableTimer/5 Pit_Ip_SetCounterValue/10 Pit_Ip_IsChannelRunning/9 
Pit_Ip_Deinit/20 (Pit_Ip_Deinit) @06b84000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_Reset/8 
Pit_Ip_InitChannel/19 (Pit_Ip_InitChannel) @06b7db60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: Pit_Ip_u32ChState/1 (write)Pit_Ip_u32ChState/1 (write)Pit_Ip_u32ChState/1 (write)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_ClearInterruptFlag/13 Pit_Ip_EnableInterrupt/12 Pit_Ip_EnableTimer/5 
Pit_Ip_Init/18 (Pit_Ip_Init) @06b7d620
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Pit_Ip_SetDebugMode/6 Pit_Ip_EnableModule/4 
Pit_Ip_ProcessCommonInterrupt/17 (Pit_Ip_ProcessCommonInterrupt) @06b7d0e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: Pit_Ip_u32ChState/1 (read)Pit_Ip_u32ChState/1 (read)Pit_Ip_u32ChState/1 (read)Pit_Ip_u32ChState/1 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: PIT_0_ISR/28 
  Calls: Pit_Ip_ClearInterruptFlag/13 Pit_Ip_GetInterruptBit/14 Pit_Ip_GetInterruptFlags/3 
   Indirect call
Pit_Ip_GetLowerLifetimerValue/16 (Pit_Ip_GetLowerLifetimerValue) @06b7dd20
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_GetLifetimeTimer/27 
  Calls: 
Pit_Ip_GetUpperLifetimerValue/15 (Pit_Ip_GetUpperLifetimerValue) @06b7da80
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_GetLifetimeTimer/27 
  Calls: 
Pit_Ip_GetInterruptBit/14 (Pit_Ip_GetInterruptBit) @06b7d7e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_ProcessCommonInterrupt/17 
  Calls: 
Pit_Ip_ClearInterruptFlag/13 (Pit_Ip_ClearInterruptFlag) @06b7d540
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_ProcessCommonInterrupt/17 Pit_Ip_DisableChannelInterrupt/25 Pit_Ip_EnableChannelInterrupt/24 Pit_Ip_StopChannel/22 Pit_Ip_InitChannel/19 
  Calls: SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_03/34 SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_03/33 
Pit_Ip_EnableInterrupt/12 (Pit_Ip_EnableInterrupt) @06b7d2a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_SetLifetimeTimerCount/26 Pit_Ip_DisableChannelInterrupt/25 Pit_Ip_EnableChannelInterrupt/24 Pit_Ip_InitChannel/19 
  Calls: SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_02/32 SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_02/31 
Pit_Ip_GetCounterValue/11 (Pit_Ip_GetCounterValue) @06b7d000
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_GetCurrentTimer/23 
  Calls: 
Pit_Ip_SetCounterValue/10 (Pit_Ip_SetCounterValue) @06ce3b60
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_SetLifetimeTimerCount/26 Pit_Ip_SetLifetimeTimerCount/26 Pit_Ip_StartChannel/21 
  Calls: 
Pit_Ip_IsChannelRunning/9 (Pit_Ip_IsChannelRunning) @06ce3d20
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_StartChannel/21 
  Calls: 
Pit_Ip_Reset/8 (Pit_Ip_Reset) @06ce3a80
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_Deinit/20 
  Calls: 
Pit_Ip_SetChainMode/7 (Pit_Ip_SetChainMode) @06cddc40
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_SetLifetimeTimerCount/26 
  Calls: SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_01/36 SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_01/35 
Pit_Ip_SetDebugMode/6 (Pit_Ip_SetDebugMode) @06cdd700
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_Init/18 
  Calls: 
Pit_Ip_EnableTimer/5 (Pit_Ip_EnableTimer) @06cdde00
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_SetLifetimeTimerCount/26 Pit_Ip_SetLifetimeTimerCount/26 Pit_Ip_StopChannel/22 Pit_Ip_StartChannel/21 Pit_Ip_InitChannel/19 
  Calls: SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_00/30 SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_00/29 
Pit_Ip_EnableModule/4 (Pit_Ip_EnableModule) @06cddb60
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pitBase/0 (read)pitBase/0 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Pit_Ip_Init/18 
  Calls: 
Pit_Ip_GetInterruptFlags/3 (Pit_Ip_GetInterruptFlags) @06cdd8c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pitBase/0 (read)pitBase/0 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: Pit_Ip_ProcessCommonInterrupt/17 PIT_0_ISR/28 
  Calls: 
Pit_Ip_GetLoadValue/2 (Pit_Ip_GetLoadValue) @06cdd620
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pitBase/0 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: 
Pit_Ip_u32ChState/1 (Pit_Ip_u32ChState) @06cdb048
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: Pit_Ip_InitChannel/19 (write)Pit_Ip_InitChannel/19 (write)Pit_Ip_InitChannel/19 (write)Pit_Ip_ProcessCommonInterrupt/17 (read)Pit_Ip_ProcessCommonInterrupt/17 (read)Pit_Ip_ProcessCommonInterrupt/17 (read)Pit_Ip_ProcessCommonInterrupt/17 (read)
  Availability: available
  Varpool flags: initialized
pitBase/0 (pitBase) @06b76ee8
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: Pit_Ip_GetLoadValue/2 (read)Pit_Ip_GetInterruptFlags/3 (read)Pit_Ip_GetInterruptFlags/3 (read)Pit_Ip_EnableModule/4 (read)Pit_Ip_EnableModule/4 (read)Pit_Ip_SetDebugMode/6 (read)Pit_Ip_SetDebugMode/6 (read)Pit_Ip_SetDebugMode/6 (read)Pit_Ip_SetDebugMode/6 (read)Pit_Ip_EnableTimer/5 (read)Pit_Ip_EnableTimer/5 (read)Pit_Ip_EnableTimer/5 (read)Pit_Ip_EnableTimer/5 (read)Pit_Ip_EnableInterrupt/12 (read)Pit_Ip_EnableInterrupt/12 (read)Pit_Ip_EnableInterrupt/12 (read)Pit_Ip_EnableInterrupt/12 (read)Pit_Ip_ClearInterruptFlag/13 (read)Pit_Ip_ClearInterruptFlag/13 (read)Pit_Ip_Reset/8 (read)Pit_Ip_Reset/8 (read)Pit_Ip_Reset/8 (read)Pit_Ip_Reset/8 (read)Pit_Ip_Reset/8 (read)Pit_Ip_Reset/8 (read)Pit_Ip_Reset/8 (read)Pit_Ip_IsChannelRunning/9 (read)Pit_Ip_SetCounterValue/10 (read)Pit_Ip_GetCounterValue/11 (read)Pit_Ip_SetChainMode/7 (read)Pit_Ip_SetChainMode/7 (read)Pit_Ip_SetChainMode/7 (read)Pit_Ip_SetChainMode/7 (read)Pit_Ip_GetUpperLifetimerValue/15 (read)Pit_Ip_GetLowerLifetimerValue/16 (read)Pit_Ip_GetInterruptBit/14 (read)
  Availability: available
  Varpool flags: initialized read-only const-value-known
PIT_0_ISR ()
{
  uint32 temp;
  uint8 channel;
  uint8 instance;

  <bb 2> :
  # DEBUG BEGIN_STMT
  instance = 0;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  temp = 0;
  # DEBUG BEGIN_STMT
  channel = 0;
  goto <bb 6>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  temp = Pit_Ip_GetInterruptFlags (instance, channel);
  # DEBUG BEGIN_STMT
  if (temp == 1)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  Pit_Ip_ProcessCommonInterrupt (instance, channel);

  <bb 5> :
  # DEBUG BEGIN_STMT
  channel.1_1 = channel;
  channel = channel.1_1 + 1;

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

  <bb 7> :
  return;

}


Pit_Ip_GetLifetimeTimer (uint8 instance)
{
  uint32 valueL;
  uint32 valueH;
  uint64 lifeTimeValue;
  uint64 D.4663;

  <bb 2> :
  # DEBUG BEGIN_STMT
  lifeTimeValue = 0;
  # DEBUG BEGIN_STMT
  valueH = 0;
  # DEBUG BEGIN_STMT
  valueL = 0;
  # DEBUG BEGIN_STMT
  valueH = Pit_Ip_GetUpperLifetimerValue (instance);
  # DEBUG BEGIN_STMT
  valueL = Pit_Ip_GetLowerLifetimerValue (instance);
  # DEBUG BEGIN_STMT
  _1 = (long long unsigned int) valueH;
  _2 = _1 << 32;
  _3 = (long long unsigned int) valueL;
  lifeTimeValue = _2 + _3;
  # DEBUG BEGIN_STMT
  D.4663 = lifeTimeValue;
  return D.4663;

}


Pit_Ip_SetLifetimeTimerCount (uint8 instance)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  Pit_Ip_SetCounterValue (instance, 1, 4294967295);
  # DEBUG BEGIN_STMT
  Pit_Ip_EnableInterrupt (instance, 1, 0);
  # DEBUG BEGIN_STMT
  Pit_Ip_SetChainMode (instance, 1, 1);
  # DEBUG BEGIN_STMT
  Pit_Ip_EnableTimer (instance, 1, 1);
  # DEBUG BEGIN_STMT
  Pit_Ip_SetCounterValue (instance, 0, 4294967295);
  # DEBUG BEGIN_STMT
  Pit_Ip_EnableTimer (instance, 0, 1);
  return;

}


Pit_Ip_DisableChannelInterrupt (uint8 instance, uint8 channel)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  Pit_Ip_EnableInterrupt (instance, channel, 0);
  # DEBUG BEGIN_STMT
  Pit_Ip_ClearInterruptFlag (instance, channel);
  return;

}


Pit_Ip_EnableChannelInterrupt (uint8 instance, uint8 channel)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  Pit_Ip_ClearInterruptFlag (instance, channel);
  # DEBUG BEGIN_STMT
  Pit_Ip_EnableInterrupt (instance, channel, 1);
  return;

}


Pit_Ip_GetCurrentTimer (uint8 instance, uint8 channel)
{
  uint64 counterValue;
  uint64 D.4655;

  <bb 2> :
  # DEBUG BEGIN_STMT
  counterValue = 0;
  # DEBUG BEGIN_STMT
  _1 = Pit_Ip_GetCounterValue (instance, channel);
  counterValue = (uint64) _1;
  # DEBUG BEGIN_STMT
  D.4655 = counterValue;
  return D.4655;

}


Pit_Ip_StopChannel (uint8 instance, uint8 channel)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  Pit_Ip_EnableTimer (instance, channel, 0);
  # DEBUG BEGIN_STMT
  Pit_Ip_ClearInterruptFlag (instance, channel);
  return;

}


Pit_Ip_StartChannel (uint8 instance, uint8 channel, uint32 countValue)
{
  boolean isRunning;

  <bb 2> :
  # DEBUG BEGIN_STMT
  isRunning = 0;
  # DEBUG BEGIN_STMT
  isRunning = Pit_Ip_IsChannelRunning (instance, channel);
  # DEBUG BEGIN_STMT
  _1 = ~isRunning;
  if (_1 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _2 = countValue + 4294967295;
  Pit_Ip_SetCounterValue (instance, channel, _2);
  # DEBUG BEGIN_STMT
  Pit_Ip_EnableTimer (instance, channel, 1);

  <bb 4> :
  return;

}


Pit_Ip_Deinit (uint8 instance)
{
  boolean rtiChannelExists;
  uint8 channelNum;

  <bb 2> :
  # DEBUG BEGIN_STMT
  channelNum = 0;
  # DEBUG BEGIN_STMT
  rtiChannelExists = 0;
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  switch (_1) <default: <L5> [INV], case 0: <L0> [INV], case 1: <L1> [INV], case 2: <L2> [INV]>

  <bb 3> :
<L0>:
  # DEBUG BEGIN_STMT
  channelNum = 5;
  # DEBUG BEGIN_STMT
  rtiChannelExists = 1;
  # DEBUG BEGIN_STMT
  goto <bb 6>; [INV]

  <bb 4> :
<L1>:
  # DEBUG BEGIN_STMT
  channelNum = 4;
  # DEBUG BEGIN_STMT
  goto <bb 6>; [INV]

  <bb 5> :
<L2>:
  # DEBUG BEGIN_STMT
  channelNum = 4;
  # DEBUG BEGIN_STMT

  <bb 6> :
<L5>:
  # DEBUG BEGIN_STMT
  Pit_Ip_Reset (instance, channelNum, rtiChannelExists);
  return;

}


Pit_Ip_InitChannel (uint8 instance, const struct Pit_Ip_ChannelConfigType * chnlConfig)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = chnlConfig->hwChannel;
  Pit_Ip_EnableTimer (instance, _1, 0);
  # DEBUG BEGIN_STMT
  _2 = chnlConfig->hwChannel;
  Pit_Ip_EnableInterrupt (instance, _2, 0);
  # DEBUG BEGIN_STMT
  _3 = chnlConfig->hwChannel;
  Pit_Ip_ClearInterruptFlag (instance, _3);
  # DEBUG BEGIN_STMT
  _4 = (int) instance;
  _5 = chnlConfig->hwChannel;
  _6 = (int) _5;
  Pit_Ip_u32ChState[_4][_6].chInit = 1;
  # DEBUG BEGIN_STMT
  _7 = (int) instance;
  _8 = chnlConfig->hwChannel;
  _9 = (int) _8;
  _10 = chnlConfig->callback;
  Pit_Ip_u32ChState[_7][_9].callback = _10;
  # DEBUG BEGIN_STMT
  _11 = (int) instance;
  _12 = chnlConfig->hwChannel;
  _13 = (int) _12;
  _14 = chnlConfig->callbackParam;
  Pit_Ip_u32ChState[_11][_13].callbackParam = _14;
  return;

}


Pit_Ip_Init (uint8 instance, const struct Pit_Ip_InstanceConfigType * config)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = config->enableStandardTimers;
  if (_1 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  Pit_Ip_EnableModule (instance, 0);

  <bb 4> :
  # DEBUG BEGIN_STMT
  _2 = config->stopRunInDebug;
  Pit_Ip_SetDebugMode (instance, _2);
  return;

}


Pit_Ip_ProcessCommonInterrupt (uint8 instance, uint8 channel)
{
  uint32 temp2;
  uint32 temp1;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  temp1 = Pit_Ip_GetInterruptFlags (instance, channel);
  # DEBUG BEGIN_STMT
  temp2 = Pit_Ip_GetInterruptBit (instance, channel);
  # DEBUG BEGIN_STMT
  Pit_Ip_ClearInterruptFlag (instance, channel);
  # DEBUG BEGIN_STMT
  if (temp1 == 1)
    goto <bb 3>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 3> :
  if (temp2 == 1)
    goto <bb 4>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = (int) channel;
  _3 = Pit_Ip_u32ChState[_1][_2].chInit;
  if (_3 != 0)
    goto <bb 5>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 5> :
  _4 = (int) instance;
  _5 = (int) channel;
  _6 = Pit_Ip_u32ChState[_4][_5].callback;
  if (_6 != 0B)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  _7 = (int) instance;
  _8 = (int) channel;
  _9 = Pit_Ip_u32ChState[_7][_8].callback;
  _10 = (int) instance;
  _11 = (int) channel;
  _12 = Pit_Ip_u32ChState[_10][_11].callbackParam;
  _9 (_12);

  <bb 7> :
  return;

}


Pit_Ip_GetLowerLifetimerValue (uint8 instance)
{
  uint32 lowerValue;
  uint32 D.4667;

  <bb 2> :
  # DEBUG BEGIN_STMT
  lowerValue = 0;
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  lowerValue = _2->LTMR64L;
  # DEBUG BEGIN_STMT
  D.4667 = lowerValue;
  return D.4667;

}


Pit_Ip_GetUpperLifetimerValue (uint8 instance)
{
  uint32 upperValue;
  uint32 D.4665;

  <bb 2> :
  # DEBUG BEGIN_STMT
  upperValue = 0;
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  upperValue = _2->LTMR64H;
  # DEBUG BEGIN_STMT
  D.4665 = upperValue;
  return D.4665;

}


Pit_Ip_GetInterruptBit (uint8 instance, uint8 channel)
{
  uint32 returnFlag;
  uint32 D.4679;

  <bb 2> :
  # DEBUG BEGIN_STMT
  returnFlag = 0;
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = (int) channel;
  _4 = _2->TIMER[_3].TCTRL;
  _5 = _4 >> 1;
  returnFlag = _5 & 1;
  # DEBUG BEGIN_STMT
  D.4679 = returnFlag;
  return D.4679;

}


Pit_Ip_ClearInterruptFlag (uint8 instance, uint8 channel)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_03 ();
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = (int) channel;
  _4 = _2->TIMER[_3].TFLG;
  _5 = (int) instance;
  _6 = pitBase[_5];
  _7 = (int) channel;
  _8 = _4 | 1;
  _6->TIMER[_7].TFLG = _8;
  # DEBUG BEGIN_STMT
  SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_03 ();
  return;

}


Pit_Ip_EnableInterrupt (uint8 instance, uint8 channel, boolean enable)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_02 ();
  # DEBUG BEGIN_STMT
  if (enable != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = (int) channel;
  _4 = _2->TIMER[_3].TCTRL;
  _5 = (int) instance;
  _6 = pitBase[_5];
  _7 = (int) channel;
  _8 = _4 | 2;
  _6->TIMER[_7].TCTRL = _8;
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _9 = (int) instance;
  _10 = pitBase[_9];
  _11 = (int) channel;
  _12 = _10->TIMER[_11].TCTRL;
  _13 = (int) instance;
  _14 = pitBase[_13];
  _15 = (int) channel;
  _16 = _12 & 4294967293;
  _14->TIMER[_15].TCTRL = _16;

  <bb 5> :
  # DEBUG BEGIN_STMT
  SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_02 ();
  return;

}


Pit_Ip_GetCounterValue (uint8 instance, uint8 channel)
{
  uint32 counterValue;
  uint32 D.4657;

  <bb 2> :
  # DEBUG BEGIN_STMT
  counterValue = 0;
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = (int) channel;
  counterValue = _2->TIMER[_3].CVAL;
  # DEBUG BEGIN_STMT
  D.4657 = counterValue;
  return D.4657;

}


Pit_Ip_SetCounterValue (uint8 instance, uint8 channel, uint32 value)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = (int) channel;
  _2->TIMER[_3].LDVAL = value;
  return;

}


Pit_Ip_IsChannelRunning (uint8 instance, uint8 channel)
{
  boolean isRunning;
  boolean D.4653;

  <bb 2> :
  # DEBUG BEGIN_STMT
  isRunning = 0;
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = (int) channel;
  _4 = _2->TIMER[_3].TCTRL;
  _5 = _4 & 1;
  isRunning = _5 == 1;
  # DEBUG BEGIN_STMT
  D.4653 = isRunning;
  return D.4653;

}


Pit_Ip_Reset (uint8 instance, uint8 channelNum, boolean available)
{
  uint8 i;
  uint32 channelIndex;
  uint32 mask;

  <bb 2> :
  # DEBUG BEGIN_STMT
  mask = 0;
  # DEBUG BEGIN_STMT
  channelIndex = (uint32) channelNum;
  # DEBUG BEGIN_STMT
  if (available != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  channelIndex = channelIndex + 4294967295;
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _2->RTI_TCTRL = 0;
  # DEBUG BEGIN_STMT
  _3 = (int) instance;
  _4 = pitBase[_3];
  _4->RTI_LDVAL = 0;
  # DEBUG BEGIN_STMT
  _5 = (int) instance;
  _6 = pitBase[_5];
  _6->RTI_TFLG = 1;
  # DEBUG BEGIN_STMT
  mask = 6;
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  mask = 2;

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

  <bb 6> :
  # DEBUG BEGIN_STMT
  _7 = (int) instance;
  _8 = pitBase[_7];
  _9 = (int) i;
  _8->TIMER[_9].TCTRL = 0;
  # DEBUG BEGIN_STMT
  _10 = (int) instance;
  _11 = pitBase[_10];
  _12 = (int) i;
  _11->TIMER[_12].LDVAL = 0;
  # DEBUG BEGIN_STMT
  _13 = (int) instance;
  _14 = pitBase[_13];
  _15 = (int) i;
  _14->TIMER[_15].TFLG = 1;
  # DEBUG BEGIN_STMT
  i.0_16 = i;
  i = i.0_16 + 1;

  <bb 7> :
  # DEBUG BEGIN_STMT
  _17 = (long unsigned int) i;
  if (channelIndex > _17)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  _18 = (int) instance;
  _19 = pitBase[_18];
  _19->MCR = mask;
  return;

}


Pit_Ip_SetChainMode (uint8 instance, uint8 channel, boolean enable)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_01 ();
  # DEBUG BEGIN_STMT
  if (enable != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

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

  <bb 4> :
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = (int) channel;
  _4 = _2->TIMER[_3].TCTRL;
  _5 = (int) instance;
  _6 = pitBase[_5];
  _7 = (int) channel;
  _8 = _4 | 4;
  _6->TIMER[_7].TCTRL = _8;
  goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  _9 = (int) instance;
  _10 = pitBase[_9];
  _11 = (int) channel;
  _12 = _10->TIMER[_11].TCTRL;
  _13 = (int) instance;
  _14 = pitBase[_13];
  _15 = (int) channel;
  _16 = _12 & 4294967291;
  _14->TIMER[_15].TCTRL = _16;

  <bb 6> :
  # DEBUG BEGIN_STMT
  SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_01 ();
  return;

}


Pit_Ip_SetDebugMode (uint8 instance, boolean stopRun)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  if (stopRun != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = _2->MCR;
  _4 = (int) instance;
  _5 = pitBase[_4];
  _6 = _3 | 1;
  _5->MCR = _6;
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _7 = (int) instance;
  _8 = pitBase[_7];
  _9 = _8->MCR;
  _10 = (int) instance;
  _11 = pitBase[_10];
  _12 = _9 & 4294967294;
  _11->MCR = _12;

  <bb 5> :
  return;

}


Pit_Ip_EnableTimer (uint8 instance, uint8 channel, boolean enable)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_00 ();
  # DEBUG BEGIN_STMT
  if (enable != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = (int) channel;
  _4 = _2->TIMER[_3].TCTRL;
  _5 = (int) instance;
  _6 = pitBase[_5];
  _7 = (int) channel;
  _8 = _4 | 1;
  _6->TIMER[_7].TCTRL = _8;
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _9 = (int) instance;
  _10 = pitBase[_9];
  _11 = (int) channel;
  _12 = _10->TIMER[_11].TCTRL;
  _13 = (int) instance;
  _14 = pitBase[_13];
  _15 = (int) channel;
  _16 = _12 & 4294967294;
  _14->TIMER[_15].TCTRL = _16;

  <bb 5> :
  # DEBUG BEGIN_STMT
  SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_00 ();
  return;

}


Pit_Ip_EnableModule (uint8 instance, uint8 timerType)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  if (timerType == 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = _2->MCR;
  _4 = (int) instance;
  _5 = pitBase[_4];
  _6 = _3 & 4294967293;
  _5->MCR = _6;

  <bb 4> :
  return;

}


Pit_Ip_GetInterruptFlags (uint8 instance, uint8 channel)
{
  uint32 returnFlag;
  uint32 D.4632;

  <bb 2> :
  # DEBUG BEGIN_STMT
  returnFlag = 0;
  # DEBUG BEGIN_STMT
  if (channel == 4)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = _2->RTI_TFLG;
  returnFlag = _3 & 1;
  goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _4 = (int) instance;
  _5 = pitBase[_4];
  _6 = (int) channel;
  _7 = _5->TIMER[_6].TFLG;
  returnFlag = _7 & 1;

  <bb 5> :
  # DEBUG BEGIN_STMT
  D.4632 = returnFlag;
  return D.4632;

}


Pit_Ip_GetLoadValue (uint8 instance, uint8 channel)
{
  uint32 periodValue;
  uint32 D.4627;

  <bb 2> :
  # DEBUG BEGIN_STMT
  periodValue = 0;
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = pitBase[_1];
  _3 = (int) channel;
  periodValue = _2->TIMER[_3].LDVAL;
  # DEBUG BEGIN_STMT
  D.4627 = periodValue;
  return D.4627;

}


