
Marking local functions:


Marking externally visible functions: fci_fw_features_cmd


Marking externally visible variables:

Clearing variable flags:

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

pfe_feature_mgr_get_next/29 (pfe_feature_mgr_get_next) @074a19a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fw_features_cmd/20 (128231617 (estimated locally),0.12 per call) 
  Calls: 
pfe_feature_mgr_get_desc/28 (pfe_feature_mgr_get_desc) @074a18c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fw_features_cmd/20 (13964423 (estimated locally),0.01 per call) fci_fw_features_cmd/20 (13964423 (estimated locally),0.01 per call) 
  Calls: 
strncpy/27 (strncpy) @074a17e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fw_features_cmd/20 (13964423 (estimated locally),0.01 per call) fci_fw_features_cmd/20 (13964423 (estimated locally),0.01 per call) fci_fw_features_cmd/20 (13964423 (estimated locally),0.01 per call) fci_fw_features_cmd/20 (13964423 (estimated locally),0.01 per call) 
  Calls: 
pfe_feature_mgr_get_variant/26 (pfe_feature_mgr_get_variant) @074a1700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fw_features_cmd/20 (13964423 (estimated locally),0.01 per call) fci_fw_features_cmd/20 (13964423 (estimated locally),0.01 per call) 
  Calls: 
pfe_feature_mgr_get_def_val/25 (pfe_feature_mgr_get_def_val) @074a1620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fw_features_cmd/20 (13964423 (estimated locally),0.01 per call) fci_fw_features_cmd/20 (13964423 (estimated locally),0.01 per call) 
  Calls: 
pfe_feature_mgr_get_val/24 (pfe_feature_mgr_get_val) @074a1540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fw_features_cmd/20 (42316434 (estimated locally),0.04 per call) fci_fw_features_cmd/20 (42316434 (estimated locally),0.04 per call) 
  Calls: 
pfe_feature_mgr_get_first/23 (pfe_feature_mgr_get_first) @074a1460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fw_features_cmd/20 (128231617 (estimated locally),0.12 per call) 
  Calls: 
pfe_feature_mgr_set_val/22 (pfe_feature_mgr_set_val) @074a1380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fw_features_cmd/20 (128231617 (estimated locally),0.12 per call) 
  Calls: 
memset/21 (memset) @074a12a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fw_features_cmd/20 (512926468 (estimated locally),0.48 per call) 
  Calls: 
fci_fw_features_cmd/20 (fci_fw_features_cmd) @07495d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741823 (estimated locally) body optimize_size
  Called by: 
  Calls: strncpy/27 (13964423 (estimated locally),0.01 per call) pfe_feature_mgr_get_desc/28 (13964423 (estimated locally),0.01 per call) strncpy/27 (13964423 (estimated locally),0.01 per call) pfe_feature_mgr_get_variant/26 (13964423 (estimated locally),0.01 per call) pfe_feature_mgr_get_def_val/25 (13964423 (estimated locally),0.01 per call) pfe_feature_mgr_get_val/24 (42316434 (estimated locally),0.04 per call) pfe_feature_mgr_get_next/29 (128231617 (estimated locally),0.12 per call) strncpy/27 (13964423 (estimated locally),0.01 per call) pfe_feature_mgr_get_desc/28 (13964423 (estimated locally),0.01 per call) strncpy/27 (13964423 (estimated locally),0.01 per call) pfe_feature_mgr_get_variant/26 (13964423 (estimated locally),0.01 per call) pfe_feature_mgr_get_def_val/25 (13964423 (estimated locally),0.01 per call) pfe_feature_mgr_get_val/24 (42316434 (estimated locally),0.04 per call) pfe_feature_mgr_get_first/23 (128231617 (estimated locally),0.12 per call) pfe_feature_mgr_set_val/22 (128231617 (estimated locally),0.12 per call) memset/21 (512926468 (estimated locally),0.48 per call) 
