
Marking local functions: IntCtrl_Ip_ClearPendingPrivileged IntCtrl_Ip_GetPriorityPrivileged IntCtrl_Ip_SetPriorityPrivileged IntCtrl_Ip_DisableIrqPrivileged IntCtrl_Ip_EnableIrqPrivileged IntCtrl_Ip_InstallHandlerPrivileged


Marking externally visible functions: IntCtrl_Ip_ClearPending IntCtrl_Ip_GetPriority IntCtrl_Ip_SetPriority IntCtrl_Ip_DisableIrq IntCtrl_Ip_EnableIrq IntCtrl_Ip_InstallHandler IntCtrl_Ip_ConfigIrqRouting IntCtrl_Ip_Init


Marking externally visible variables:


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

IntCtrl_Ip_ClearPending/14 (IntCtrl_Ip_ClearPending) @06f6b460
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: 
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: IntCtrl_Ip_ClearPendingPrivileged/6 
IntCtrl_Ip_GetPriority/13 (IntCtrl_Ip_GetPriority) @06f6b1c0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: 
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: IntCtrl_Ip_GetPriorityPrivileged/5 
IntCtrl_Ip_SetPriority/12 (IntCtrl_Ip_SetPriority) @06f62ee0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: 
  Referring: 
  Availability: available
  Function flags: body
  Called by: IntCtrl_Ip_Init/7 
  Calls: IntCtrl_Ip_SetPriorityPrivileged/4 
IntCtrl_Ip_DisableIrq/11 (IntCtrl_Ip_DisableIrq) @06f628c0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: 
  Referring: 
  Availability: available
  Function flags: body
  Called by: IntCtrl_Ip_Init/7 
  Calls: IntCtrl_Ip_DisableIrqPrivileged/3 
IntCtrl_Ip_EnableIrq/10 (IntCtrl_Ip_EnableIrq) @06f62380
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: 
  Referring: 
  Availability: available
  Function flags: body
  Called by: IntCtrl_Ip_Init/7 
  Calls: IntCtrl_Ip_EnableIrqPrivileged/2 
IntCtrl_Ip_InstallHandler/9 (IntCtrl_Ip_InstallHandler) @06f62e00
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: 
  Referring: 
  Availability: available
  Function flags: body
  Called by: IntCtrl_Ip_ConfigIrqRouting/8 
  Calls: IntCtrl_Ip_InstallHandlerPrivileged/1 
IntCtrl_Ip_ConfigIrqRouting/8 (IntCtrl_Ip_ConfigIrqRouting) @06f62a80
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: 
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: IntCtrl_Ip_InstallHandler/9 
IntCtrl_Ip_Init/7 (IntCtrl_Ip_Init) @06f627e0
  Type: function definition analyzed
  Visibility: force_output externally_visible no_reorder public
  References: 
  Referring: 
  Availability: available
  Function flags: body
  Called by: 
  Calls: IntCtrl_Ip_DisableIrq/11 IntCtrl_Ip_EnableIrq/10 IntCtrl_Ip_SetPriority/12 
IntCtrl_Ip_ClearPendingPrivileged/6 (IntCtrl_Ip_ClearPendingPrivileged) @06f62540
  Type: function definition analyzed
  Visibility: no_reorder prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local
  Called by: IntCtrl_Ip_ClearPending/14 
  Calls: 
IntCtrl_Ip_GetPriorityPrivileged/5 (IntCtrl_Ip_GetPriorityPrivileged) @06f622a0
  Type: function definition analyzed
  Visibility: no_reorder prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local
  Called by: IntCtrl_Ip_GetPriority/13 
  Calls: 
IntCtrl_Ip_SetPriorityPrivileged/4 (IntCtrl_Ip_SetPriorityPrivileged) @06f62000
  Type: function definition analyzed
  Visibility: no_reorder prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local
  Called by: IntCtrl_Ip_SetPriority/12 
  Calls: 
IntCtrl_Ip_DisableIrqPrivileged/3 (IntCtrl_Ip_DisableIrqPrivileged) @06f5da80
  Type: function definition analyzed
  Visibility: no_reorder prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local
  Called by: IntCtrl_Ip_DisableIrq/11 
  Calls: 
IntCtrl_Ip_EnableIrqPrivileged/2 (IntCtrl_Ip_EnableIrqPrivileged) @06f5dee0
  Type: function definition analyzed
  Visibility: no_reorder prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local
  Called by: IntCtrl_Ip_EnableIrq/10 
  Calls: 
