
Marking local functions: fci_create_client fci_command


Marking externally visible functions: fci_fd fci_catch fci_query fci_write fci_cmd fci_close fci_register_cb fci_open


Marking externally visible variables:

Clearing variable flags:

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

fci_core_client_get_msg/38 (fci_core_client_get_msg) @0759d9a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_catch/28 (1073741824 (estimated locally),12.25 per call) 
  Calls: 
fci_process_ipc_message/37 (fci_process_ipc_message) @0759d620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_command/30 (865006414 (estimated locally),0.81 per call) 
  Calls: 
memcpy/36 (memcpy) @0759d540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_command/30 (69935768 (estimated locally),0.07 per call) fci_command/30 (285452117 (estimated locally),0.27 per call) 
  Calls: 
memset/35 (memset) @0759d460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_command/30 (865006414 (estimated locally),0.81 per call) fci_command/30 (865006414 (estimated locally),0.81 per call) 
  Calls: 
oal_mm_free/34 (oal_mm_free) @0759d1c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_close/24 (1063970774 (estimated locally),0.99 per call) 
  Calls: 
oal_mm_malloc/33 (oal_mm_malloc) @074538c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_create_client/31 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
fci_create_client/31 (fci_create_client) @07453a80
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: fci_open/22 (587014656 (estimated locally),0.55 per call) 
  Calls: oal_mm_malloc/33 (1073741824 (estimated locally),1.00 per call) 
fci_command/30 (fci_command) @074537e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: fci_query/27 (1073741824 (estimated locally),1.00 per call) fci_write/26 (1073741824 (estimated locally),1.00 per call) fci_cmd/25 (1073741824 (estimated locally),1.00 per call) 
  Calls: memcpy/36 (69935768 (estimated locally),0.07 per call) fci_process_ipc_message/37 (865006414 (estimated locally),0.81 per call) memcpy/36 (285452117 (estimated locally),0.27 per call) memset/35 (865006414 (estimated locally),0.81 per call) memset/35 (865006414 (estimated locally),0.81 per call) 
fci_fd/29 (fci_fd) @07453540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
fci_catch/28 (fci_catch) @074532a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:87627860 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_core_client_get_msg/38 (1073741824 (estimated locally),12.25 per call) 
   Indirect call(286019110 (estimated locally),3.26 per call)  of param:0 loaded from aggregate passed by reference at offset 32 (vptr maybe changed)
fci_query/27 (fci_query) @07453000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_command/30 (1073741824 (estimated locally),1.00 per call) 
fci_write/26 (fci_write) @0744cb60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_command/30 (1073741824 (estimated locally),1.00 per call) 
fci_cmd/25 (fci_cmd) @0744c620
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_command/30 (1073741824 (estimated locally),1.00 per call) 
fci_close/24 (fci_close) @0744cd20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: oal_mm_free/34 (1063970774 (estimated locally),0.99 per call) 
fci_register_cb/23 (fci_register_cb) @0744ca80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
fci_open/22 (fci_open) @0744c7e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_create_client/31 (587014656 (estimated locally),0.55 per call) 
fci_create_client (fci_mcast_groups_t group)
{
  struct FCI_CLIENT * cl;
  struct FCI_CLIENT * _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  cl_5 = oal_mm_malloc (8);
  # DEBUG cl => cl_5
  # DEBUG BEGIN_STMT
  if (cl_5 == 0B)
    goto <bb 4>; [8.27%]
  else
    goto <bb 3>; [91.73%]

  <bb 3> [local count: 984943376]:
  # DEBUG BEGIN_STMT
  cl_5->group = group_6(D);
  # DEBUG BEGIN_STMT

  <bb 4> [local count: 1073741824]:
  # _1 = PHI <0B(2), cl_5(3)>
  return _1;

}