fci_fw_features_cmd (struct fci_msg_t * msg, uint16_t * fci_ret, struct fpp_fw_features_cmd_t * reply_buf, uint32_t * reply_len)
{
  errno_t ret;
  const char * feature_name;
  const char * str;
  long unsigned int _1;
  short unsigned int _2;
  char[33] * _3;
  unsigned char _4;
  const char * feature_name.0_5;
  uint8_t * _6;
  const char * feature_name.1_7;
  uint8_t * _8;
  const char * feature_name.2_9;
  fpp_fw_feature_flags_t * _10;
  char[33] * _11;
  const char * feature_name.3_12;
  char[129] * _13;
  const char * str.5_14;
  const char * feature_name.6_15;
  uint8_t * _16;
  const char * feature_name.7_17;
  uint8_t * _18;
  const char * feature_name.8_19;
  fpp_fw_feature_flags_t * _20;
  char[33] * _21;
  const char * feature_name.9_22;
  char[129] * _23;
  const char * str.11_24;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 0;
  # DEBUG BEGIN_STMT
  _1 = *reply_len_42(D);
  if (_1 <= 167)
    goto <bb 3>; [52.23%]
  else
    goto <bb 4>; [47.77%]

  <bb 3> [local count: 560815355]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 65535;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  goto <bb 32>; [100.00%]

  <bb 4> [local count: 512926468]:
  # DEBUG BEGIN_STMT
  *reply_len_42(D) = 0;
  # DEBUG BEGIN_STMT
  memset (reply_buf_44(D), 0, 168);
  # DEBUG BEGIN_STMT
  # DEBUG D#1 => &msg_46(D)->msg_cmd.payload
  # DEBUG fp_cmd => D#1
  # DEBUG BEGIN_STMT
  _2 = MEM[(struct fpp_fw_features_cmd_t *)msg_46(D) + 16B].action;
  switch (_2) <default: <L34> [25.00%], case 4: <L2> [25.00%], case 6: <L8> [25.00%], case 7: <L21> [25.00%]>

  <bb 5> [local count: 128231617]:
<L2>:
  # DEBUG BEGIN_STMT
  _3 = &MEM[(struct fpp_fw_features_cmd_t *)msg_46(D) + 16B].name;
  _4 = MEM[(struct fpp_fw_features_cmd_t *)msg_46(D) + 16B].val;
  ret_82 = pfe_feature_mgr_set_val (_3, _4);
  # DEBUG ret => ret_82
  # DEBUG BEGIN_STMT
  if (ret_82 != 0)
    goto <bb 6>; [50.00%]
  else
    goto <bb 32>; [50.00%]

  <bb 6> [local count: 64115809]:
  # DEBUG BEGIN_STMT
  if (ret_82 == 117)
    goto <bb 7>; [34.00%]
  else
    goto <bb 8>; [66.00%]

  <bb 7> [local count: 21799375]:
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 62034;
  goto <bb 32>; [100.00%]

  <bb 8> [local count: 42316434]:
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 62033;
  goto <bb 32>; [100.00%]

  <bb 9> [local count: 128231617]:
<L8>:
  # DEBUG BEGIN_STMT
  ret_65 = pfe_feature_mgr_get_first (&feature_name);
  # DEBUG ret => ret_65
  # DEBUG BEGIN_STMT
  if (ret_65 != 0)
    goto <bb 10>; [67.00%]
  else
    goto <bb 11>; [33.00%]

  <bb 10> [local count: 85915183]:
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 62033;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 32>; [100.00%]

  <bb 11> [local count: 42316434]:
  # DEBUG BEGIN_STMT
  feature_name.0_5 = feature_name;
  _6 = &reply_buf_44(D)->val;
  ret_67 = pfe_feature_mgr_get_val (feature_name.0_5, _6);
  # DEBUG ret => ret_67
  # DEBUG BEGIN_STMT
  if (ret_67 == 0)
    goto <bb 12>; [33.00%]
  else
    goto <bb 13>; [67.00%]

  <bb 12> [local count: 13964423]:
  # DEBUG BEGIN_STMT
  feature_name.1_7 = feature_name;
  _8 = &reply_buf_44(D)->def_val;
  ret_69 = pfe_feature_mgr_get_def_val (feature_name.1_7, _8);
  # DEBUG ret => ret_69

  <bb 13> [local count: 42316434]:
  # ret_25 = PHI <ret_67(11), ret_69(12)>
  # DEBUG ret => ret_25
  # DEBUG BEGIN_STMT
  if (ret_25 == 0)
    goto <bb 14>; [33.00%]
  else
    goto <bb 15>; [67.00%]

  <bb 14> [local count: 13964423]:
  # DEBUG BEGIN_STMT
  feature_name.2_9 = feature_name;
  _10 = &reply_buf_44(D)->flags;
  ret_71 = pfe_feature_mgr_get_variant (feature_name.2_9, _10);
  # DEBUG ret => ret_71

  <bb 15> [local count: 42316434]:
  # ret_26 = PHI <ret_25(13), ret_71(14)>
  # DEBUG ret => ret_26
  # DEBUG BEGIN_STMT
  if (ret_26 == 0)
    goto <bb 16>; [33.00%]
  else
    goto <bb 17>; [67.00%]

  <bb 16> [local count: 13964423]:
  # DEBUG BEGIN_STMT
  _11 = &reply_buf_44(D)->name;
  feature_name.3_12 = feature_name;
  strncpy (_11, feature_name.3_12, 32);
  # DEBUG BEGIN_STMT
  ret_74 = pfe_feature_mgr_get_desc (feature_name.3_12, &str);
  # DEBUG ret => ret_74

  <bb 17> [local count: 42316434]:
  # ret_27 = PHI <ret_26(15), ret_74(16)>
  # DEBUG ret => ret_27
  # DEBUG BEGIN_STMT
  if (ret_27 == 0)
    goto <bb 18>; [33.00%]
  else
    goto <bb 19>; [67.00%]

  <bb 18> [local count: 13964423]:
  # DEBUG BEGIN_STMT
  _13 = &reply_buf_44(D)->desc;
  str.5_14 = str;
  strncpy (_13, str.5_14, 128);
  # DEBUG BEGIN_STMT
  *reply_len_42(D) = 168;
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 0;
  goto <bb 32>; [100.00%]

  <bb 19> [local count: 28352010]:
  # DEBUG BEGIN_STMT
  *reply_len_42(D) = 168;
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 65535;
  goto <bb 32>; [100.00%]

  <bb 20> [local count: 128231617]:
<L21>:
  # DEBUG BEGIN_STMT
  ret_48 = pfe_feature_mgr_get_next (&feature_name);
  # DEBUG ret => ret_48
  # DEBUG BEGIN_STMT
  if (ret_48 != 0)
    goto <bb 21>; [67.00%]
  else
    goto <bb 22>; [33.00%]

  <bb 21> [local count: 85915183]:
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 62033;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 32>; [100.00%]

  <bb 22> [local count: 42316434]:
  # DEBUG BEGIN_STMT
  feature_name.6_15 = feature_name;
  _16 = &reply_buf_44(D)->val;
  ret_50 = pfe_feature_mgr_get_val (feature_name.6_15, _16);
  # DEBUG ret => ret_50
  # DEBUG BEGIN_STMT
  if (ret_50 == 0)
    goto <bb 23>; [33.00%]
  else
    goto <bb 24>; [67.00%]

  <bb 23> [local count: 13964423]:
  # DEBUG BEGIN_STMT
  feature_name.7_17 = feature_name;
  _18 = &reply_buf_44(D)->def_val;
  ret_52 = pfe_feature_mgr_get_def_val (feature_name.7_17, _18);
  # DEBUG ret => ret_52

  <bb 24> [local count: 42316434]:
  # ret_28 = PHI <ret_50(22), ret_52(23)>
  # DEBUG ret => ret_28
  # DEBUG BEGIN_STMT
  if (ret_28 == 0)
    goto <bb 25>; [33.00%]
  else
    goto <bb 26>; [67.00%]

  <bb 25> [local count: 13964423]:
  # DEBUG BEGIN_STMT
  feature_name.8_19 = feature_name;
  _20 = &reply_buf_44(D)->flags;
  ret_54 = pfe_feature_mgr_get_variant (feature_name.8_19, _20);
  # DEBUG ret => ret_54

  <bb 26> [local count: 42316434]:
  # ret_29 = PHI <ret_28(24), ret_54(25)>
  # DEBUG ret => ret_29
  # DEBUG BEGIN_STMT
  if (ret_29 == 0)
    goto <bb 27>; [33.00%]
  else
    goto <bb 28>; [67.00%]

  <bb 27> [local count: 13964423]:
  # DEBUG BEGIN_STMT
  _21 = &reply_buf_44(D)->name;
  feature_name.9_22 = feature_name;
  strncpy (_21, feature_name.9_22, 32);
  # DEBUG BEGIN_STMT
  ret_57 = pfe_feature_mgr_get_desc (feature_name.9_22, &str);
  # DEBUG ret => ret_57

  <bb 28> [local count: 42316434]:
  # ret_30 = PHI <ret_29(26), ret_57(27)>
  # DEBUG ret => ret_30
  # DEBUG BEGIN_STMT
  if (ret_30 == 0)
    goto <bb 29>; [33.00%]
  else
    goto <bb 30>; [67.00%]

  <bb 29> [local count: 13964423]:
  # DEBUG BEGIN_STMT
  _23 = &reply_buf_44(D)->desc;
  str.11_24 = str;
  strncpy (_23, str.11_24, 128);
  # DEBUG BEGIN_STMT
  *reply_len_42(D) = 168;
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 0;
  goto <bb 32>; [100.00%]

  <bb 30> [local count: 28352010]:
  # DEBUG BEGIN_STMT
  *reply_len_42(D) = 168;
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 65535;
  goto <bb 32>; [100.00%]

  <bb 31> [local count: 128231617]:
<L34>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *fci_ret_40(D) = 4;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT

  <bb 32> [local count: 1073741824]:
  # ret_31 = PHI <22(3), 0(8), 0(18), 0(29), 0(31), ret_82(5), 0(10), ret_27(19), 0(21), ret_30(30), 0(7)>
  # DEBUG ret => ret_31
  # DEBUG BEGIN_STMT
  str ={v} {CLOBBER};
  feature_name ={v} {CLOBBER};
  return ret_31;

}