IntCtrl_Ip_InstallHandlerPrivileged/1 (IntCtrl_Ip_InstallHandlerPrivileged) @06f5dc40
  Type: function definition analyzed
  Visibility: no_reorder prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local
  Called by: IntCtrl_Ip_InstallHandler/9 
  Calls: 
IntCtrl_Ip_ClearPending (IRQn_Type eIrqNumber)
{
  <bb 2> :
  IntCtrl_Ip_ClearPendingPrivileged (eIrqNumber);
  return;

}


IntCtrl_Ip_GetPriority (IRQn_Type eIrqNumber)
{
  uint8 D.6346;

  <bb 2> :
  D.6346 = IntCtrl_Ip_GetPriorityPrivileged (eIrqNumber);

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

}


IntCtrl_Ip_SetPriority (IRQn_Type eIrqNumber, uint8 u8Priority)
{
  <bb 2> :
  IntCtrl_Ip_SetPriorityPrivileged (eIrqNumber, u8Priority);
  return;

}


IntCtrl_Ip_DisableIrq (IRQn_Type eIrqNumber)
{
  <bb 2> :
  IntCtrl_Ip_DisableIrqPrivileged (eIrqNumber);
  return;

}


IntCtrl_Ip_EnableIrq (IRQn_Type eIrqNumber)
{
  <bb 2> :
  IntCtrl_Ip_EnableIrqPrivileged (eIrqNumber);
  return;

}


IntCtrl_Ip_InstallHandler (IRQn_Type eIrqNumber, void (*IntCtrl_Ip_IrqHandlerType) (void) pfNewHandler, void (*IntCtrl_Ip_IrqHandlerType) (void) * const pfOldHandler)
{
  <bb 2> :
  IntCtrl_Ip_InstallHandlerPrivileged (eIrqNumber, pfNewHandler, pfOldHandler);
  return;

}


IntCtrl_Ip_ConfigIrqRouting (const struct IntCtrl_Ip_GlobalRouteConfigType * routeConfig)
{
  uint32 irqIdx;
  IntCtrl_Ip_StatusType D.6342;

  <bb 2> :
  irqIdx = 0;
  goto <bb 4>; [INV]

  <bb 3> :
  _1 = routeConfig->aIrqConfig;
  _2 = irqIdx * 12;
  _3 = _1 + _2;
  _4 = _3->eIrqNumber;
  _5 = routeConfig->aIrqConfig;
  _6 = irqIdx * 12;
  _7 = _5 + _6;
  _8 = _7->pfHandler;
  IntCtrl_Ip_InstallHandler (_4, _8, 0B);
  irqIdx = irqIdx + 1;

  <bb 4> :
  _9 = routeConfig->u32ConfigIrqCount;
  if (irqIdx < _9)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  D.6342 = 0;

  <bb 6> :
<L3>:
  return D.6342;

}


IntCtrl_Ip_Init (const struct IntCtrl_Ip_CtrlConfigType * pIntCtrlCtrlConfig)
{
  uint32 irqIdx;
  IntCtrl_Ip_StatusType D.6340;

  <bb 2> :
  irqIdx = 0;
  goto <bb 7>; [INV]

  <bb 3> :
  _1 = pIntCtrlCtrlConfig->aIrqConfig;
  _2 = irqIdx * 8;
  _3 = _1 + _2;
  _4 = _3->eIrqNumber;
  _5 = pIntCtrlCtrlConfig->aIrqConfig;
  _6 = irqIdx * 8;
  _7 = _5 + _6;
  _8 = _7->u8IrqPriority;
  IntCtrl_Ip_SetPriority (_4, _8);
  _9 = pIntCtrlCtrlConfig->aIrqConfig;
  _10 = irqIdx * 8;
  _11 = _9 + _10;
  _12 = _11->bIrqEnabled;
  if (_12 != 0)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  _13 = pIntCtrlCtrlConfig->aIrqConfig;
  _14 = irqIdx * 8;
  _15 = _13 + _14;
  _16 = _15->eIrqNumber;
  IntCtrl_Ip_EnableIrq (_16);
  goto <bb 6>; [INV]

  <bb 5> :
  _17 = pIntCtrlCtrlConfig->aIrqConfig;
  _18 = irqIdx * 8;
  _19 = _17 + _18;
  _20 = _19->eIrqNumber;
  IntCtrl_Ip_DisableIrq (_20);

  <bb 6> :
  irqIdx = irqIdx + 1;

  <bb 7> :
  _21 = pIntCtrlCtrlConfig->u32ConfigIrqCount;
  if (irqIdx < _21)
    goto <bb 3>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 8> :
  D.6340 = 0;

  <bb 9> :
<L6>:
  return D.6340;

}