fci_command (struct FCI_CLIENT * client, uint16_t fcode, const uint16_t * cmd_buf, uint16_t cmd_len, uint16_t * rep_buf, uint16_t * rep_len)
{
  int32_t cmd_ret;
  struct fci_msg_t reply_msg;
  struct fci_msg_t msg;
  long unsigned int _1;
  long unsigned int _2;
  int _3;
  long unsigned int _4;
  long unsigned int _5;
  short unsigned int _6;
  short unsigned int _7;
  int32_t _8;
  short unsigned int _31;
  int32_t _33;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  cmd_ret = 0;
  # DEBUG BEGIN_STMT
  if (client_14(D) == 0B)
    goto <bb 11>; [19.44%]
  else
    goto <bb 3>; [80.56%]

  <bb 3> [local count: 865006414]:
  # DEBUG BEGIN_STMT
  memset (&msg, 0, 276);
  # DEBUG BEGIN_STMT
  memset (&reply_msg, 0, 276);
  # DEBUG BEGIN_STMT
  msg.type = 4099;
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) fcode_18(D);
  msg.msg_cmd.code = _1;
  # DEBUG BEGIN_STMT
  if (cmd_len_20(D) != 0)
    goto <bb 4>; [33.00%]
  else
    goto <bb 5>; [67.00%]

  <bb 4> [local count: 285452117]:
  # DEBUG BEGIN_STMT
  _2 = (long unsigned int) cmd_len_20(D);
  msg.msg_cmd.length = _2;
  # DEBUG BEGIN_STMT
  memcpy (&msg.msg_cmd.payload, cmd_buf_22(D), _2);

  <bb 5> [local count: 865006414]:
  # DEBUG BEGIN_STMT
  msg.msg_cmd.sender = 6;
  # DEBUG BEGIN_STMT
  _3 = fci_process_ipc_message (&msg, &reply_msg);
  cmd_ret = _3;
  # DEBUG BEGIN_STMT
  if (_3 != 0)
    goto <bb 11>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 6> [local count: 432503206]:
  # DEBUG BEGIN_STMT
  if (rep_buf_27(D) != 0B)
    goto <bb 7>; [70.00%]
  else
    goto <bb 10>; [30.00%]

  <bb 7> [local count: 302752244]:
  if (rep_len_28(D) != 0B)
    goto <bb 8>; [70.00%]
  else
    goto <bb 10>; [30.00%]

  <bb 8> [local count: 211926571]:
  _4 = reply_msg.msg_cmd.length;
  if (_4 > 3)
    goto <bb 9>; [33.00%]
  else
    goto <bb 10>; [67.00%]

  <bb 9> [local count: 69935768]:
  # DEBUG BEGIN_STMT
  _5 = _4 + 4294967292;
  memcpy (rep_buf_27(D), &MEM[(void *)&reply_msg + 20B], _5);
  # DEBUG BEGIN_STMT
  _6 = (short unsigned int) _4;
  _7 = _6 + 65532;
  *rep_len_28(D) = _7;

  <bb 10> [local count: 432503206]:
  # DEBUG BEGIN_STMT
  _31 = MEM[(char * {ref-all})&reply_msg + 16B];
  MEM[(char * {ref-all})&cmd_ret] = _31;
  # DEBUG BEGIN_STMT
  _33 = cmd_ret;

  <bb 11> [local count: 1073741824]:
  # _8 = PHI <22(2), _3(5), _33(10)>
  msg ={v} {CLOBBER};
  reply_msg ={v} {CLOBBER};
  cmd_ret ={v} {CLOBBER};
  return _8;

}


fci_fd (struct FCI_CLIENT * client)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return -1;

}


fci_catch (struct FCI_CLIENT * client)
{
  fci_cb_retval_t cb_ret;
  int32_t ret;
  struct fci_msg_t * msg;
  struct fci_msg_t * msg.1_1;
  <unnamed type> _3;
  unsigned int _4;
  unsigned int _5;
  fci_cb_retval_t (*<Taaa>) (short unsigned int, short unsigned int, short unsigned int *) _6;
  long unsigned int _7;
  short unsigned int _8;
  long unsigned int _9;
  short unsigned int _10;
  uint8_t[256] * _11;
  int _12;

  <bb 2> [local count: 87627860]:
  # DEBUG BEGIN_STMT
  msg = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG shall_quit => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 9>; [100.00%]

  <bb 3> [local count: 39298951]:
  # ret_2 = PHI <ret_19(9)>
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 10>; [100.00%]

  <bb 4> [local count: 1034442875]:
  # DEBUG BEGIN_STMT
  msg.1_1 = msg;
  if (msg.1_1 == 0B)
    goto <bb 10>; [3.66%]
  else
    goto <bb 5>; [96.34%]

  <bb 5> [local count: 996582267]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = msg.1_1->type;
  _4 = (unsigned int) _3;
  _5 = _4 + 4294963197;
  if (_5 <= 1)
    goto <bb 6>; [41.00%]
  else
    goto <bb 8>; [59.00%]

  <bb 6> [local count: 408598729]:
  # DEBUG BEGIN_STMT
  _6 = client_20(D)->event_cb;
  if (_6 != 0B)
    goto <bb 7>; [70.00%]
  else
    goto <bb 8>; [30.00%]

  <bb 7> [local count: 286019110]:
  # DEBUG BEGIN_STMT
  _7 = msg.1_1->msg_cmd.code;
  _8 = (short unsigned int) _7;
  _9 = msg.1_1->msg_cmd.length;
  _10 = (short unsigned int) _9;
  _11 = &msg.1_1->msg_cmd.payload;
  cb_ret_22 = _6 (_8, _10, _11);
  # DEBUG cb_ret => cb_ret_22
  # DEBUG BEGIN_STMT
  if (cb_ret_22 == 1)
    goto <bb 8>; [96.34%]
  else
    goto <bb 10>; [3.66%]

  <bb 8> [local count: 986113967]:

  <bb 9> [local count: 1073741824]:
  # DEBUG shall_quit => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_19 = fci_core_client_get_msg (&msg);
  # DEBUG ret => ret_19
  # DEBUG BEGIN_STMT
  if (ret_19 != 0)
    goto <bb 3>; [3.66%]
  else
    goto <bb 4>; [96.34%]

  <bb 10> [local count: 87627859]:
  # _12 = PHI <ret_2(3), 0(7), 0(4)>
  # DEBUG shall_quit => NULL
  msg ={v} {CLOBBER};
  return _12;

}


