Symbol table:

pfe_hw_feature_create.part.0/34 (pfe_hw_feature_create.part.0) @06ad20e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: pfe_hw_feature_create/23 (574129752 (estimated locally),0.53 per call) 
  Calls: memset/33 (1073741824 (estimated locally),1.00 per call) 
memset/33 (memset) @0d6a27e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_hw_feature_create.part.0/34 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
pfe_hw_feature_set_val/32 (pfe_hw_feature_set_val) @0d6a2c40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hw_feature_enabled/31 (pfe_hw_feature_enabled) @0d6a29a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hw_feature_get_val/30 (pfe_hw_feature_get_val) @0d6a2700
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hw_feature_get_def_val/29 (pfe_hw_feature_get_def_val) @0d6a2460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hw_feature_get_flags/28 (pfe_hw_feature_get_flags) @0d6a21c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hw_feature_get_desc/27 (pfe_hw_feature_get_desc) @0d5f8e00
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hw_feature_get_name/26 (pfe_hw_feature_get_name) @0d5f88c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hw_feature_init_all/25 (pfe_hw_feature_init_all) @0d5f8d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_hw_feature_create/23 (872415233 (estimated locally),0.81 per call) pfe_hw_feature_create/23 (1073741824 (estimated locally),1.00 per call) 
pfe_hw_feature_destroy/24 (pfe_hw_feature_destroy) @0d5f8a80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hw_feature_create/23 (pfe_hw_feature_create) @0d5f87e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: pfe_hw_feature_init_all/25 (872415233 (estimated locally),0.81 per call) pfe_hw_feature_init_all/25 (1073741824 (estimated locally),1.00 per call) 
  Calls: pfe_hw_feature_create.part.0/34 (574129752 (estimated locally),0.53 per call) 
pfe_hw_feature_create.part.0 (const char * name, const char * descr, pfe_ct_feature_flags_t flags, uint8_t def_val, struct pfe_hw_feature_t * feature)
{
  struct pfe_hw_feature_t * _2;

  <bb 4> [local count: 1073741824]:

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _2 = feature_1(D) + 11;
  memset (_2, 0, 1);
  # DEBUG BEGIN_STMT
  feature_1(D)->name = name_3(D);
  # DEBUG BEGIN_STMT
  feature_1(D)->description = descr_4(D);
  # DEBUG BEGIN_STMT
  feature_1(D)->flags = flags_5(D);
  # DEBUG BEGIN_STMT
  feature_1(D)->def_val = def_val_6(D);
  # DEBUG BEGIN_STMT
  feature_1(D)->val = def_val_6(D);

  <bb 3> [local count: 1073741824]:
  return;

}