IntCtrl_Ip_ClearPendingPrivileged (IRQn_Type eIrqNumber)
{
  <bb 2> :
  eIrqNumber.9_1 = (long unsigned int) eIrqNumber;
  _2 = eIrqNumber.9_1 & 31;
  _3 = 3758153984B;
  eIrqNumber.10_4 = (long unsigned int) eIrqNumber;
  _5 = eIrqNumber.10_4 >> 5;
  _6 = 1 << _2;
  _3->ICPR[_5] = _6;
  return;

}


IntCtrl_Ip_GetPriorityPrivileged (IRQn_Type eIrqNumber)
{
  uint8 shift;
  uint8 priority;
  uint8 D.6348;

  <bb 2> :
  shift = 4;
  _1 = 3758153984B;
  eIrqNumber.8_2 = (long unsigned int) eIrqNumber;
  _3 = _1->IP[eIrqNumber.8_2];
  _4 = (int) _3;
  _5 = (int) shift;
  _6 = _4 >> _5;
  priority = (uint8) _6;
  D.6348 = priority;

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

}


IntCtrl_Ip_SetPriorityPrivileged (IRQn_Type eIrqNumber, uint8 u8Priority)
{
  uint8 shift;

  <bb 2> :
  shift = 4;
  _1 = (long unsigned int) u8Priority;
  _2 = (int) shift;
  _3 = _1 << _2;
  _4 = 3758153984B;
  eIrqNumber.7_5 = (long unsigned int) eIrqNumber;
  _6 = (unsigned char) _3;
  _4->IP[eIrqNumber.7_5] = _6;
  return;

}


IntCtrl_Ip_DisableIrqPrivileged (IRQn_Type eIrqNumber)
{
  <bb 2> :
  eIrqNumber.5_1 = (long unsigned int) eIrqNumber;
  _2 = eIrqNumber.5_1 & 31;
  _3 = 3758153984B;
  eIrqNumber.6_4 = (long unsigned int) eIrqNumber;
  _5 = eIrqNumber.6_4 >> 5;
  _6 = 1 << _2;
  _3->ICER[_5] = _6;
  return;

}


IntCtrl_Ip_EnableIrqPrivileged (IRQn_Type eIrqNumber)
{
  <bb 2> :
  eIrqNumber.3_1 = (long unsigned int) eIrqNumber;
  _2 = eIrqNumber.3_1 & 31;
  _3 = 3758153984B;
  eIrqNumber.4_4 = (long unsigned int) eIrqNumber;
  _5 = eIrqNumber.4_4 >> 5;
  _6 = 1 << _2;
  _3->ISER[_5] = _6;
  return;

}


IntCtrl_Ip_InstallHandlerPrivileged (IRQn_Type eIrqNumber, void (*IntCtrl_Ip_IrqHandlerType) (void) pfNewHandler, void (*IntCtrl_Ip_IrqHandlerType) (void) * const pfOldHandler)
{
  uint32 * pVectorRam;

  <bb 2> :
  _1 = 3758153728B;
  _2 = _1->VTOR;
  pVectorRam = (uint32 *) _2;
  if (pfOldHandler != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  eIrqNumber.0_3 = (sizetype) eIrqNumber;
  _4 = eIrqNumber.0_3 + 16;
  _5 = _4 * 4;
  _6 = pVectorRam + _5;
  _7 = *_6;
  _8 = (void (*<T5e5>) (void)) _7;
  *pfOldHandler = _8;

  <bb 4> :
  eIrqNumber.1_9 = (sizetype) eIrqNumber;
  _10 = eIrqNumber.1_9 + 16;
  _11 = _10 * 4;
  _12 = pVectorRam + _11;
  pfNewHandler.2_13 = (long unsigned int) pfNewHandler;
  *_12 = pfNewHandler.2_13;
  __asm__ __volatile__("dsb");
  __asm__ __volatile__("isb");
  __asm__ __volatile__(" ISB");
  __asm__ __volatile__(" DSB");
  return;

}