fci_query (struct FCI_CLIENT * client, short unsigned int fcode, short unsigned int cmd_len, short unsigned int * cmd_buf, short unsigned int * rep_len, short unsigned int * rep_buf)
{
  int _9;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _9 = fci_command (client_2(D), fcode_3(D), cmd_buf_4(D), cmd_len_5(D), rep_buf_6(D), rep_len_7(D));
  return _9;

}


fci_write (struct FCI_CLIENT * client, short unsigned int fcode, short unsigned int cmd_len, short unsigned int * cmd_buf)
{
  int _7;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _7 = fci_command (client_2(D), fcode_3(D), cmd_buf_4(D), cmd_len_5(D), 0B, 0B);
  return _7;

}


fci_cmd (struct FCI_CLIENT * client, short unsigned int fcode, short unsigned int * cmd_buf, short unsigned int cmd_len, short unsigned int * rep_buf, short unsigned int * rep_len)
{
  int _9;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _9 = fci_command (client_2(D), fcode_3(D), cmd_buf_4(D), cmd_len_5(D), rep_buf_6(D), rep_len_7(D));
  return _9;

}


fci_close (struct FCI_CLIENT * client)
{
  int _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (client_3(D) == 0B)
    goto <bb 4>; [0.91%]
  else
    goto <bb 3>; [99.09%]

  <bb 3> [local count: 1063970774]:
  # DEBUG BEGIN_STMT
  # DEBUG client => client_3(D)
  # DEBUG event_cb => 0B
  # DEBUG INLINE_ENTRY fci_register_cb
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  client_3(D)->event_cb = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG client => NULL
  # DEBUG event_cb => NULL
  # DEBUG rc => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG client => client_3(D)
  # DEBUG INLINE_ENTRY fci_destroy_client
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (client_3(D));
  # DEBUG BEGIN_STMT
  # DEBUG client => 0B
  # DEBUG BEGIN_STMT
  # DEBUG client => NULL
  # DEBUG rc => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 4> [local count: 1073741824]:
  # _1 = PHI <-1(2), 0(3)>
  return _1;

}


fci_register_cb (struct FCI_CLIENT * client, fci_cb_retval_t (*<Taaa>) (short unsigned int, short unsigned int, short unsigned int *) event_cb)
{
  int _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (client_3(D) != 0B)
    goto <bb 3>; [99.13%]
  else
    goto <bb 4>; [0.87%]

  <bb 3> [local count: 1064400271]:
  # DEBUG BEGIN_STMT
  client_3(D)->event_cb = event_cb_5(D);
  # DEBUG BEGIN_STMT

  <bb 4> [local count: 1073741824]:
  # _1 = PHI <0(3), -22(2)>
  return _1;

}


fci_open (fci_client_type_t client_type, fci_mcast_groups_t group)
{
  struct FCI_CLIENT * new_client;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG new_client => 0B
  # DEBUG BEGIN_STMT
  if (client_type_3(D) == 0)
    goto <bb 3>; [54.67%]
  else
    goto <bb 4>; [45.33%]

  <bb 3> [local count: 587014656]:
<L0>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  new_client_7 = fci_create_client (group_5(D));
  # DEBUG new_client => new_client_7
  # DEBUG BEGIN_STMT

  <bb 4> [local count: 1073741824]:
  # new_client_1 = PHI <new_client_7(3), 0B(2)>
  # DEBUG new_client => new_client_1
  # DEBUG BEGIN_STMT
  return new_client_1;

}