pfe_hw_feature_set_val (struct pfe_hw_feature_t * feature, uint8_t val)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  feature_2(D)->val = val_3(D);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_hw_feature_enabled (const struct pfe_hw_feature_t * feature)
{
  bool_t is_enable;
  unsigned char _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG feature => feature_3(D)
  # DEBUG val => &val
  # DEBUG INLINE_ENTRY pfe_hw_feature_get_val
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _4 = feature_3(D)->val;
  # DEBUG val => _4
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG feature => NULL
  # DEBUG val => NULL
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (_4 != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  # DEBUG is_enable => 0

  <bb 4> [local count: 1073741824]:
  # is_enable_1 = PHI <0(3), 1(2)>
  # DEBUG is_enable => is_enable_1
  # DEBUG BEGIN_STMT
  # DEBUG D#1 => {CLOBBER}
  # DEBUG val => D#1
  return is_enable_1;

}


pfe_hw_feature_get_val (const struct pfe_hw_feature_t * feature, uint8_t * val)
{
  unsigned char _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_3(D)->val;
  *val_4(D) = _1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_hw_feature_get_def_val (const struct pfe_hw_feature_t * feature, uint8_t * def_val)
{
  unsigned char _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_3(D)->def_val;
  *def_val_4(D) = _1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_hw_feature_get_flags (const struct pfe_hw_feature_t * feature, pfe_ct_feature_flags_t * flags)
{
  <unnamed type> _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_3(D)->flags;
  *flags_4(D) = _1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_hw_feature_get_desc (const struct pfe_hw_feature_t * feature, const char * * desc)
{
  const char * _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_3(D)->description;
  *desc_4(D) = _1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_hw_feature_get_name (const struct pfe_hw_feature_t * feature, const char * * name)
{
  const char * _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_3(D)->name;
  *name_4(D) = _1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_hw_feature_init_all (const uint32_t * cbus_base, struct pfe_hw_feature_t * hw_features, uint32_t * hw_features_count)
{
  uint8_t on_g3;
  struct pfe_hw_feature_t * feature;
  uint32_t val;
  errno_t ret;
  unsigned int cbus_base.0_1;
  unsigned int _2;
  volatile uint32_t * _3;
  struct pfe_hw_feature_t * _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG on_g3 => 0
  # DEBUG BEGIN_STMT
  feature_11 = pfe_hw_feature_create ("drv_run_on_g3", "Active if running on S32G3", 1, 0, hw_features_9(D));
  # DEBUG feature => feature_11
  # DEBUG BEGIN_STMT
  if (feature_11 != 0B)
    goto <bb 3>; [81.25%]
  else
    goto <bb 9>; [18.75%]

  <bb 3> [local count: 872415233]:
  # DEBUG BEGIN_STMT
  cbus_base.0_1 = (unsigned int) cbus_base_12(D);
  _2 = cbus_base.0_1 + 606208;
  _3 = (volatile uint32_t *) _2;
  val_13 ={v} *_3;
  # DEBUG val => val_13
  # DEBUG BEGIN_STMT
  if (val_13 == 328448)
    goto <bb 6>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 4> [local count: 575794054]:
  # DEBUG BEGIN_STMT
  if (val_13 == 257)
    goto <bb 5>; [34.00%]
  else
    goto <bb 6>; [66.00%]

  <bb 5> [local count: 195769978]:
  # DEBUG BEGIN_STMT
  # DEBUG on_g3 => 1
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 872415233]:
  # on_g3_6 = PHI <0(3), 0(4), 1(5)>
  # DEBUG on_g3 => on_g3_6
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG feature => feature_11
  # DEBUG val => on_g3_6
  # DEBUG INLINE_ENTRY pfe_hw_feature_set_val
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  feature_11->val = on_g3_6;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG feature => NULL
  # DEBUG val => NULL
  # DEBUG BEGIN_STMT
  *hw_features_count_14(D) = 1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _4 = hw_features_9(D) + 12;
  feature_17 = pfe_hw_feature_create ("jumbo_frames", "Active if we handle jumbo frames", 0, 0, _4);
  # DEBUG feature => feature_17
  # DEBUG BEGIN_STMT
  if (feature_17 != 0B)
    goto <bb 8>; [81.25%]
  else
    goto <bb 9>; [18.75%]

  <bb 8> [local count: 708837377]:
  # DEBUG BEGIN_STMT
  *hw_features_count_14(D) = 2;

  <bb 9> [local count: 1073741824]:
  # ret_5 = PHI <11(2), 0(8), 11(6)>
  # DEBUG ret => ret_5
  # DEBUG BEGIN_STMT
  return ret_5;

}


pfe_hw_feature_destroy (const struct pfe_hw_feature_t * feature)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  return;

}


pfe_hw_feature_create (const char * name, const char * descr, pfe_ct_feature_flags_t flags, uint8_t def_val, struct pfe_hw_feature_t * feature)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  if (feature_1(D) != 0B)
    goto <bb 3>; [53.47%]
  else
    goto <bb 4>; [46.53%]

  <bb 3> [local count: 574129752]:
  pfe_hw_feature_create.part.0 (name_3(D), descr_4(D), flags_5(D), def_val_6(D), feature_1(D));

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return feature_1(D);

}


